# Changelog of 51job Scraper 前程无忧: China Jobs, Salaries & Hiring Data (`getascraper/51job-scraper`) Actor

- **URL**: https://apify.com/getascraper/51job-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/getascraper/51job-scraper.md

## Changelog

All notable changes to this project will be documented in this file.

### \[2.3] - 2026-09-08

#### Added

- 📨 **Recruiter responsiveness scoring**: every job now includes a 0-100 responsiveness score plus the underlying signals (last reply time, today's reply count, resume-review activity), derived from the source's own recruiter-activity labels. New `minRecruiterResponsiveness` input filter, and a dedicated Recruiter Responsiveness dataset view.

#### Fixed

- 🛡️ **A search that fails partway through no longer discards jobs already collected from other searches in the same run.** Only the affected search's coverage is marked incomplete; everything else still ships.
- 🌐 **Recovers automatically from an anti-bot block instead of failing the run.** A blocked request now retries through a residential connection before giving up.

### \[2.2] - 2026-09-04

#### Changed

- ⚡ Lowered the default result cap so a standard run finishes faster.

### \[2.1] - 2026-08-22

#### Changed

- 💸 Switched the default proxy route from Singapore residential to Apify datacenter after a successful 5-row verification run; residential routing remains available for larger runs that encounter rate limits.
- 🧹 Blocked images, media, fonts, and stylesheets after the initial WAF/bootstrap navigation because the Actor only consumes the search JSON response and listing-page HTML fallback.
- 🧠 Kept the 1,024 MB browser memory tier after recent runs measured 512–782 MB peak usage.

### \[2.0] - 2026-08-18

#### Added

- 🔁 Added keyword × city batch searches with a global item cap and per-search page cap.
- 🔔 Added durable recurring monitoring with `NEW`, `UPDATED`, `REAPPEARED`, `UNCHANGED`, and two-complete-run `EXPIRED` lifecycle events.
- 📦 Added full and compact v2 output modes, changed-field detection, source coverage reporting, and safe webhook notifications.
- 🧾 Added refreshed input, dataset, key-value store, and output schemas plus a monitoring dataset view.

#### Changed

- 🧭 Replaced the legacy aliases in the canonical output with source-backed v2 fields: `sourcePostedAt`, `sourceUpdatedAt`, `applicationUrl`, numeric coordinates, normalized salary equivalents, and explicit provenance.
- 🛡️ Malformed rows, WAF responses, unexpected empty pages, and server/network failures now fail visibly or are counted without fabricating data.
- 💳 Kept the current $3.99 per 1,000 results price during the v2 canary while coverage and reliability are measured.

### \[1.2] - 2026-08-02

#### Fixed

- 🛡️ HTML challenge pages returned with a successful HTTP status are now treated as blocked responses instead of malformed data.
- 🔄 Search endpoint responses are observed before falling back to page content, so access challenges trigger the existing retry path quickly.
- 🌐 Each retry creates a fresh Apify Proxy session, improving recovery when a source session is challenged.
- 🧾 Failed runs now write a non-chargeable `OUTPUT` diagnostic with the failure kind and message.

#### Changed

- 📖 Refreshed the bilingual Store README with clearer hiring use cases, suite navigation, data views, and a review prompt.

### \[1.1] - 2026-07-30

#### Fixed

- ✅ Updated search parsing to the current `resultbody.job.items` source structure.
- 🛑 Blocked, malformed, and unexplained empty responses now fail visibly instead of returning a misleading successful empty dataset.
- 🔗 Corrected job and application links and removed invented fallback values.
- 📄 Made pagination sequential with exact `maxItems` enforcement and stable job-ID deduplication.

#### Changed

- 🌏 Residential proxy routing now defaults to Singapore and respects user-selected countries.
- 📦 Output is one flat job dataset, plus a non-chargeable `OUTPUT` run summary.
- ⚡ Removed per-job detail page requests and reused descriptions already present in search results.
- 🧰 Disabled standby mode because this Actor runs as a batch collection job.

### \[1.0] - 2026-07-02

#### Added

- 🔗 Added quick links to our other 3 China jobs actors, so you can find mainstream, tech, and white-collar job leads all in one place.

#### Changed

- 🧹 Cleaned up the Store listing page for a clearer, faster read.
