# Changelog of Jora Jobs Search Scraper (`jobsapi/jora-jobs-search-scraper`) Actor

- **URL**: https://apify.com/jobsapi/jora-jobs-search-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/jobsapi/jora-jobs-search-scraper.md

## Changelog

### \[2.0.0] - 2026-08-30

#### Changed

- Rebuilt the legacy scraper around official Jora public search/detail HTML and Cheerio parsing.
- Added bounded `search`, `searchMultiple`, `single`, `multiple`, and `startUrls` modes.
- Added strict official URL, 32-character posting-ID, canonical, title, employer, location, and description checks.
- Added complete-record buffering, stable deduplication, source-backed application-link handling, normalized dates, and rich JSON-LD/DOM fields.
- Added strict input/dataset/KVS/output schemas, parser fixtures, tests, lint/check scripts, and a recursive local dataset validator.
- Added local run summaries, structured diagnostics/skips, and explicit ordinary-transport provenance.
- Removed the legacy browser, proxy, fingerprint, and fail-open paths.

#### Local QA

- Jora public search pages returned HTTP 200 in ordinary native HTTPS and exposed current job cards.
- Sampled official detail routes returned HTTP 403 Cloudflare access-denied responses locally.
- Search, single, multiple, searchMultiple, and startUrls therefore fail closed when detail enrichment is blocked, with no partial or fabricated rows.
