Liepin Scraper 猎聘: China Jobs, Salary Data & Headhunter Posts
Pricing
from $0.90 / 1,000 jobs
Liepin Scraper 猎聘: China Jobs, Salary Data & Headhunter Posts
Liepin scraper for China jobs: white-collar and headhunter postings with CNY and USD salary, bonus months, salary percentiles, seniority, poster type and recruiter title. Search by English or Chinese job title and city, and track new, updated and removed jobs. No login needed. $1.76 per 1,000 jobs.
Pricing
from $0.90 / 1,000 jobs
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
59
Total users
11
Monthly active users
12 hours ago
Last modified
Categories
Features
Share
🇨🇳 Liepin Scraper 猎聘: China Jobs, Salary Data & Headhunter Posts
| Collect public Liepin job postings with CNY and USD salary data, and know exactly what changed. Search China's white-collar job market by keyword and city, several of each in one run, and see which jobs are posted by the hiring company and which by headhunters. Turn on change tracking to get only new, updated, and removed jobs on every run. | |||
| China jobs source comparison • Zhaopin, 51Job, Liepin, and ChinaHR listings side by side | |||
|
Jobs, salary & hiring-change monitoring |
Jobs, salary & employer context |
➤ You are here |
Job titles, salary & employer data |
|
要查多个招聘网站? China Jobs Feed 一次运行覆盖主要平台。 | |||
|
Liepin jobs with salary statistics and poster type attached Search China's white-collar job market by keyword and city, or start from featured listings, and keep normalized CNY and USD salary figures, requirements, and company details in clean rows. |
|
💰 Salary data you can compare Monthly CNY and USD pay, pay months, annual figure and percentiles by role and city. |
🔔 Change tracking built in Every run after the first returns only new, updated, and removed jobs. |
🧑💼 Headhunter or employer Every job says who posted it, with company industry, funding stage and size. |
📝 Optional job detail Pull the full public job description only on the runs where you need it. |
Liepin jobs data, from the white-collar and executive job board 猎聘, in clean rows. This Actor returns public listing data for China salary data products, recruitment-market research, headhunter and recruiter tracking, and company hiring intelligence. It does not collect candidate profiles or private contact information, and it needs no Liepin account.
🎯 What you can do
- Search several job titles across several cities in one run, de-duplicated by job ID.
- Get monthly and annual salary in CNY, with optional US dollars at a dated exchange rate shown on each row.
- Save salary statistics (median and percentiles by keyword and city, degree, seniority and poster type) computed from the jobs in the run.
- Tell headhunter-posted jobs from jobs posted by the hiring company, and keep only one kind with a filter.
- Turn on change tracking to get only new, updated, and removed jobs on a schedule, with the previous salary when it changed.
- Flag the same company posting the same title in several cities.
- Paste Liepin category, city or search links, including the links used by other Liepin scrapers. Search links run on the closest Liepin job category for their keyword, and the run tells you which one.
- Add full job descriptions, work address and last update date for the runs that need them.
👥 Who this China jobs data is for
- I am a workforce researcher looking to measure demand and advertised CNY compensation for professional roles in a Chinese city.
- I am a job-data platform manager looking to add traceable public Liepin roles to a China jobs product.
- I am a talent-intelligence analyst looking to identify companies, sectors, and locations hiring for a specialist role.
- I am a market-research consultant looking to compare public role requirements and employer signals without manually reading result pages.
🛠️ How to use it
|
STEP 1 Choose keywords and cities Add one or many job titles and cities, or paste Liepin links you already use. |
STEP 2 Bound the run Set a job limit, page depth, filters, and whether to add USD pay or job descriptions. |
STEP 3 Use the evidence Analyze source URLs, salary, requirement, and company fields in your own workflow. |
📥 Input
| Field | Type | Required | Description |
|---|---|---|---|
scrapeMode | enum | No | Search by keyword and city (default), featured jobs from the Liepin home page, or pasted Liepin links. |
keywords | array | No | Job titles in English or Chinese, such as python, product manager, nurse or 产品经理. Each is matched to a Liepin job category. |
cities | array | No | City names such as Beijing, Shanghai or 杭州, Liepin city codes such as 010, or all for nationwide. Beijing when left empty. |
startUrls | array | No | Liepin links used in link mode. Category and city links run exactly as given. Search links run on the closest Liepin job category for their keyword, so results can differ from the site's own search, and the status message names the category used. |
maxItems | integer | No | Most jobs returned across the run (default 25, up to 5,000). Free-plan runs are capped at 25. |
pagesPerQuery | integer | No | Most result pages per keyword and city. Each page holds up to 40 jobs. |
postedBy | enum | No | Anyone (default), hiring company only, or headhunter only. |
onlyDisclosedSalary | boolean | No | Skip jobs without a readable salary. |
minMonthlySalaryCny | integer | No | Keep jobs whose top salary reaches this monthly amount. |
excludeKeywords | array | No | Skip jobs whose title or company contains any of these words. |
dropCrossCityDuplicates | boolean | No | Keep only the first row when a company posts the same title in several cities. |
fallbackToFeaturedJobs | boolean | No | Off by default. When on, featured home page jobs are returned if nothing matched; they are labelled home-board and charged like any job. |
convertToUsd | boolean | No | Add US dollar salary figures. |
salaryStatistics | boolean | No | Save a SALARY_STATS record for the run (on by default). |
salaryStatisticsMinSample | integer | No | Fewest jobs with a salary needed to report a group. |
includeSourceFields | boolean | No | Add a sourceFields object with the values as Liepin shows them. |
includeJobDetail | boolean | No | Add description, full company name, work address, headcount and last update. Jobs whose page cannot be read are not returned or charged. |
monitorMode | enum | No | Snapshot (default) or Track changes for new, updated and removed jobs. |
stateName | string | No | Watchlist name for change tracking. Use a different name per keyword set or schedule. |
includeUnchanged | boolean | No | With change tracking, also return unchanged jobs. |
proxyConfiguration | object | No | Leave on automatic, or set your own proxy. |
Earlier inputs keyword, city, and the urls, max_page and max_results inputs used by other Liepin scrapers are still accepted. Liepin's keyword search results page is not read; each keyword is matched to the closest Liepin job category instead, and English job titles are understood in several hundred common forms, and a keyword with no matching category ends the run with a clear message and suggestions.
📊 Data you receive
The Actor returns one flat record per public Liepin listing. A field is omitted or null when the source does not publish it.
Output example
One real row from a Python search in Beijing:
{"jobId": "81069331","title": "Python 开发工程师(AI/Agent 方向)","companyName": "沃丰科技","salaryString": "23-50k","salaryPeriod": "month","minSalaryMonthlyCny": 23000,"maxSalaryMonthlyCny": 50000,"bonusMonths": 12,"annualEstimateCny": 438000,"salaryDisclosed": true,"cityName": "北京","districtName": "西直门","experienceString": "2-10年","experienceEnglish": "2-10 Years","experienceMinYears": 2,"experienceMaxYears": 10,"degreeString": "本科","degreeEnglish": "Bachelor's","companyId": "8926847","companyIndustry": "计算机软件","companyScale": "500-999人","companyStage": "D轮及以上融资","companyUrl": "https://www.liepin.com/company/8926847/","jobKind": 2,"postedByType": "employer","recruiterTitle": "集团招聘总监","recruiterName": "邵女士","listingUrl": "https://www.liepin.com/city-bj/career/python/","jobUrl": "https://www.liepin.com/job/1981069331.shtml","scrapedAt": "2026-11-11T03:55:17.547Z","sourceLabel": "search","categoryName": "Python","categorySlug": "python","searchKeyword": "python","searchCity": "北京","salaryMedianMonthlyCny": 36500,"changeType": "SNAPSHOT"}
| Field | Type | Description |
|---|---|---|
jobId | string | Source job identifier. |
title | string | Published job title. |
companyName | string or null | Published employer name. |
salaryString | string or null | Original salary text from the source. |
minSalaryMonthlyCny | number or null | Lower monthly CNY amount when derivable from the source. |
maxSalaryMonthlyCny | number or null | Upper monthly CNY amount when derivable from the source. |
bonusMonths | number or null | Number of salary months published by the source. |
annualEstimateCny | number or null | Annual CNY estimate when derivable from the source. |
salaryDisclosed | boolean | Whether the listing publishes salary information. |
cityName | string or null | Published city. |
districtName | string or null | Published district. |
experienceString | string or null | Original experience requirement. |
experienceEnglish | string or null | English experience label when mapped from the source. |
experienceMinYears | number or null | Minimum required experience in years when parsed. |
experienceMaxYears | number or null | Maximum required experience in years when parsed. |
degreeString | string or null | Original education requirement. |
degreeEnglish | string or null | English education label when mapped from the source. |
companyId | string or null | Source company identifier. |
companyTypeString | string or null | Original company-type label. |
companyTypeEnglish | string or null | English company-type label when mapped from the source. |
companyIndustry | string or null | Published company industry. |
companyScale | string or null | Published employer-size label. |
companyUrl | string or null | Public employer page when published. |
jobKind | number or null | Source poster-type code: 2 is the hiring company, 1 is a headhunting firm. |
postedByType | string or null | employer for jobs posted by the hiring company, headhunter for jobs posted by a headhunting firm. |
companyNameHidden | boolean or null | true when Liepin hides the company name (common on headhunter jobs); companyName is then omitted. |
recruiterTitle | string or null | Job title of the poster, for example HR or a headhunter title. |
recruiterName | string or null | The recruiter's surname and title in the short form Liepin shows on the listing, for example 邵女士 (Ms Shao). Never a full name, phone number or email. Omitted when the listing shows no name in that form. |
salaryPeriod | string or null | month, year or day, as the source states the pay. Daily pay is converted to monthly at 21.75 working days. |
salaryMedianMonthlyCny | number or null | Midpoint of the monthly salary range. |
salaryMedianMonthlyUsd, salaryMinMonthlyUsd, salaryMaxMonthlyUsd, annualEstimateUsd | number or null | US dollar figures when convertToUsd is on, with usdPerCny and usdRateDate. |
seniorityLevel | string or null | Level named in the job title (intern, junior, senior, lead, manager, director, vp, c_level); omitted when the title names none. |
requiresFullTimeEnrolment | boolean or null | true when the degree requirement says 统招 (full-time enrolment). |
companyStage | string or null | Funding stage shown on the listing, for example B轮 or 已上市. |
categoryName, categorySlug | string or null | The Liepin job category the keyword was matched to. |
searchKeyword, searchCity | string or null | The keyword and city this row was collected for. |
crossCityDuplicate, crossCityDuplicateCities, crossCityDuplicateOf | mixed | Set when the same company posts the same title in several cities in the run. |
previousSalaryString, salaryChangePct | mixed | With change tracking, on an UPDATED job whose salary changed. |
companyFullName, workAddress, headcount, lastUpdatedDate, daysSinceUpdated, recruiterActiveText | mixed | Added by includeJobDetail. |
sourceFields | object or null | Raw values as Liepin shows them when includeSourceFields is on. |
descriptionText | string or null | Public job-description text when includeJobDetail is on. |
listingUrl | string | Liepin page from which the row was collected. |
jobUrl | string | Public source page for the job. |
sourceLabel | string or null | search/urls for a keyword or link match, home for a featured-jobs run, or home-board when the optional fallback returned featured jobs (never a keyword match). |
changeType | string or null | With change tracking on: NEW, UPDATED, UNCHANGED, or REMOVED. Otherwise SNAPSHOT. |
firstSeenAt | string or null | With change tracking on: when this job was first seen under this watchlist name. |
lastSeenAt | string or null | With change tracking on: when this job was last seen matching. |
scrapedAt | string | Time the record was collected. |
💵 Pricing
This is a pay-per-result Actor. You pay for job rows returned to the dataset, with a lower price per row on higher Apify plans, and a small start charge per run. You are not charged for empty searches, blocked attempts, keywords that match no category, or rows whose requested job description could not be read. Salary statistics and the run summary are free. You can cap spending with the maximum total charge setting of the run. There is no subscription.
View the current usage price and free-test allowance on the Actor page.
⭐ Enjoying Liepin Scraper?
|
⭐ ⭐ ⭐ ⭐ ⭐ Found useful white-collar hiring data for your workflow? A 5-star rating takes 10 seconds and helps other workforce researchers and job-data teams find it. Your feedback also tells us what to build next. |
| ★ Rate this Actor on Apify |
❓ FAQ
How do I run a 猎聘 search for a job title in Chinese or English?
Enter the job title in keywords, for example 产品经理, 数据分析师, java, data analyst, product manager or nurse, and add one or more cities. The Actor matches each keyword to the closest Liepin job category and returns the jobs listed there. If no category matches, the run ends cleanly, tells you, and suggests close categories.
猎聘有哪些职位数据可以导出 (what Liepin job data can I export)?
Title, company, salary in CNY with pay months, city and district, experience and degree, company industry, size and funding stage, poster type (hiring company or headhunter) and the link to each job. Turn on job detail for the description, full company name and work address.
Can I move from another Liepin scraper without changing my pipeline?
Yes. The urls, max_page and max_results inputs are accepted, including m.liepin.com search links, and includeSourceFields adds the values as Liepin shows them. Search links are not run as Liepin's own search page: the keyword in each link is matched to the closest Liepin job category and that category is collected, so results can differ from the site's search results. The run status message says which category each link used, and a keyword that is not a job category (for example a country name) returns a clear message instead of rows.
What happens if Liepin blocks a request?
The run finishes without an error and charges nothing for rows it could not collect. It retries automatically with a different connection first. The status message says whether Liepin had no matching jobs, could not be reached, or showed an access check, so a blocked run is never shown as an empty search. Rows already collected are kept.
How does change tracking decide a job was removed?
A job is reported REMOVED only after two consecutive complete scans confirm it is gone. A scan that stopped at your job or page limit, or could not read a page, never removes anything.
Does this Liepin scraper collect candidate profiles or private contacts?
No. It is for public job listings, salaries, requirements, and employer context. It does not collect candidate profiles or private contact information. For the recruiter it returns only what the listing shows in short form, a surname with a title such as 邵女士, plus the recruiter's job title. Full names, phone numbers and email addresses are never collected.
⚖️ Responsible use
Use public employment data in line with the source terms, applicable law, and your organization’s privacy obligations. Do not use the output to make decisions about individual candidates.
🛟 Support
For a reproducible issue, include the keywords and cities or the Liepin link, selected mode, approximate run time, and the run ID. That provides enough context to inspect the source response.
🔗 Other actors
- China Jobs Feed 中国招聘: Zhaopin, Liepin, 51job, Lagou, Shixiseng ↗ - reads several Chinese job boards in one run, in one format, with a monitor mode for new jobs.
- 51job scraper 前程无忧 ↗ - Jobs, salary, and hiring-change monitoring for China's largest job board.
- Zhaopin Scraper 智联招聘 ↗ - China jobs and salary data with change tracking, from Zhaopin.
- Lagou Tech Jobs Scraper ↗ - China tech and IT recruitment postings with salary ranges.
- iGuopin Jobs Scraper 国聘 ↗ - State-owned enterprise and campus recruitment postings in China.