# Zhaopin Job Scraper (`saswave/zhaopin-job-scraper`) Actor

$0.8 / 1000 results. 智联招聘 Scraper. Extraction tool for Zhaopin (zhaopin.com), one of China's largest recruitment and HR platforms. Extract structured job listings, detailed job descriptions, salary brackets, hiring manager profiles, precise map coordinates, required skill from Zhaopin search results

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

## Pricing

from $0.80 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Job Scraper

智联招聘 Scraper. Extraction tool for Zhaopin (zhaopin.com), one of China's largest recruitment and HR platforms.

Extract structured job listings, detailed job descriptions, salary brackets, hiring manager profiles, precise map coordinates, and required skill tags directly from Zhaopin search results

### 🔹 Features

Comprehensive Job Details: Extract full job titles (positionName), detailed duty descriptions (desc.description), salary brackets (salary60, salaryReal), and employment types (workType).

Hiring Manager & Recruiter Context: Capture HR staff details including recruiter names (staffName), avatars, HR job titles (hrJob), and real-time activity status (hrStateInfo).

Geocoding & Location Precision: Gather street-level work addresses (workAddress), district IDs, city names, and exact GPS coordinates (latitude, longitude).

Skills & Tag Extraction: Retrieve required technical stack labels (skills), framework tags (e.g., Django, Flask, MySQL), and specialized industry experience requirements.

Company Profile Integration: Extract hiring company names, scales (companySize), industry categories (industryName), corporate URLs, and logo assets.

### 🔹 Use Cases

China Labor Market Intelligence: Monitor hiring demands, required tech stacks, and competitive salary trends across tier-1 and tier-2 Chinese cities.

Recruitment Sourcing & HR Lead Generation: Identify active hiring managers and companies expanding their software engineering or business teams.

Tech Stack Popularity Auditing: Track adoption rates of programming languages, backend frameworks, and database engines within specific industry verticals.

Job Board Aggregation: Populate global and regional career portals with active technical postings from mainland China.

### OUTPUT

```json
{
  "cardType": 1,
  "chatWindow": 1,
  "cityDistrict": "兰山",
  "cityId": "714",
  "companyId": 0,
  "companyLogo": "https://storage-public.zhaopin.cn/org/logo/1787441151015344062/152784712.png",
  "companyName": "四川安信鼎丰信息科技有限公司",
  "companyNumber": "CZL1527847120",
  "companyRootId": 0,
  "companyScaleTypeTagsNew": [],
  "companySize": "20人以下",
  "companyUrl": "http://company.zhaopin.com/CZL1527847120.htm",
  "deliveryPath": "",
  "displayPhoneNumber": false,
  "distance": 0,
  "distanceFormat": "",
  "distanceText": "",
  "education": "大专",
  "firstPublishTime": "",
  "industryName": "汽车4S店/经销商",
  "jobDetailShowUrgentTag": false,
  "jobId": 40873379707,
  "jobSummary": "",
  "liveCard": null,
  "matchInfo": null,
  "menVipLevel": 0,
  "name": "python后端开发工程师",
  "needMajor": [],
  "number": "CCL1527847120J40873379707",
  "positionURL": "http://www.zhaopin.com/jobdetail/CCL1527847120J40873379707.htm",
  "publishTime": "2026-08-23 18:03:30",
  "salary60": "9000-12000元",
  "salaryReal": "9001-12000",
  "streetId": 0,
  "streetName": "兰山街道",
  "subJobTypeLevel": "9000300160000",
  "subJobTypeLevelName": "Python",
  "welfareLabel": [],
  "workCity": "临沂",
  "workDateType": "",
  "workMode": "",
  "workType": "全职",
  "workTypeCode": "2",
  "workingExp": "经验不限",
  "collected": false,
  "selected": false,
  "uuid": "ec68a19d-2935-4ed5-9882-743049c00fea",
  "position": {
    "base": {
      "deliveryPath": "",
      "education": "大专",
      "educationCode": "",
      "maxSalary": "",
      "minSalary": "",
      "positionId": 40873379707,
      "positionName": "python后端开发工程师",
      "positionNumber": "CCL1527847120J40873379707",
      "positionUrl": "",
      "positionWorkingExp": "经验不限",
      "positionWorkingExpCode": "",
      "propertyType": "",
      "recruitNumber": 0,
      "salary": "9000-12000元",
      "salaryReal": "",
      "workType": "全职"
    },
    "date": {
      "dateEnd": "",
      "dateStart": "",
      "firstPublishTime": "",
      "positionPublishTime": "",
      "positionUpdateTime": "",
      "positionUpdateTimeText": "今日发布"
    },
    "desc": {
      "description": "工作职责\n1. 负责系统的后端模块开发与维护，涵盖客户管理、库存管理、销售数据统计等核心场景。\n2. 参与系统架构设计与优化，保障高并发业务场景下的系统稳定性与响应效率。\n3. 对接前端团队与业务部门，梳理需求并输出可落地的技术方案，推动功能模块的高效交付。\n4. 负责数据库设计与优化，提升数据查询与存储的性能，保障业务数据的安全性。\n任职要求\n1. 大专及以上学历，具备扎实的编程基础与数据结构知识。\n2. 精通Django/Flask等主流框架，熟悉RESTful API设计规范。\n3. 熟悉MySQL/PostgreSQL等关系型数据库，掌握数据库优化与事务处理技巧。\n4. 具备良好的问题分析与解决能力，能独立排查并解决生产环境中的技术问题。",
      "descriptionHighlight": "",
      "highlightLabels": [],
      "labels": [
        "Django",
        "Flask",
        "MySQL",
        "PostgreSQL",
        "PYTHON后端开发",
        "汽车4S店业务系统开发",
        "高并发系统优化"
      ],
      "performanceBonus": "",
      "welfareLabel": [],
      "welfareTags": []
    },
    "jobType": {
      "jobType": "",
      "jobTypeLevel": "9000300000000",
      "jobTypeLevelName": "",
      "subJobType": "",
      "subJobTypeLevel": "9000300160000",
      "subJobTypeLevelName": ""
    },
    "onlineCarHailingExtend": {
      "gray": false,
      "promiseGuarantee": ""
    },
    "onlineCarInfo": [],
    "other": {
      "customJobGroup": "DEFAULT",
      "deliveredPreviouslyTip": "",
      "jobKeyword": {
        "keywords": []
      },
      "jobSkillTags": [],
      "jobTypeIsBlueCollar": false,
      "overseasList": [],
      "pageStyle": 0,
      "positionCommercialLabel": [],
      "positionHighlight": "",
      "propertyTypeUrl": "",
      "rpoProxyDisplayOrgName": "",
      "urgentRecruitmentUrl": ""
    },
    "preferredHrInfo": {
      "icon": "",
      "introduce": "",
      "jumpUrl": "",
      "preferredHr": false
    },
    "todayInterview": null,
    "workLocation": {
      "address": "工作地点：兰山区 · 兰山街道",
      "addressType": 0,
      "latitude": "35.081576000076",
      "longitude": "118.33032811922477",
      "positionCityDistrict": "",
      "positionCityDistrictCode": "",
      "positionCityId": "714",
      "positionWorkCity": "",
      "showMap": true,
      "showMultiAddressesTip": "",
      "staticMapUrl": "https://storage-public.zhaopin.cn/job/share/1787391409138311008/c0f83f77241448daaa0e3a55d1585c1f",
      "streetName": "",
      "tradingArea": "",
      "travelMode": "bus",
      "verifyTheTruthUrl": "",
      "workAddress": "临沂市-兰山区-北园路192号"
    }
  },
  "staff": {
    "activityLevel": [
      "今日活跃"
    ],
    "auditNaturePrompt": null,
    "authenticationState": 0,
    "avatar": "https://storage-public.zhaopin.cn/zp/clouddisk/1771900438829918193/5aa26dff-84b3-4bb4-93b0-82ecb9374f2f.png?x-oss-process=image/resize,l_240/rotate,0",
    "companyName": "四川安信鼎丰信息科技有限公司",
    "goldMedalInterviewer": null,
    "greeting": "",
    "greetingHasDelivery": "",
    "hrJob": "人事经理",
    "hrOnlineIocState": 0,
    "hrOnlineState": "",
    "hrResumeOperationState": "",
    "hrStateInfo": "",
    "id": 1264305074,
    "lastOnlineTime": 0,
    "lastOnlineTimeText": "",
    "modularState": 1,
    "other": {
      "freeTag": null,
      "tagUrl": ""
    },
    "positionDetailStaffQuickReply": null,
    "staffName": "颜奕"
  },
  "skills": [
    "Django",
    "Flask",
    "MySQL",
    "PostgreSQL",
    "PYTHON后端开发",
    "汽车4S店业务系统开发",
    "高并发系统优化"
  ],
  "staff_card": {
    "authenticationState": 0,
    "avatar": "https://storage-public.zhaopin.cn/zp/clouddisk/1771900438829918193/5aa26dff-84b3-4bb4-93b0-82ecb9374f2f.png?x-oss-process=image/resize,l_240/rotate,0",
    "goldMedalInterviewer": {
      "goldMedalInterviewer": false,
      "interviewerImageUrl": "",
      "interviewerTitle": ""
    },
    "hrCompanyName": "",
    "hrJob": "人事经理",
    "hrOnlineIocState": 0,
    "hrOnlineState": "",
    "hrStateInfo": "刚刚活跃",
    "id": 1264305074,
    "lastOnlineTime": 0,
    "lastOnlineTimeText": "",
    "staffName": "颜奕"
  }
}
```

### 🛟 SUPPORT

Share your runs with the developer team and create issues on error to help us improve actor quality.

You might discover edge case we didn't test yet

We stay available anytime

# Actor input Schema

## `urls` (type: `array`):

Extract job results from a search url

## `max_page` (type: `integer`):

Max page (0 = no limit)

## Actor input object example

```json
{
  "urls": [
    "https://www.zhaopin.com/sou/jl489/kw01O00U80EG06G03F01N0"
  ],
  "max_page": 1
}
```

# 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 = {
    "urls": [
        "https://www.zhaopin.com/sou/jl489/kw01O00U80EG06G03F01N0"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("saswave/zhaopin-job-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 = { "urls": ["https://www.zhaopin.com/sou/jl489/kw01O00U80EG06G03F01N0"] }

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.zhaopin.com/sou/jl489/kw01O00U80EG06G03F01N0"
  ]
}' |
apify call saswave/zhaopin-job-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,saswave/zhaopin-job-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GunsDhaKkip8ikbjn/builds/hy8dO7Mz4hl3s9vpX/openapi.json
