# Zhaopin Scraper: Extract China Jobs (`getascraper/zhaopin-jobs-scraper`) Actor

Scrape tech, sales, and corporate jobs from Zhaopin.com. Extract salaries, geolocations, and B2B recruiter contacts to clean CSV/JSON datasets. Drop-in for Salesforce, HubSpot, and ATS pipelines. Skip manual candidate sourcing and agency fees. $1.49 per 1,000 results.

- **URL**: https://apify.com/getascraper/zhaopin-jobs-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### Zhaopin Scraper: Extract Job Listings and Salary Data Across China

**Pull live, structured job listings from Zhaopin in seconds.** Get job titles, salaries, required education, experience, company details, and recruiter contact info for any keyword in any city.

---

### What can you do with it?

- **Track salary trends.** Monitor compensation levels across industries and experience requirements in China's major cities.
- **Source recruitment leads.** Extract recruiter names and titles to build high-value B2B staffing networks.
- **Analyze hiring trends.** Identify active companies and rising skill requirements in tech, finance, and other sectors.
- **Feed talent research.** Plug clean, structured job rows directly into spreadsheets, BI dashboards, or RAG models.

---

### How to use it

1. Create a free Apify account.
2. Open the **Zhaopin Scraper** in the Apify Store.
3. Enter your search keyword (e.g. `Python`, `销售经理`).
4. Pick the target city (e.g., Beijing, Shanghai, Shenzhen).
5. Click **Start** and download the dataset as JSON, CSV, or Excel.

---

### Input

| Field        | Default         | Description                                                            |
| ------------ | --------------- | ---------------------------------------------------------------------- |
| `query`      | `Python`        | The job keyword or skill to search. Supports both English and Chinese. |
| `city`       | `530` (Beijing) | Target city market (Beijing, Shanghai, Shenzhen, Hangzhou, etc.).      |
| `education`  | `""` (Any)      | Optional minimum education filter (Bachelor, Master, Doctor).          |
| `experience` | `""` (Any)      | Optional required work experience filter.                              |
| `jobType`    | `""` (Any)      | Optional employment type filter (Full-time, Part-time, Internship).    |
| `maxItems`   | `100`           | Maximum number of job cards to extract per query.                      |

---

### Output

Each row represents a single job listing from Zhaopin.

```json
{
    "jobId": "40887707613",
    "jobUrl": "http://www.zhaopin.com/jobdetail/CCL1516765580J40887707613.htm",
    "title": "Python高级后端工程师",
    "description": "岗位职责：1. 负责公司核心产品后端服务开发... 基于FastAPI构建高性能...",
    "skills": ["PostgreSQL", "SQLAlchemy", "Redis", "Django", "Python"],
    "locationRaw": "北京·朝阳区·酒仙桥",
    "cityEn": "Beijing",
    "district": "朝阳",
    "address": "北京中关村(朝阳)工业AI产业园",
    "latitude": 39.981367,
    "longitude": 116.491696,
    "educationEn": "Bachelor",
    "experienceRaw": "经验不限",
    "experienceMin": 0,
    "experienceMax": null,
    "salaryRaw": "1-1.5万",
    "salaryMin": 10000,
    "salaryMax": 15000,
    "currency": "CNY",
    "companyName": "烟台信界智基科技有限公司",
    "companySize": "20-99人",
    "companyIndustry": "人工智能",
    "companyUrl": "http://company.zhaopin.com/CZL1516765580.htm",
    "recruiterName": "解女士",
    "recruiterTitle": "人事经理",
    "recruiterResponseRate": "17分钟前回复 | 今日回复35次",
    "scrapedAt": "2026-06-10T06:02:03.905Z"
}
````

#### Field reference

| Field                   | Description                                                        |
| ----------------------- | ------------------------------------------------------------------ |
| `jobId`                 | Unique ID of the job listing.                                      |
| `jobUrl`                | Direct apply link of the job listing.                              |
| `title`                 | Job title or position name.                                        |
| `description`           | Full text of the job description.                                  |
| `skills`                | List of parsed technical skills required.                          |
| `locationRaw`           | Raw location string from Zhaopin (e.g. city and district).         |
| `cityEn`                | Name of the city in English (Beijing, Shanghai, etc.).             |
| `address`               | Specific work address or business park when available.             |
| `latitude`              | Workplace latitude coordinate.                                     |
| `longitude`             | Workplace longitude coordinate.                                    |
| `educationEn`           | Standard English educational requirement (Bachelor, Master, etc.). |
| `experienceMin`         | Minimum years of required work experience (0 = Any).               |
| `salaryRaw`             | Raw salary range string from the source (e.g., `1-1.5万`).         |
| `salaryMin`             | Standardized minimum monthly salary in CNY.                        |
| `salaryMax`             | Standardized maximum monthly salary in CNY.                        |
| `companyName`           | Name of the hiring company.                                        |
| `companySize`           | Estimated size of the company.                                     |
| `companyIndustry`       | Core industry category of the employer.                            |
| `recruiterName`         | Recruiter or HR contact name.                                      |
| `recruiterTitle`        | HR representative's corporate title.                               |
| `recruiterResponseRate` | Activity frequency and response speed indicator of the recruiter.  |
| `scrapedAt`             | ISO timestamp of when the listing was saved.                       |

***

### Cost

Pricing is per row saved to the dataset. Empty runs cost nothing. There is no fixed fee.

A single 100-card run typically saves 100 rows. You can monitor the row count live in the run console.

***

### Tips

- **Run multiple queries in one go.** Since Zhaopin limits results to 100 items per search, use different keywords or cities to extract larger datasets.
- **Refine with filters.** Use the education and experience filters to pinpoint senior roles or internship placements directly.
- **Schedule it.** Use Apify Schedules to run daily or weekly and watch for new hiring campaigns from target employers.

***

### Disclaimers & Support

- **Disclaimer:** This Actor retrieves publicly available job postings on Zhaopin. Make sure your usage complies with Zhaopin's terms of service and applicable laws.
- **Support:** Open an issue from the Actor page in the Apify Console for bug reports or feature requests.

# Actor input Schema

## `query` (type: `string`):

The job keyword to search for (e.g. 'Python', 'FastAPI', '销售经理'). Supports both English and Chinese.

## `city` (type: `string`):

Select the target city. We map these directly to Zhaopin's internal city codes.

## `education` (type: `string`):

Filter listings by minimum educational requirements.

## `experience` (type: `string`):

Filter listings by required experience.

## `jobType` (type: `string`):

Filter listings by type of employment.

## `maxItems` (type: `integer`):

The maximum number of job listings to scrape (up to 100 per unique search query).

## `proxyConfiguration` (type: `object`):

Proxy settings for IP rotation and request distribution.

## Actor input object example

```json
{
  "query": "Python",
  "city": "530",
  "education": "",
  "experience": "",
  "jobType": "",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "Python",
    "city": "530",
    "education": "",
    "experience": "",
    "jobType": "",
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/zhaopin-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "Python",
    "city": "530",
    "education": "",
    "experience": "",
    "jobType": "",
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/zhaopin-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "Python",
  "city": "530",
  "education": "",
  "experience": "",
  "jobType": "",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/zhaopin-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getascraper/zhaopin-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Zhaopin Scraper: Extract China Jobs",
        "description": "Scrape tech, sales, and corporate jobs from Zhaopin.com. Extract salaries, geolocations, and B2B recruiter contacts to clean CSV/JSON datasets. Drop-in for Salesforce, HubSpot, and ATS pipelines. Skip manual candidate sourcing and agency fees. $1.49 per 1,000 results.",
        "version": "0.1",
        "x-build-id": "XzjwTreXe8Do6gqC5"
    },
    "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",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "The job keyword to search for (e.g. 'Python', 'FastAPI', '销售经理'). Supports both English and Chinese.",
                        "default": "Python"
                    },
                    "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. We map these directly to Zhaopin's internal city codes.",
                        "default": "530"
                    },
                    "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.",
                        "default": ""
                    },
                    "jobType": {
                        "title": "Employment Type",
                        "enum": [
                            "",
                            "1",
                            "2",
                            "3"
                        ],
                        "type": "string",
                        "description": "Filter listings by type of employment.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max Results",
                        "minimum": 1,
                        "type": "integer",
                        "description": "The maximum number of job listings to scrape (up to 100 per unique search query).",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for IP rotation and request distribution.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
