- 🔔 Cross-run change tracking: turn on "Track changes" to get only new, updated, and removed jobs on a recurring schedule, instead of the full list every time. A watchlist name scopes independent schedules. A job is only reported removed after two consecutive complete scans confirm it, so one blocked run never falsely reports a job as gone.
- 🏠 A blocked keyword search now automatically falls back to Liepin's public featured-jobs board instead of returning an empty failed run, with every fallback row clearly labelled so it is never mistaken for a keyword match.
- ✅ A run that collected real jobs from some sources no longer fails outright just because one other source was temporarily blocked. The blocked source is still reported, but the run succeeds with the jobs it did collect.
- 🛡️ Search now defaults to residential proxies. Explicit proxy settings remain fully supported.
- 🖥️ Lowered the Actor's memory allocation to match its actual footprint. No effect on results.
- ⚡ Lowered the default result cap so a standard run finishes faster.
- 🔁 Increased retry attempts on job-detail enrichment for better resilience against transient failures.
- Fixed the default proxy route after the initial Cloud canary showed that a fixed Singapore residential pool could be challenged. Automatic Apify routing is now the default, while explicit proxy settings remain fully supported.
- Improved blocked-session recovery: the Actor now rotates through up to four isolated sessions before returning a visible source failure.
- Switched generated home and search requests to Liepin's official
blade.liepin.com listing frontend after it returned verified Cloud results while the www listing frontend was challenging all tested routes. Supplied public search URLs are safely canonicalized to the same frontend; emitted job links remain source-provided www.liepin.com URLs.
- Fixed source classification for normal Blade listings that embed generic verification text in their application shell: verified job cards now take precedence, while redirects to Liepin's dedicated safety host continue to fail visibly.
- Fixed search-result ordering: visible cards on the requested board now take priority over unrelated background recommendation responses.
- Fixed generated keyword, city, and pagination parameters to Liepin's public
key, city, dq, and currentPage names. The prior parameter names silently returned an unfiltered feed.
- Restricted search-response extraction to Liepin's dedicated public job-search endpoint, excluding unrelated background recommendations.
All notable changes to this project will be documented in this file.
- 🛡️ Challenge, malformed, and unexplained empty pages now fail visibly instead of producing successful zero-row runs.
- 🔎 Search mode captures verified Liepin job responses and keeps home-page collection as the fast default.
- 📋 Dataset rows now match the published flat schema, with genuine source job and company URLs.
- 🎯 Pagination, deduplication, and output limits now produce an exact maximum without duplicate job IDs.
- 🧾 Detail collection is opt-in and preserves the genuine listing row when a description is unavailable.
- 📊 Added a non-chargeable
OUTPUT summary with completeness and source totals.
- ⚙️ Disabled standby mode because this Actor runs as a batch job.
- 🔗 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.