Zhaopin Scraper 智联招聘: China Jobs & Salary API avatar

Zhaopin Scraper 智联招聘: China Jobs & Salary API

Pricing

from $1.12 / 1,000 jobs

Go to Apify Store
Zhaopin Scraper 智联招聘: China Jobs & Salary API

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

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

39

Total users

14

Monthly active users

3 days ago

Last modified

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
 Zhaopin
➤ You are here
 51job
Jobs, salary & employer context
 Liepin
White-collar roles & salary data
 ChinaHR
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

FieldTypeRequiredDescription
querystringNoOne job keyword for a standard search. The default is Python when no batch keywords or exact URLs are provided.
queriesarray of stringsNoBatch keywords. Each keyword is combined with every batch city.
startUrlsarray of URLsNoPublic Zhaopin /sou search URLs with jl and kw. Supported legacy filter parameters carry forward.
cityenumNoOne city for a standard search. The default is Beijing.
citiesarray of stringsNoBatch city codes. Each city is combined with every batch keyword.
educationenumNoMinimum education filter, including college, bachelor, master, and doctor levels.
experienceenumNoRequired work experience range, applied directly by Zhaopin's public search API.
jobTypeenumNoEmployment type filter for full-time, part-time, or internship roles.
salarystringNoLegacy salary-band code 17, or an explicit monthly CNY range such as 15001,25000.
companyTypestringNoCompany-type code for state-owned, private, or foreign employers.
companySizestringNoCompany-size code used by the source search.
minRecruiterResponsivenessintegerNoOnly keep jobs whose recruiter responsiveness score meets this minimum (0-100). Jobs with no responsiveness signal are excluded, not assumed to pass.
maxItemsintegerNoMaximum jobs per keyword and city search, up to 2,000.
incrementalModebooleanNoCompare this run with the saved state for the same search scope.
stateNamestringNoIsolates one monitor or client from another. Defaults to default.
outputModeenumNoChoose full records or a smaller compact row for workflows.
includeUnchangedbooleanNoInclude unchanged jobs during monitoring. Disabled by default to avoid duplicate charges.
notificationWebhookUrlstringNoSecret HTTPS endpoint for monitoring change summaries. Requires incremental mode.
notificationEventsarrayNoChange types that trigger delivery: NEW, UPDATED, REAPPEARED, and/or EXPIRED.
notifyOnNoChangesbooleanNoSend a successful-run heartbeat when no actionable changes were detected. Disabled by default.
proxyConfigurationobjectNoDatacenter 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

FieldTypeDescription
jobIdstringStable Zhaopin job identifier used for deduplication and monitoring.
jobUrlstringPublic job detail link.
titlestringPosition title.
descriptionstringFull job description when available.
benefitsarrayIndividual benefits offered with the job, in the employer's own wording (五险一金, 绩效奖金, 餐补). Common on commercial and sales roles, rarer on technical ones.
benefitsDetailedarrayThe same benefits grouped under their category, such as 社保类型 or 薪资补贴.
skillsarraySkill tags attached to the job.
city, cityEn, districtstringSource city, English city name, and district.
street, tradingAreastringSub-district street or named commercial area, when Zhaopin provides more geo detail than district alone.
address, latitude, longitudemixedWorkplace address and coordinates when published.
educationRaw, educationEnstringOriginal and normalized education requirements.
experienceRaw, experienceMin, experienceMaxmixedOriginal and normalized experience requirements.
salaryRaw, salaryMin, salaryMaxmixedOriginal salary text and normalized monthly CNY range.
companyName, companyId, companySizemixedEmployer identity and size.
companyIndustry, companyFinancingstringEmployer industry and financing stage when available.
recruiterName, recruiterTitlestringPublic business contact name and role when supplied with the posting.
recruiterResponsivenessScorenumber0-100 score derived from Zhaopin's own reply signals below. Null when no signal is present at all.
recruiterStateRawstringZhaopin's raw reply-recency label, e.g. "2小时前有回复" or "刚刚活跃".
recruiterLastReplyHoursAgo, recruiterLastReplyMinutesAgonumberTime since the recruiter's last reply, at whichever precision Zhaopin reports.
recruiterExpectedReplyWithinHours, recruiterExpectedReplyWithinMinutesnumberHow soon the recruiter is likely to reply, when Zhaopin reports it instead of a last-reply time.
recruiterRepliesToday, recruiterRepliesToday50Plus, recruiterActiveToday, recruiterActiveNow, recruiterHighReplyRatemixedToday's reply count and activity flags behind the score.
employmentType, jobCategory, recruitCountmixedEmployment terms, category, and advertised opening count.
sourcePostedAtstringSource publication time in ISO 8601 format.
scrapedAtstringTime the Actor collected the row.
changeTypestringNEW, UPDATED, REAPPEARED, UNCHANGED, or EXPIRED.
firstSeenAt, lastSeenAt, expiredAtstringMonitoring 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 includeUnchanged is enabled.
  • A missing job must be absent from two complete identical scans before it becomes EXPIRED. Expiry is skipped when maxItems does 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 stateName when 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