{
  "openapi": "3.0.1",
  "info": {
    "title": "Zhaopin Scraper 智联招聘: China Jobs & Salary API",
    "description": "Zhaopin API for public 智联招聘数据采集 across China. Export normalized job listings, salary data, skills, companies, locations, and hiring changes to Sheets. Filter by education, experience, company size, and job type, with webhook alerts for new postings. No login required. $1.49 per 1,000 results.",
    "version": "0.5",
    "x-build-id": "drrkZyIVpk9pKQVrr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~zhaopin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-zhaopin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~zhaopin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-zhaopin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~zhaopin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-zhaopin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "title": "Search Keyword",
            "type": "string",
            "description": "The job keyword to search for (e.g. 'Python', 'FastAPI', 'Sales').",
            "default": "Python"
          },
          "queries": {
            "title": "Batch Search Keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Optional list of job keywords. Each keyword is combined with every selected batch city.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "startUrls": {
            "title": "Exact Zhaopin Search URLs",
            "type": "array",
            "description": "Optional public Zhaopin /sou search URLs containing jl (city) and kw (keyword). They take precedence over the guided filters; supported legacy filters el, we, jt, sl, ct, and cs are carried forward.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "city": {
            "title": "Job Location / City",
            "enum": [
              "530",
              "538",
              "765",
              "763",
              "653",
              "801",
              "736",
              "635",
              "854",
              "639",
              "551",
              "531",
              "489"
            ],
            "type": "string",
            "description": "Select the target city.",
            "default": "530"
          },
          "cities": {
            "title": "Batch Cities",
            "maxItems": 13,
            "type": "array",
            "description": "Optional list of cities to search. Each city is combined with every batch keyword, so 2 keywords and 3 cities run 6 searches. Leave empty to use the single Target City above.",
            "items": {
              "type": "string",
              "enum": [
                "530",
                "538",
                "765",
                "763",
                "653",
                "801",
                "736",
                "635",
                "854",
                "639",
                "551",
                "531",
                "489"
              ],
              "enumTitles": [
                "Beijing / 北京",
                "Shanghai / 上海",
                "Shenzhen / 深圳",
                "Guangzhou / 广州",
                "Hangzhou / 杭州",
                "Chengdu / 成都",
                "Wuhan / 武汉",
                "Nanjing / 南京",
                "Xi'an / 西安",
                "Suzhou / 苏州",
                "Chongqing / 重庆",
                "Tianjin / 天津",
                "All China / 全国"
              ]
            },
            "default": []
          },
          "education": {
            "title": "Education Required",
            "enum": [
              "",
              "3",
              "4",
              "5",
              "6"
            ],
            "type": "string",
            "description": "Filter listings by minimum educational requirements.",
            "default": ""
          },
          "experience": {
            "title": "Work Experience",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Filter listings by required experience. This is sent directly to Zhaopin's public search API.",
            "default": ""
          },
          "jobType": {
            "title": "Employment Type",
            "enum": [
              "",
              "1",
              "2",
              "3"
            ],
            "type": "string",
            "description": "Filter returned public listings by the employment type supplied by Zhaopin.",
            "default": ""
          },
          "salary": {
            "title": "Salary Band Code",
            "type": "string",
            "description": "Optional salary band. Legacy codes 1-7 remain supported; you can also enter a monthly CNY range such as 15001,25000. Leave empty for any salary.",
            "default": ""
          },
          "companyType": {
            "title": "Company Type Code",
            "type": "string",
            "description": "Optional company type code: 1 state-owned, 2 private, or 3 foreign. Leave empty for any company type.",
            "default": ""
          },
          "companySize": {
            "title": "Company Size Code",
            "type": "string",
            "description": "Optional legacy company-size code. Code 1 means 20-99 employees; leave empty for any size.",
            "default": ""
          },
          "maxItems": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum jobs to collect per keyword and city search. A real search runs far deeper than Zhaopin's own summary count suggests; up to 2000 jobs can be collected per search.",
            "default": 20
          },
          "incrementalMode": {
            "title": "Monitor Job Changes",
            "type": "boolean",
            "description": "Compare this run with prior runs of the same search and return new, updated, reappeared, and expired jobs.",
            "default": false
          },
          "stateName": {
            "title": "Monitoring State Name",
            "type": "string",
            "description": "Name used to isolate this monitor from other schedules or clients. The exact search scope is isolated automatically.",
            "default": "default"
          },
          "outputMode": {
            "title": "Output Detail",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "Full returns every available field. Compact keeps the core fields used by databases, alerts, and AI workflows.",
            "default": "full"
          },
          "includeUnchanged": {
            "title": "Include Unchanged Jobs",
            "type": "boolean",
            "description": "Include unchanged rows in monitoring output. Leave disabled to receive only chargeable changes.",
            "default": false
          },
          "notificationWebhookUrl": {
            "title": "Change Notification Webhook URL",
            "type": "string",
            "description": "Optional secret HTTPS endpoint that receives a concise JSON summary after a complete, successful monitoring run. Webhook failures never invalidate scrape results or monitoring state."
          },
          "notificationEvents": {
            "title": "Notification Change Types",
            "maxItems": 4,
            "uniqueItems": true,
            "type": "array",
            "description": "Change types that can trigger the webhook. UNCHANGED rows are intentionally not supported as notification events.",
            "items": {
              "type": "string",
              "enum": [
                "NEW",
                "UPDATED",
                "REAPPEARED",
                "EXPIRED"
              ],
              "enumTitles": [
                "New jobs",
                "Updated jobs",
                "Reappeared jobs",
                "Verified expired jobs"
              ]
            },
            "default": [
              "NEW",
              "UPDATED",
              "REAPPEARED",
              "EXPIRED"
            ]
          },
          "notifyOnNoChanges": {
            "title": "Notify When Nothing Changed",
            "type": "boolean",
            "description": "Send a lightweight heartbeat when a successful monitoring run detects no new, updated, reappeared, or expired jobs.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Datacenter proxy fallback for a blocked public API request. Direct API requests run first to minimize proxy cost.",
            "default": {
              "useApifyProxy": true
            }
          },
          "minRecruiterResponsiveness": {
            "title": "Minimum Recruiter Responsiveness",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only keep jobs whose recruiter responsiveness score meets this minimum (0-100, derived from Zhaopin's own reply-recency and reply-count signals). Jobs with no responsiveness signal at all are excluded rather than assumed to pass. Leave empty for no filter."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}