# Yingjiesheng Scraper 应届生求职网: China Graduate Jobs & Campus Talks (`getascraper/yingjiesheng-graduate-jobs-scraper`) Actor

Scrape Yingjiesheng 应届生求职网 for 校园招聘 data: graduate jobs with parsed monthly salary, employer campus campaigns, application deadlines and on-campus talks (宣讲会). Filter by city, industry, class year; export JSON, CSV, Excel or API; change feed for daily tracking. No login needed.

- **URL**: https://apify.com/getascraper/yingjiesheng-graduate-jobs-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 campus records

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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🎓 Yingjiesheng Scraper 应届生求职网: China Graduate Jobs & Campus Talks

<table width="100%" style="table-layout:fixed;border-collapse:collapse;margin-bottom:0">
<tr>
<td colspan="3" style="padding:14px 18px;background:#F5F3FF;border-top:3px solid #6D28D9;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:8px 8px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">See China's graduate hiring from three public sources side by side.</span> <span style="font-size:15px;color:#57534E">Yingjiesheng adds campus jobs, application deadlines and campus talks to the state-owned employer and national graduate listings from iGuopin and NCSS.</span>
</td>
</tr>
<tr>
<td colspan="3" style="padding:10px 14px;background:#6D28D9;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">China campus and public recruitment</span>
<span style="color:#DDD6FE;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Campus, graduate and state-owned employer hiring data</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:33%;background:#FFFFFF;border-radius:0 0 0 8px">
<span style="color:#1C1917;overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-7o0pzaHJlQjuWfJIQ-8OgnhF1vUV-images_%2819%29.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/iguopin-jobs-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">iGuopin</a></span><br>
<span style="color:#57534E;font-size:11px">SOE &amp; campus hiring data</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:33%;background:#FFFFFF">
<span style="color:#1C1917;overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-u3lvE2BUy2n03teF9-EdQwozwk8Z-ncss_vica_logo_%281%29.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/ncss-jobs-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">NCSS</a></span><br>
<span style="color:#57534E;font-size:11px">Graduate &amp; internship data</span>
</td>
<td style="padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:33%;background:#F5F3FF;border-radius:0 0 8px 0">
<span style="color:#6D28D9;overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-BLrWeb8EtBmPt0aE2-w8v4ddihGd-images_%2859%29.jpeg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/yingjiesheng-graduate-jobs-scraper" style="color:#6D28D9;text-decoration:none;font-weight:700;font-size:13px">Yingjiesheng</a></span><br>
<span style="color:#6D28D9;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
</tr>
</table>
<table width="100%" style="margin-top:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#F5F3FF;border:1px solid #DDD6FE;border-top:4px solid #6D28D9;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Know who is hiring graduates this season, and when applications close</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search Yingjiesheng for 校招, 秋招, 春招 and 实习 jobs with salary already in yuan, plus employer campaigns, application deadlines and campus talks, all in one export.</span>
</td>
</tr>
</table>
<table width="100%" style="margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #DDD6FE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#6D28D9">🎓 Graduate-ready rows</span><br>
<span style="font-size:12px;color:#57534E">Graduating class, programme type and a fresh-graduate flag on every job.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #DDD6FE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#6D28D9">💰 Salary you can sort</span><br>
<span style="font-size:12px;color:#57534E">Pay text becomes a minimum, a maximum and a monthly figure in yuan.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #DDD6FE;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#6D28D9">📅 Deadlines and talks</span><br>
<span style="font-size:12px;color:#57534E">Application close dates and campus presentations next to the jobs.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #DDD6FE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#6D28D9">🔔 Daily change feed</span><br>
<span style="font-size:12px;color:#57534E">Schedule a run and keep only the rows that are new or updated.</span>
</td>
</tr>
</table>

Pull graduate and campus hiring data from 应届生求职网 (Yingjiesheng), China's best-known graduate job site. One run can return jobs and internships, employer campus campaigns, application deadlines and on-campus talks. Everything comes from public pages, with no account, login or key.

### 🔍 What does Yingjiesheng Scraper do?

You choose one or more data sets, and every row says which kind it is.

- **Jobs and internships.** Openings with employer, city, salary range, education, experience, graduating class, programme type, employer size and ownership, and posting date.
- **Campus campaigns.** The featured employer recruitment pages, with the employer, graduating class, programme and the employer's own apply link.
- **Application deadlines.** Employer, regions hiring, deadline date and days left, from the first page of the site's deadline calendar.
- **Campus talks.** Date, city, school, venue and employer, plus the exact start time when the site publishes it as text.

A field the site does not publish is left out. Nothing is guessed or filled with placeholder text.

### 💡 Why use it?

- **I run a graduate job board** and need a steady feed of current 校招 and 实习 openings by city, so my listings never look stale.
- **I am a campus recruiter** who wants to see which competing employers have opened 2027 campaigns, what they pay and when their applications close.
- **I work in a university career centre or an edtech team** and send students a weekly list of deadlines and campus talks near them.
- **I am an HR researcher** comparing graduate starting salaries across cities, industries and employer types, with pay already converted to monthly yuan.

### 🚀 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#F5F3FF;border:1px solid #DDD6FE;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#6D28D9;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick your data sets</span><br>
<span style="font-size:12px;color:#57534E">Choose jobs, campaigns, deadlines, campus talks, or any mix of them.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F5F3FF;border:1px solid #DDD6FE;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#6D28D9;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add keywords and filters</span><br>
<span style="font-size:12px;color:#57534E">Narrow by city, industry, graduating class, salary and posting date.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F5F3FF;border:1px solid #DDD6FE;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#6D28D9;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Download or schedule it</span><br>
<span style="font-size:12px;color:#57534E">Export to Excel, CSV or JSON, or run daily to see only what changed.</span>
</td>
</tr>
</table>

With no keywords, you get the site's current recommended graduate jobs. The default of 20 rows per data set keeps a first run quick.

### 📥 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `sources` | array of enums | No | Which data sets to collect: jobs, campus campaigns, application deadlines and campus talks. Defaults to jobs. |
| `keywords` | array of strings | No | Search words in Chinese or English, such as 管理培训生 or 软件工程师. Each keyword is searched on its own and merged without duplicates. |
| `cityCodes` | array of enums | No | Only return jobs in these cities. About 50 cities are listed, and each one is searched separately. |
| `industryCodes` | array of enums | No | Only return jobs from employers in these industries. |
| `functionCodes` | array of enums | No | Only return jobs in these job functions. Add a keyword for functions that are not listed. |
| `searchWider` | boolean | No | Repeats each keyword across the 20 biggest graduate job cities to return far more than one search shows. Off by default. |
| `jobTypes` | array of enums | No | Keep only full-time, internship or part-time roles. |
| `educationLevels` | array of enums | No | Keep only jobs asking for exactly these education levels, from vocational to PhD. |
| `freshGraduatesOnly` | boolean | No | Keep only jobs that accept students or fresh graduates. Off by default. |
| `graduationYear` | enum | No | Keep rows aimed at one graduating class, for example 2027. Leave empty for all classes. |
| `companyTypes` | array of enums | No | Keep only employers of these ownership types, such as state-owned, private, foreign or listed. |
| `companySizes` | array of enums | No | Keep only employers in these headcount bands, from under 50 to over 10,000 people. |
| `minMonthlySalaryCny` | integer | No | Drop jobs whose top monthly salary in yuan is lower than this. Jobs without a published monthly salary are dropped too. Use 0 to turn it off. |
| `postedWithinDays` | integer | No | Keep only jobs posted in the last N days. Use 0 for any age. |
| `mustMention` | array of strings | No | Keep a row only if it mentions at least one of these words. Works for every data set. |
| `mustNotMention` | array of strings | No | Drop a row if it mentions any of these words. Works for every data set. |
| `deadlineWithinDays` | integer | No | Keep only application deadlines that fall in the next N days. Use 0 to keep every upcoming deadline. |
| `talkProvinces` | array of enums | No | Only list campus talks held in these provinces or cities. Leave empty for all of China. |
| `talkIndustry` | enum | No | Only list campus talks from employers in one industry. |
| `talkKeyword` | string | No | Search campus talks by employer, school or venue name, for example 清华 or 华为. |
| `talksWithinDays` | integer | No | Keep only talks happening in the next N days. Use 0 to keep every upcoming talk. |
| `includeDetails` | boolean | No | Adds the full description, requirements and benefits to jobs, and the start time, company intro and recruitment notice to talks. Runs slower. |
| `onlyNewSinceLastRun` | boolean | No | Saves only rows that are new or changed since the last run with the same monitor name. The first run saves everything as the baseline. |
| `monitorScope` | string | No | Name of this saved watch list. Use a different name for each schedule so they do not share history. |
| `maxItems` | integer | No | Stops each selected data set after this many rows. Defaults to 20. |
| `proxyConfiguration` | object | No | Optional proxy settings. Switch on Apify Proxy if the site refuses requests, which can happen when collecting campus talks. |

### 📊 Data table

Every row has a `recordType` of `job`, `campaign`, `deadline` or `talk`, plus `sourceUrl` and `scrapedAt`. Fields the site does not publish are left out.

#### Jobs

| Field | Type | Description |
| --- | --- | --- |
| `jobId`, `jobUrl`, `title` | text | Job identity, link and title. |
| `companyName`, `companyId`, `companyLogoUrl` | text | Employer name, id and logo. |
| `companyType`, `companySize`, `companyIndustry` | text | Ownership, headcount band and industry. |
| `companyLabels` | list | Public company badges such as listed, state-owned subsidiary or patents held. |
| `location`, `city`, `district` | text | Work location. |
| `latitude`, `longitude` | number | Map position when published. |
| `salaryText` | text | Salary exactly as shown. |
| `salaryMin`, `salaryMax`, `salaryMonths` | number | Parsed salary range and pay months per year. |
| `salaryPeriod` | text | Pay period, such as month or year. |
| `monthlySalaryMinCny`, `monthlySalaryMaxCny` | number | Monthly range in yuan, so monthly and yearly pay can be compared. |
| `jobType` | text | Full-time, internship or part-time. |
| `isInternship`, `isFreshGraduateFriendly`, `isManagementTrainee` | true or false | Internship, accepts fresh graduates, and management trainee flags. |
| `educationRequired`, `experienceRequired` | text | Education and experience requirement. |
| `graduationYear` | number | Graduating class named in the title. |
| `recruitmentType`, `recruitmentLabel` | text | Programme type, such as campus recruitment or autumn recruitment. |
| `functionCategory`, `functionCode` | text | Job function. |
| `tags` | list | Employer-chosen tags. |
| `postedAt`, `updatedAt` | text | Posting and refresh time with the China time zone offset. |
| `headcount`, `headcountText` | number or text | Number of openings. |
| `description` | text | Full description and requirements (full details only). |
| `benefits`, `majorRequirement` | list | Benefits and accepted majors (full details only). |
| `languageRequirement`, `workAddress`, `companyAddress` | text | Language need and addresses (full details only). |

#### Campus campaigns

| Field | Type | Description |
| --- | --- | --- |
| `campaignId`, `campaignTitle`, `campaignUrl` | text | Campaign identity, title and link. |
| `companyName`, `section` | text | Employer and the home page block it appears in. |
| `destinationUrl`, `destinationHost` | text | The employer's own recruitment site when the card links through. |
| `graduationYear` | number | Graduating class. |
| `recruitmentType`, `recruitmentLabel` | text | Programme type. |
| `campaignType`, `campaignImageUrl` | text | Published label and banner image. |

#### Application deadlines

| Field | Type | Description |
| --- | --- | --- |
| `deadlineId`, `title`, `detailUrl` | text | Notice identity, title and link. |
| `companyName` | text | Employer. |
| `regions` | list | Regions the employer hires in. |
| `deadlineDate` | text | Application deadline date. |
| `daysLeft` | number | Days remaining until the deadline. |
| `graduationYear` | number | Graduating class. |
| `recruitmentType`, `recruitmentLabel` | text | Programme type. |
| `remarks`, `listRefreshedAt` | text | Notes, and when the site last refreshed the calendar. |

#### Campus talks

| Field | Type | Description |
| --- | --- | --- |
| `talkId`, `talkUrl`, `title` | text | Talk identity, link and title. |
| `talkDate`, `weekday` | text | Date and weekday of the talk. |
| `talkTime`, `talkStartsAt`, `talkEndsAt` | text | Start and end time, only when the site publishes them as text (full details only). |
| `city`, `school`, `venue` | text | Where it happens. |
| `companyName` | text | Presenting employer. |
| `companyIntro`, `recruitmentNotice` | text | Company intro and recruitment notice (full details only). |
| `applyStartDate`, `applyEndDate`, `workLocation`, `applyUrl` | text | Apply window, work location and apply link when published (full details only). |

#### Change feed fields

When **Only new and changed rows** is on, every row also carries `changeType` (`new` or `updated`) and `firstSeenAt`.

### 📤 Sample output

A job row from a real run, shortened by leaving out the long description and company badges:

```json
{
  "recordType": "job",
  "jobId": "173547190",
  "jobUrl": "https://m.yingjiesheng.com/jobdetail/173547190",
  "title": "百事集团2027年度综合管理培训生",
  "companyName": "百事（中国）",
  "companyType": "外资（欧美）",
  "companySize": "500-1000人",
  "companyIndustry": "快速消费品(食品、饮料、化妆品)",
  "location": "上海",
  "city": "上海",
  "jobType": "全职",
  "isInternship": false,
  "isFreshGraduateFriendly": true,
  "isManagementTrainee": true,
  "educationRequired": "本科",
  "experienceRequired": "在校生/应届生",
  "functionCategory": "管理培训生",
  "salaryText": "25-28万/年",
  "salaryMin": 250000,
  "salaryMax": 280000,
  "salaryPeriod": "year",
  "monthlySalaryMinCny": 20833,
  "monthlySalaryMaxCny": 23333,
  "postedAt": "2026-09-29T18:49:45+08:00",
  "searchKeyword": "管理培训生",
  "scrapedAt": "2026-10-11T09:26:19.092Z"
}
```

A deadline row from the same run:

```json
{
  "recordType": "deadline",
  "deadlineId": "008-090-286",
  "title": "【北京上海广东江苏其它】中国农业发展银行2027校园招聘",
  "detailUrl": "https://www.yingjiesheng.com/job-008-090-286.html",
  "companyName": "中国农业发展银行",
  "regions": ["北京", "上海", "广东", "江苏", "其它"],
  "deadlineDate": "2026-10-11",
  "daysLeft": 0,
  "graduationYear": 2027,
  "recruitmentType": "campus",
  "recruitmentLabel": "校园招聘",
  "listRefreshedAt": "2026-10-05"
}
```

### 💰 Pricing

You pay per result, which means per row saved. Jobs, campaigns, deadlines and talks all count the same way, and full details cost nothing extra. A run that finds nothing costs nothing, and there are no subscriptions or setup fees. Larger Apify plans pay less per row.

If you set a maximum charge per run, the Actor stops cleanly once that budget is used and says so in the run summary.

### ⭐ Enjoying Yingjiesheng Scraper?

<table width="100%" style="display:table;width:100%">
<tr>
<td style="padding:20px 24px 14px;background:#F5F3FF;border:1px solid #DDD6FE;border-left:5px solid #6D28D9;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">One run just showed you which employers are hiring graduates, and when their applications close.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other graduate job platforms, campus recruiters and career services teams find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#6D28D9;border:1px solid #DDD6FE;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/yingjiesheng-graduate-jobs-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### 应届生求职网上怎么批量导出校招职位和薪资?

Choose Jobs, add a keyword such as 管理培训生, pick your cities and turn on Fresh graduates only. You get a table with the salary already split into minimum, maximum and monthly yuan, ready to export to Excel or CSV.

##### 怎么按截止日期跟踪2027校园招聘网申和宣讲会?

Choose Application deadlines or Campus talks and set the days-ahead filter. Deadlines come from the first page of the site's calendar, which is refreshed about once a week. Talk start times appear only when the site publishes them as text. Schedule the run with Only new and changed rows to see fresh entries each time.

##### How many jobs can I collect per keyword?

The site shows 10 jobs per search page, so one keyword and one city returns up to 10. Turn on Search wider, or add several keywords and cities, to collect many more distinct jobs in a single run.

##### Do I need an account, and does it collect recruiter contacts?

No account, login or key is needed. Recruiter names, phone numbers and emails are not collected.

### 🔗 Other actors

- [Jobui Scraper 职友集: China Jobs with CNY Salary & Employer Data](https://apify.com/getascraper/jobui-china-jobs-scraper) ↗ - job listings with salary in yuan and employer profiles from Jobui.
- [NCSS Jobs Scraper 国家大学生就业: Internships](https://apify.com/getascraper/ncss-jobs-scraper) ↗ - national graduate and internship listings.
- [iGuopin Jobs Scraper 国聘: China SOE & Campus Jobs](https://apify.com/getascraper/iguopin-jobs-scraper) ↗ - state-owned employer and campus jobs.
- [51job Scraper 前程无忧: China Jobs, Salary Data & Recruiter Scores](https://apify.com/getascraper/51job-scraper) ↗ - jobs and salary data from 51job.
- [Zhaopin Scraper 智联招聘: China Jobs & Salary API](https://apify.com/getascraper/zhaopin-jobs-scraper) ↗ - jobs, salaries and employer details from Zhaopin.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/yingjiesheng-graduate-jobs-scraper/changelog.md

# Actor input Schema

## `sources` (type: `array`):

Pick one or more data sets. Jobs are individual openings with salary and requirements. Campus campaigns are the featured employer recruitment pages. Deadlines is the application deadline calendar. Talks are on-campus recruitment presentations.

## `keywords` (type: `array`):

Search words in Chinese or English, one per line, for example 管理培训生 or 软件工程师. Each keyword is searched on its own and results are merged without duplicates. Leave empty to read the site's current recommended graduate jobs.

## `cityCodes` (type: `array`):

Only return jobs in these cities. Each city is searched separately, so more cities means more results per keyword.

## `industryCodes` (type: `array`):

Only return jobs from employers in these industries.

## `functionCodes` (type: `array`):

Only return jobs in these job functions. Add a keyword to search for functions that are not listed.

## `searchWider` (type: `boolean`):

The site shows only the top 10 jobs for each search. Turn this on to repeat each keyword across the 20 biggest graduate job cities (and common campus keywords if you gave none) so one run can return hundreds of distinct jobs. Runs take longer.

## `jobTypes` (type: `array`):

Keep only full-time, internship or part-time roles.

## `educationLevels` (type: `array`):

Keep only jobs asking for exactly these education levels.

## `freshGraduatesOnly` (type: `boolean`):

Keep only jobs that accept students or fresh graduates, based on the experience requirement and wording such as 应届, 校招, 管培 and 实习 in the title.

## `graduationYear` (type: `string`):

Keep campaigns, deadlines and jobs aimed at this graduating class. Rows that do not name a class are kept for jobs, but dropped for campaigns and deadlines only when they name a different year.

## `companyTypes` (type: `array`):

Keep only employers of these ownership types.

## `companySizes` (type: `array`):

Keep only employers with these headcounts.

## `minMonthlySalaryCny` (type: `integer`):

Drop jobs whose top monthly salary is below this amount in yuan. Jobs without a published monthly salary are dropped when this is set. 0 turns the filter off.

## `postedWithinDays` (type: `integer`):

Keep only jobs posted in the last N days. 0 means any age.

## `mustMention` (type: `array`):

Keep a row only if its title, employer name, tags or function contains at least one of these words. Works for all data sets.

## `mustNotMention` (type: `array`):

Drop a row if its title, employer name, tags or function contains any of these words. Works for all data sets.

## `deadlineWithinDays` (type: `integer`):

For the deadline calendar, keep only application deadlines that fall in the next N days. 0 keeps every upcoming deadline. Deadlines that already passed are always skipped.

## `talkProvinces` (type: `array`):

Only list campus talks held in these provinces or cities. Leave empty for all of China.

## `talkIndustry` (type: `string`):

Only list campus talks from employers in this industry.

## `talkKeyword` (type: `string`):

Search campus talks by employer, school or venue name, for example 清华 or 华为.

## `talksWithinDays` (type: `integer`):

Keep only talks happening in the next N days. 0 keeps every upcoming talk.

## `includeDetails` (type: `boolean`):

Open each job page or talk page to add the full description, requirements, benefits and majors for jobs, or the exact start time, company intro, recruitment notice and apply window for talks. Runs slower because each row needs one extra page.

## `onlyNewSinceLastRun` (type: `boolean`):

Save only rows that are new or changed since the last run with the same monitor name. The first run saves everything and becomes the baseline. Each saved row is marked as new or updated.

## `monitorScope` (type: `string`):

Name of this saved watch list. Use a different name for each schedule so they do not share history. Letters, numbers and dashes work best.

## `maxItems` (type: `integer`):

Stop each selected data set after this many saved rows. The default keeps a trial run fast.

## `proxyConfiguration` (type: `object`):

Optional. The site is normally reachable without a proxy. Switch on Apify Proxy only if requests are refused from your region.

## Actor input object example

```json
{
  "sources": [
    "jobs"
  ],
  "keywords": [],
  "cityCodes": [],
  "industryCodes": [],
  "functionCodes": [],
  "searchWider": false,
  "jobTypes": [],
  "educationLevels": [],
  "freshGraduatesOnly": false,
  "graduationYear": "",
  "companyTypes": [],
  "companySizes": [],
  "minMonthlySalaryCny": 0,
  "postedWithinDays": 0,
  "mustMention": [],
  "mustNotMention": [],
  "deadlineWithinDays": 0,
  "talkProvinces": [],
  "talkIndustry": "",
  "talkKeyword": "",
  "talksWithinDays": 0,
  "includeDetails": false,
  "onlyNewSinceLastRun": false,
  "monitorScope": "default",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `runSummary` (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 = {
    "sources": [
        "jobs"
    ],
    "keywords": [],
    "cityCodes": [],
    "industryCodes": [],
    "functionCodes": [],
    "searchWider": false,
    "jobTypes": [],
    "educationLevels": [],
    "freshGraduatesOnly": false,
    "graduationYear": "",
    "companyTypes": [],
    "companySizes": [],
    "minMonthlySalaryCny": 0,
    "postedWithinDays": 0,
    "mustMention": [],
    "mustNotMention": [],
    "deadlineWithinDays": 0,
    "talkProvinces": [],
    "talkIndustry": "",
    "talkKeyword": "",
    "talksWithinDays": 0,
    "includeDetails": false,
    "onlyNewSinceLastRun": false,
    "monitorScope": "default",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/yingjiesheng-graduate-jobs-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 = {
    "sources": ["jobs"],
    "keywords": [],
    "cityCodes": [],
    "industryCodes": [],
    "functionCodes": [],
    "searchWider": False,
    "jobTypes": [],
    "educationLevels": [],
    "freshGraduatesOnly": False,
    "graduationYear": "",
    "companyTypes": [],
    "companySizes": [],
    "minMonthlySalaryCny": 0,
    "postedWithinDays": 0,
    "mustMention": [],
    "mustNotMention": [],
    "deadlineWithinDays": 0,
    "talkProvinces": [],
    "talkIndustry": "",
    "talkKeyword": "",
    "talksWithinDays": 0,
    "includeDetails": False,
    "onlyNewSinceLastRun": False,
    "monitorScope": "default",
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/yingjiesheng-graduate-jobs-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 '{
  "sources": [
    "jobs"
  ],
  "keywords": [],
  "cityCodes": [],
  "industryCodes": [],
  "functionCodes": [],
  "searchWider": false,
  "jobTypes": [],
  "educationLevels": [],
  "freshGraduatesOnly": false,
  "graduationYear": "",
  "companyTypes": [],
  "companySizes": [],
  "minMonthlySalaryCny": 0,
  "postedWithinDays": 0,
  "mustMention": [],
  "mustNotMention": [],
  "deadlineWithinDays": 0,
  "talkProvinces": [],
  "talkIndustry": "",
  "talkKeyword": "",
  "talksWithinDays": 0,
  "includeDetails": false,
  "onlyNewSinceLastRun": false,
  "monitorScope": "default",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call getascraper/yingjiesheng-graduate-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/yingjiesheng-graduate-jobs-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/BLrWeb8EtBmPt0aE2/builds/UhYKNZ9anxHbyzA0F/openapi.json
