Zhaopin Scraper 智联招聘: China Jobs & Salary API
Pricing
from $1.12 / 1,000 jobs
Zhaopin Scraper 智联招聘: China Jobs & Salary API
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.
Pricing
from $1.12 / 1,000 jobs
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
39
Total users
14
Monthly active users
3 days ago
Last modified
Categories
Share
| Find the recruiters on Zhaopin who are actually replying, not just the listings. Every job comes with a 0-100 recruiter responsiveness score, normalized CNY salary, skills, and company fields, plus a monitoring mode that emits only new, updated, or expired listings on later runs. | |||
| China jobs source comparison • Zhaopin, 51Job, Liepin, and ChinaHR listings side by side | |||
|
➤ You are here |
Jobs, salary & employer context |
White-collar roles & salary data |
Job titles, salary & employer data |
|
Score every recruiter by how likely they are to reply, before you apply Search Zhaopin (智联招聘) by keyword and city, and get a recruiter responsiveness score built from Zhaopin's own reply-time signals, alongside normalized CNY salary, skills, education, and company fields, plus a monitoring mode that emits only new, updated, or expired listings on later runs. |
|
📈 Recruiter responsiveness A 0-100 score built from Zhaopin's own reply-time signals, with a filter to keep only responsive recruiters. |
💰 CNY salary bounds Compare monthly salary ranges across cities and roles. |
🔁 Hiring-change monitoring Track NEW, UPDATED, REAPPEARED, and EXPIRED listings over time. |
🛡️ API-first collection Reads Zhaopin's public search API instead of a CAPTCHA-prone page. |
Turn live Zhaopin (智联招聘) listings into China jobs and salary data you can monitor. Export normalized job, salary, skill, company, and hiring-change data to CSV, Excel, Google Sheets, databases, dashboards, or alerts. No account on the source site is required.
🎯 Who uses this China jobs data?
- I am a job-data product manager adding current China coverage to a job board, search product, or data feed.
- I am a labor-market researcher comparing salaries, skills, education, and hiring demand across Chinese cities.
- I am a talent-intelligence analyst tracking which employers and industries are expanding their teams.
- I am a recruiter or HR-tech operator monitoring new roles without checking the same searches every day.
📊 China salary data and hiring intelligence
Use salaryMin, salaryMax, and currency to compare monthly CNY salary ranges across cities, job titles, and employers. Pair those fields with skills, education, experience, company, and posting-time data to build a China hiring dataset or monitor changes over time.
🚀 How to use it
|
STEP 1 Choose searches Enter one keyword and city, or add batch lists. |
STEP 2 Select the output Use full records, compact rows, or change monitoring. |
STEP 3 Run or schedule Download once or schedule a daily hiring feed. |
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
query | string | No | One job keyword for a standard search. The default is Python when no batch keywords or exact URLs are provided. |
queries | array of strings | No | Batch keywords. Each keyword is combined with every batch city. |
startUrls | array of URLs | No | Public Zhaopin /sou search URLs with jl and kw. Supported legacy filter parameters carry forward. |
city | enum | No | One city for a standard search. The default is Beijing. |
cities | array of strings | No | Batch city codes. Each city is combined with every batch keyword. |
education | enum | No | Minimum education filter, including college, bachelor, master, and doctor levels. |
experience | enum | No | Required work experience range, applied directly by Zhaopin's public search API. |
jobType | enum | No | Employment type filter for full-time, part-time, or internship roles. |
salary | string | No | Legacy salary-band code 1–7, or an explicit monthly CNY range such as 15001,25000. |
companyType | string | No | Company-type code for state-owned, private, or foreign employers. |
companySize | string | No | Company-size code used by the source search. |
minRecruiterResponsiveness | integer | No | Only keep jobs whose recruiter responsiveness score meets this minimum (0-100). Jobs with no responsiveness signal are excluded, not assumed to pass. |
maxItems | integer | No | Maximum jobs per keyword and city search, up to 2,000. |
incrementalMode | boolean | No | Compare this run with the saved state for the same search scope. |
stateName | string | No | Isolates one monitor or client from another. Defaults to default. |
outputMode | enum | No | Choose full records or a smaller compact row for workflows. |
includeUnchanged | boolean | No | Include unchanged jobs during monitoring. Disabled by default to avoid duplicate charges. |
notificationWebhookUrl | string | No | Secret HTTPS endpoint for monitoring change summaries. Requires incremental mode. |
notificationEvents | array | No | Change types that trigger delivery: NEW, UPDATED, REAPPEARED, and/or EXPIRED. |
notifyOnNoChanges | boolean | No | Send a successful-run heartbeat when no actionable changes were detected. Disabled by default. |
proxyConfiguration | object | No | Datacenter proxy fallback. Direct API requests run first to minimize proxy cost. |
Reliable filters, lower run cost
| API-first collection. The Actor reads Zhaopin's public search API instead of a CAPTCHA-prone HTML page. Each search retries safely on its own, and if one search in a multi-keyword or multi-city run still fails, jobs already collected from every other search are still delivered rather than the whole run being lost. |
- Education, employment type, salary, company type, and company size are matched only against fields returned by Zhaopin.
- Requests are capped at 20 per minute; proxy traffic is used only as a recovery fallback after a direct API request fails.
- Open the non-chargeable Run diagnostics output to inspect direct requests, proxy fallbacks, and bounded retries.
📦 Output example
This live sample shows the compact fields, recruiter responsiveness, plus monitoring metadata:
{"jobId": "40921595403","jobUrl": "https://www.zhaopin.com/jobdetail/CC1234567J40921595403.htm","title": "销售经理","companyName": "示例科技有限公司","city": "北京","cityEn": "Beijing","district": "海淀","salaryMin": 12001,"salaryMax": 18000,"currency": "CNY","educationEn": "Bachelor","experienceMin": 3,"recruiterName": "王女士","recruiterStateRaw": "30分钟内回复可能性大","recruiterExpectedReplyWithinMinutes": 30,"recruiterRepliesToday": 50,"recruiterRepliesToday50Plus": true,"recruiterResponsivenessScore": 92,"sourcePostedAt": "2026-09-08T13:59:14.000Z","scrapedAt": "2026-09-08T12:41:46.581Z","changeType": "NEW","firstSeenAt": "2026-09-08T12:41:46.639Z","lastSeenAt": "2026-09-08T12:41:46.639Z"}
🧾 Selected output fields
| Field | Type | Description |
|---|---|---|
jobId | string | Stable Zhaopin job identifier used for deduplication and monitoring. |
jobUrl | string | Public job detail link. |
title | string | Position title. |
description | string | Full job description when available. |
benefits | array | Individual benefits offered with the job, in the employer's own wording (五险一金, 绩效奖金, 餐补). Common on commercial and sales roles, rarer on technical ones. |
benefitsDetailed | array | The same benefits grouped under their category, such as 社保类型 or 薪资补贴. |
skills | array | Skill tags attached to the job. |
city, cityEn, district | string | Source city, English city name, and district. |
street, tradingArea | string | Sub-district street or named commercial area, when Zhaopin provides more geo detail than district alone. |
address, latitude, longitude | mixed | Workplace address and coordinates when published. |
educationRaw, educationEn | string | Original and normalized education requirements. |
experienceRaw, experienceMin, experienceMax | mixed | Original and normalized experience requirements. |
salaryRaw, salaryMin, salaryMax | mixed | Original salary text and normalized monthly CNY range. |
companyName, companyId, companySize | mixed | Employer identity and size. |
companyIndustry, companyFinancing | string | Employer industry and financing stage when available. |
recruiterName, recruiterTitle | string | Public business contact name and role when supplied with the posting. |
recruiterResponsivenessScore | number | 0-100 score derived from Zhaopin's own reply signals below. Null when no signal is present at all. |
recruiterStateRaw | string | Zhaopin's raw reply-recency label, e.g. "2小时前有回复" or "刚刚活跃". |
recruiterLastReplyHoursAgo, recruiterLastReplyMinutesAgo | number | Time since the recruiter's last reply, at whichever precision Zhaopin reports. |
recruiterExpectedReplyWithinHours, recruiterExpectedReplyWithinMinutes | number | How soon the recruiter is likely to reply, when Zhaopin reports it instead of a last-reply time. |
recruiterRepliesToday, recruiterRepliesToday50Plus, recruiterActiveToday, recruiterActiveNow, recruiterHighReplyRate | mixed | Today's reply count and activity flags behind the score. |
employmentType, jobCategory, recruitCount | mixed | Employment terms, category, and advertised opening count. |
sourcePostedAt | string | Source publication time in ISO 8601 format. |
scrapedAt | string | Time the Actor collected the row. |
changeType | string | NEW, UPDATED, REAPPEARED, UNCHANGED, or EXPIRED. |
firstSeenAt, lastSeenAt, expiredAt | string | Monitoring history for the listing. |
🔄 How job monitoring works
- The first run marks every current job as
NEW. - Later runs compare stable job IDs and meaningful field changes.
- Unchanged jobs stay out of the dataset unless
includeUnchangedis enabled. - A missing job must be absent from two complete identical scans before it becomes
EXPIRED. Expiry is skipped whenmaxItemsdoes not cover the search window. - Failed or partial crawls never advance missing-job state.
- A job that returns after expiry is marked
REAPPEARED.
Use a different stateName for each client, schedule, or independent monitoring project.
Webhook change summaries
Set notificationWebhookUrl to your secret HTTPS automation endpoint to receive one concise JSON summary after a complete, successful monitoring run. Choose the triggering changes with notificationEvents. Enable notifyOnNoChanges only when your workflow needs a heartbeat confirming that the scheduled scan completed without actionable changes.
The versioned payload includes the run and monitoring state, change counts, dataset URL, and at most 10 lightweight job samples. Delivery uses a timeout and bounded retries. Redirects and local or private network destinations are blocked. A webhook error never changes monitoring state, removes data, or turns a successful scrape into a failed run.
Successful runs with no changes
When a monitoring run finds only unchanged jobs and includeUnchanged is off, the dataset is intentionally empty. This is a successful zero-change run, not a scrape failure, and it creates no result charge. Open the Output tab's Run summary link (the run-summary record in the default Key-Value Store) to see currentJobs, datasetRows, zeroChangeRun, and the counts for every change type.
💰 Pricing
Pricing is pay per result. Empty runs, the Key-Value Store run summary, and monitoring runs with no changed rows produce no result charges. There is no subscription. The Store price remains $1.49 per 1,000 saved jobs.
The API-first path and 256 MB default memory reduce compute and proxy cost without changing this price.
⭐ Enjoying Zhaopin Scraper?
|
⭐ ⭐ ⭐ ⭐ ⭐ Building a useful China hiring feed without scraper maintenance? A 5-star rating takes 10 seconds and helps job-data teams and researchers find it. Your feedback also guides the next release. |
| ★ Rate this Actor on Apify |
💡 Tips
- Combine related keywords with several cities to create one larger dataset.
- Keep a stable
stateNamewhen scheduling incremental runs. - Connect a secret HTTPS webhook when a downstream workflow needs immediate change summaries or successful-run heartbeats.
- Use compact output for alerts and databases. Use full output for research and enrichment.
- Build longitudinal history from the first scheduled run. This Actor does not claim historical postings that the source no longer publishes.
❓ FAQ
智联招聘爬虫可以每天监控岗位变化吗?
Yes. Enable incremental mode, keep the same search and state name, then schedule the Actor daily or weekly.
智联招聘数据采集 API 可以导出薪资数据吗?
Yes. When Zhaopin publishes a salary range, the Actor keeps the original salary text and returns normalized monthly CNY minimum and maximum fields for analysis.
How is the recruiter responsiveness score calculated?
Zhaopin publishes two of its own signals on every listing: how recently the recruiter replied (or how soon they're likely to), and how many times they've replied today. The Actor normalizes both into a single 0-100 score, favoring more recent and more specific signals. A job with no responsiveness signal at all gets a null score rather than a guessed one, and is excluded when minRecruiterResponsiveness is set.
Does the Zhaopin API require a source-site login?
No. The Actor collects publicly available job postings without requiring your personal source-site account.
Can I collect several Chinese cities in one run?
Yes. Add batch keywords and city codes. The Actor runs every keyword and city combination, then removes duplicate job IDs.
Can a blocked or incomplete run expire my saved jobs?
No. Jobs already collected are still delivered even if part of a multi-search run fails, but expiry detection only runs when every search in that run genuinely reached the end of its results. A partial run never marks a missing job as expired.
Why did a successful scheduled run return an empty dataset?
With incremental mode enabled and unchanged rows disabled, an empty dataset means no job changed. Check run-summary for the successful scan totals and change counts.
🛡️ Responsible use and support
This Actor retrieves public job-posting data. Follow applicable laws and the source site's terms. Do not use the output to collect private candidate or resume information.
Open an issue from the Actor page for bug reports, field questions, or feature requests.
🔗 Other actors
- 51job Scraper ↗ - collect mainstream China job listings with bilingual fields.
- Lagou Tech Jobs Scraper ↗ - collect technology and startup roles from Lagou.
- Liepin China Jobs Scraper ↗ - collect professional and white-collar roles from Liepin.
- Japan Dev Scraper ↗ - collect Japan technology roles with salary and visa fields.
- CareerCross Scraper ↗ - collect bilingual jobs in Japan with language requirements.