China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng avatar

China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng

Pricing

from $1.34 / 1,000 job postings

Go to Apify Store
China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng

China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng

Search nine Chinese job boards in one run: Zhaopin 智联招聘, Liepin 猎聘, 51job 前程无忧, ChinaHR, Shixiseng, Lagou and more. Get one job format with monthly CNY salary, English city and education labels, cross-board duplicate groups, and new, updated or closed jobs on each scheduled run.

Pricing

from $1.34 / 1,000 job postings

Rating

0.0

(0)

Developer

GetAScraper

GetAScraper

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

4 days ago

Last modified

Share

🇨🇳 China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng

Search nine Chinese job boards in one run and get every job in one clean format
Pull jobs from Zhaopin, Liepin, 51job, ChinaHR, Shixiseng, iGuopin, Jobui, Lagou and eChinaCities with monthly salary in CNY, English city names and education labels, and a flag on jobs that appear on more than one board.
💴 Comparable pay
1.5-2万, 8千-1万 and 13薪 all become monthly CNY ranges.
🏙️ English and Chinese
Every city, education level and company type in both languages.
🧬 Same job, one group
Postings repeated across boards share one group id.
🔔 What changed
New, updated and closed jobs between scheduled runs.

Recruiters, HR analysts and job aggregators who need China hiring data usually open one board at a time and then reconcile pay, cities and titles by hand. This feed reads 智联招聘 (Zhaopin), 猎聘 (Liepin), 前程无忧 (51job), 中华英才网 (ChinaHR), 实习僧 (Shixiseng), 国聘 (iGuopin), 职友集 (Jobui), 拉勾网 (Lagou) and eChinaCities in a single run, applies the same filters to all of them, and returns one table you can sort, export or schedule.

🔎 What does China Jobs Feed do?

You give it keywords, cities and filters. It searches every board you select, converts what each one publishes into the same fields, and marks which rows are new since your last run. Chinese and English keywords both work. Nothing is guessed: if a board does not publish a value, the field is left out.

BoardStrongest forGood to know
Zhaopin 智联招聘Mainstream roles across all of ChinaFast. Shows recruiter reply activity when you ask for it.
iGuopin 国聘State-owned employers and campus recruitmentCity search works for Beijing, Shanghai, Guangzhou, Shenzhen, Hangzhou, Chengdu and Wuhan. Other cities are skipped with a message. Jobs have no public web address.
ChinaHR 中华英才网Mainstream roles across all of ChinaFast. Rows have no description, posting date or recruiter details. A city search can include nationwide postings. Salary, education and experience filters are applied after the jobs are read.
Liepin 猎聘Mid-level and senior rolesYour keyword is matched to the closest Liepin job category, so common job titles work best. Each category and city returns up to about 400 jobs.
eChinaCitiesEnglish-language jobs for foreigners, including teachingEnglish keywords only. Returns the first page of each search, up to 25 jobs.
Jobui 职友集Company-linked openings in many industriesReturns up to 20 jobs per keyword and city. Add more keyword and city pairs for more rows. A search never reports closed jobs.
Shixiseng 实习僧Internships and campus recruitmentCampus roles show pay only when descriptions are included. The full time setting returns nothing here, because every job is an internship or campus role.
51job 前程无忧Broad hiring in every industrySlower, because it needs a heavier collection method. Rows from this board count as premium rows.
Lagou 拉勾网Technology and internet rolesPremium board, off by default. Some attempts are blocked and then return nothing for that search, so run it again later. Rows count as premium rows. Full descriptions are usually unavailable.

Zhaopin, iGuopin, ChinaHR and Liepin are selected by default. Add eChinaCities, Jobui, Shixiseng, 51job or Lagou to the board list when you want them.

🎯 Who uses it

  • I am a recruiter sourcing candidates in China and comparing what Beijing, Shanghai and Shenzhen employers pay for the same title in one table.
  • I am an HR analyst benchmarking salary ranges by city, education and experience, with every pay figure on the same monthly CNY scale.
  • I am a job aggregator feeding a site or app with fresh China listings and a group id that stops one posting from showing up twice.
  • I am a relocation consultant finding English-language and foreigner-friendly roles in Chinese cities for clients who do not read Chinese.
  • I am a researcher tracking state-owned and campus hiring over time, using new and closed job flags from scheduled runs.

🚀 How it works

STEP 1
Pick boards and a search
Choose boards, keywords, cities and filters, or paste a board search link.
STEP 2
Get one table
Every row has the same fields, whichever board it came from.
STEP 3
Schedule it
Name a monitor scope and each run flags new, updated and closed jobs.

Start small. The default search (Python in Beijing, 25 rows) finishes in well under a minute. Raise the limits once the rows look right.

Filters that work on every board

  • Salary: minimum and maximum monthly CNY, or only jobs that show a salary. Yearly and daily pay is converted to monthly first.
  • Experience and education: education means "at least" (bachelor includes master and PhD). Experience matches any overlap with your band.
  • Company type: private, state-owned, foreign-owned, joint venture or listed.
  • Freshness, kind and words: posted within N days, full time, internship or campus, words to exclude, and company names to keep.
  • Unknown values: a job that does not state the value you filter on is dropped, so a filter never lets unchecked rows through. eChinaCities does not publish education, so an education filter leaves that board empty, and ChinaHR does not publish posting dates, so a freshness filter leaves that board empty.

Same job on several boards

Rows that share a title, employer and city get the same clusterId. Turn on uniqueOnly to keep one row per job, the one with the most information. Matching is strict on purpose: a Chinese company name and its English spelling are not treated as the same employer, so some repeats stay separate.

Monitoring over time

Give monitorScope a name and reuse it on a schedule. Each row is marked NEW, UPDATED, UNCHANGED or REOPENED. A job is marked CLOSED only after two complete scans in a row did not find it, and a scan that stopped at your row limit never counts as complete. Choose changesOnly to receive just the rows that changed. If a run reaches its time limit it returns the rows it already has, marks them PARTIAL and leaves your saved history untouched.

⚙️ Input

FieldTypeRequiredDescription
sourcesarray of boardsNoBoards to search: Zhaopin, iGuopin, ChinaHR, Liepin, eChinaCities, Jobui, Shixiseng, 51job, Lagou. Defaults to Zhaopin, iGuopin, ChinaHR and Liepin.
startUrlsarray of URLsNoSearch links copied from a supported board. With the board list emptied, only the pasted links are read. Links from other sites are reported as unsupported.
keywordsarray of textNoJob titles or skills, in Chinese or English. Each keyword is searched in each city. eChinaCities skips Chinese keywords, and Liepin matches the keyword to its closest job category.
expandKeywordsbooleanNoAlso search common synonyms of a job title. Finds more jobs and reads more pages.
citiesarray of textNoCities in English, Chinese or GB code. Empty or Nationwide searches all of China. An unknown city is reported and never turned into a nationwide search.
employmentKindenumNoAny, full time, internship or campus recruitment.
minMonthlySalaryCnyintegerNoKeep jobs whose pay range reaches at least this monthly amount in CNY.
maxMonthlySalaryCnyintegerNoKeep jobs whose pay range starts at or below this monthly amount in CNY.
onlyDisclosedSalarybooleanNoDrop jobs with negotiable or missing pay.
experienceenumNoFresh graduate, 1 to 3, 3 to 5, 5 to 10 or 10 plus years.
educationenumNoMinimum education: associate, bachelor, master or PhD.
companyTypesarray of enumsNoPrivate, state-owned, foreign-owned, joint venture or listed employers.
postedWithinDaysintegerNoKeep jobs posted or updated within this many days.
excludeKeywordsarray of textNoDrop jobs containing any of these words in title, company, category or tags. English words match whole words only; Chinese words match anywhere.
companyNamesarray of textNoKeep only companies whose name contains one of these words.
includeDescriptionbooleanNoAdd the full job description where the board shows it.
includeRecruiterSignalsbooleanNoAdd how recently and how often the recruiter replies. Counts only, no names.
includeRecruiterNamesbooleanNoAdd recruiter name, title and picture. Off by default because they are personal details.
includeSourceFieldsbooleanNoAttach the untouched board record for audits.
convertToUsdbooleanNoAdd monthly pay in US dollars at the current exchange rate.
monitorScopetextNoName that links scheduled runs so each one can mark new, updated and closed jobs.
outputModeenumNoall rows, changesOnly, or compact short rows for spreadsheets and AI agents.
uniqueOnlybooleanNoKeep one row per job when it appears on several boards.
includeClosedbooleanNoWhen monitoring, add a short row for each job that disappeared. Defaults to on.
maxTotalRowsintegerNoLimit on rows for the whole run, shared fairly between boards. Defaults to 25.
maxItemsPerSourceintegerNoLimit on jobs from one board, split across your keyword and city combinations. Defaults to 25.
maxPagesPerSourceintegerNoResult pages read per keyword and city on a board. Defaults to 5.
proxyConfigurationproxyNoOptional. Each board is tried without a proxy first and moves to one only if it is refused.
boardOptionsJSON objectNoOptional extra settings per board, keyed by board id. Unknown keys are ignored.

Free plan

Free-plan accounts get a small sample: up to 25 rows, 3 runs a day and a 30 minute pause between runs. The run ends normally with a message that explains the limit.

🧾 Data table

Each row is one job. Fields a board does not publish are left out. Text fields keep the board's original wording, and English labels sit next to them.

FieldTypeDescription
listingKeystringStable key made of the board and the board's job id.
sourcePlatformstringBoard the row came from: zhaopin, iguopin, chinahr, liepin, echinacities, jobui, shixiseng, 51job or lagou.
sourceRecordIdstringThe board's own job id.
clusterIdstringShared by rows that look like the same job on different boards.
clusterSizeintegerRows in this run that share the group id, when more than one.
isCanonicalbooleanTrue on the most complete row of a group.
inventoryTypestringjob, internship or campus.
searchKeyword, searchCitystringThe keyword and city that found the row.
titlestringJob title as published.
companystringEmployer name as published.
companyType, companyTypeEnstringOwnership type in Chinese and English.
isSoebooleanTrue for state-owned employers.
companyIndustry, companySizestringIndustry and employee range when published.
locationRawstringLocation text exactly as shown.
province, city, cityEn, districtstringResolved location in Chinese and English.
latitude, longitudenumberCoordinates when the board publishes them.
isRemotebooleanTrue when the board marks the job remote.
salaryRawstringSalary text exactly as shown.
salaryDisclosed, salaryNegotiablebooleanWhether a range is shown, or pay is negotiable.
salaryCurrency, salaryPeriodstringCurrency and period as published.
salaryMin, salaryMaxnumberRange in the published unit.
salaryMonthsPerYearnumberPay months per year, for example 13.
salaryMonthlyMinCny, salaryMonthlyMaxCnynumberRange as monthly CNY.
salaryAnnualMinCny, salaryAnnualMaxCnynumberRange as annual CNY.
salaryMonthlyMinUsd, salaryMonthlyMaxUsdnumberOnly with USD conversion on.
experienceRaw, experienceMinYears, experienceMaxYearsstring, numberExperience text and years.
educationRaw, educationEn, educationRankstring, numberEducation text, English label and rank.
employmentType, jobCategory, openingsstring, numberType, category and number of positions.
skills, tags, benefits, majorsarray of stringsRequirement tags and benefits as published.
descriptionstringJob description. Only with descriptions on.
postedAt, updatedAt, expiresAtstringDates in ISO 8601. China time without an offset is read as UTC+8.
applicationStartsAt, applicationEndsAtstringApplication window when published.
listingUrl, applicationUrlstringLinks to the job when the board publishes them.
lifecycleStatusstringNEW, UPDATED, UNCHANGED, REOPENED, CLOSED or PARTIAL.
firstSeenAt, lastSeenAt, closedAtstringWhen a job was first seen, last seen and closed.
changedFieldsarray of stringsWhich groups changed since the last run.
recruiterSignals, recruiterobjectReply activity, and recruiter details. Only when you turn them on.
platformDataobjectEverything else the board publishes that has no common field.

Compact mode returns only title, company, location, salary, url, source, lifecycle and clusterId.

Example row:

{
"listingKey": "zhaopin:40906731305",
"sourcePlatform": "zhaopin",
"inventoryType": "job",
"title": "Python 开发工程师",
"company": "北京京必达科技有限公司",
"companyIndustry": "汽车后市场",
"companySize": "20-99人",
"locationRaw": "工作地点:房山区 · 西潞",
"city": "北京",
"cityEn": "Beijing",
"district": "房山",
"salaryRaw": "1.4-2.8万",
"salaryDisclosed": true,
"salaryCurrency": "CNY",
"salaryPeriod": "month",
"salaryMonthlyMinCny": 14001,
"salaryMonthlyMaxCny": 28000,
"salaryAnnualMinCny": 168012,
"salaryAnnualMaxCny": 336000,
"experienceRaw": "经验不限",
"experienceMinYears": 0,
"educationRaw": "学历不限",
"educationEn": "No requirement",
"employmentType": "全职",
"postedAt": "2026-10-25T01:01:39.000Z",
"clusterId": "title-company-city/v1:27855d57d91c845125389a7a",
"lifecycleStatus": "NEW"
}

Also saved with every run: RUN_SUMMARY (rows per board, limits reached, what was skipped and why) and RUN_HEALTH (the status of each board).

💰 Pricing

Pricing is pay per result: you pay for each job row delivered, shown as "Job posting" in the pricing panel. A run that finds nothing costs nothing, and there is no subscription. Rows from 51job and Lagou carry one small extra "Premium board" charge on top of the job row, also shown in the pricing panel, because those two boards take much more effort to read. Rows from every other board carry no extra charge. If a Lagou search is blocked and returns nothing, you are not charged for it.

⭐ Enjoying China Jobs Feed?

⭐ ⭐ ⭐ ⭐ ⭐
One search across nine Chinese job boards instead of nine separate exports to merge.
A 5-star rating takes 10 seconds and helps other recruiters, analysts and job aggregators find it. Your feedback also tells us which boards and filters to add next.
★  Rate this Actor on Apify

❓ FAQ

How do I search several Chinese job boards at once?

Leave the default boards on, enter your keywords and cities, and run. Every board is searched with the same filters and returns rows in the same format. 如何一次搜索多个招聘网站的职位?Select the boards, type a job title in Chinese or English, and one run returns them all.

怎么把不同招聘网站的薪资统一成人民币月薪?

The feed does it for you. Pay written as 1.5-2万, 8千-1万, a yearly figure or a daily rate is converted to a monthly CNY range. Months of extra pay such as 13薪 are kept and used for the yearly figure. Hourly pay is kept as published without a monthly figure.

Does it need a login or an account on the job boards?

No. It reads public job listings only. You never enter a password, key or cookie. If a board refuses a request, the run reports that board with a plain message and keeps going with the others.

How fresh is the data?

Each run reads the boards at the time you start it, so rows are as current as the boards. Schedule the Actor with a monitorScope to see what is new, updated or closed since the last run.

Which boards and cities are covered?

Zhaopin, Liepin, 51job, ChinaHR, Shixiseng, iGuopin, Jobui, Lagou and eChinaCities. Beijing, Shanghai, Guangzhou, Shenzhen and about 60 other major cities are recognised by name. iGuopin city search covers seven cities for now, eChinaCities returns the first page of each search (up to 25 jobs) and Jobui returns up to 20 jobs per search. Hong Kong, Macau and Taiwan are not covered.

Are recruiter names included?

Not unless you ask. Names, titles and pictures are personal details, so they stay off by default. Reply activity counts without names are a separate option.

🔗 Other actors