# Changelog of Greenhouse Jobs API & ATS Change Feed - Workday, Lever, Ashby (`kamerozkan/ats-job-change-feed`) Actor

- **URL**: https://apify.com/kamerozkan/ats-job-change-feed/changelog.md
- **Full Actor documentation**: https://apify.com/kamerozkan/ats-job-change-feed.md

## Changelog

### 1.0.27 - 2026-09-01

- Store title now leads with the Greenhouse jobs API and ATS change feed search intents and
  names Workday, Lever, and Ashby directly; listing copy and cloud settings updated to match.
- Added a Related Actors section, a 16 September 2026 pricing note, and a 2026-09-01 live
  re-verification note in Output examples.

### 1.0.26 - Unreleased

- Repositioned Store discovery around the differentiated `ATS job change feed`
  buyer intent while retaining generic job-scraper wording as supporting copy.
- Added buyer workflow guidance for recruitment agencies, RPO and MSP teams,
  recruitment market intelligence, and portfolio-company monitoring.
- Added explicit product boundaries for public career-page data, private ATS data,
  hiring signals, and investment conclusions.
- Added current-price planning examples for 25, 100, and 500 boards, a measured
  break-even formula, large-watchlist guidance, and a sanitized failure-sharing checklist.

### 1.0.25 - 2026-08-13

- Added an above-the-fold buyer workflow chooser that routes sales intelligence,
  recruiting analytics, current-job export, and DACH research users to the matching live
  Example.
- Added an explicit default-memory monthly cost formula using the current Free and Bronze
  event prices.
- Added a publication check that keeps public Example inputs on the canonical `watchlistId`
  field instead of the legacy `stateKey` compatibility alias.

### 1.0.24 - 2026-08-11

- Updated the pinned `brace-expansion` transitive dependency to 5.0.9 to remediate
  `GHSA-rgw5-rvv9-x895` and restore a clean high-severity production audit.
- Updated the test-tooling `nanoid` transitive dependency to 3.3.17 to remediate
  `GHSA-2v37-7h3g-55p8`, and expanded the release audit to cover development dependencies.
- Revalidated all eight ATS adapters against live public board endpoints before release.
- Added descriptions to every output link so dataset and operational reports are self-explanatory
  in generated API and Store surfaces.
- Fixed unnecessary retries for non-retryable HTTP 4xx responses while preserving retries for
  rate limits, server errors, network failures, and malformed success payloads.
- Added regression coverage for valid payloads, malformed success responses, transient server
  errors, and non-retryable source responses.

### 1.0.23 - 2026-08-02

- Added explicit Store examples for `boards`, `outputMode`, and `watchlistId` so generated
  API code can show a concrete monitoring input.

### 1.0.22 - 2026-08-02

- Added a visible Greenhouse board prefill while preserving the existing API default.
- Recorded the accumulated live 1.0.21 work as a released version instead of leaving it under
  an `Unreleased` heading.

### 1.0.21 - 2026-07-31

- Restructured the README with explicit quick-start, API, configuration, pricing,
  troubleshooting, FAQ, privacy, and support sections.
- Added curl, JavaScript, and Python examples plus direct dataset and run-report guidance.
- Added a key-value store schema for all six public operational reports.
- Added field titles and descriptions to the dataset schema for API and AI-agent consumers.
- Grouped the input form into task-focused sections and aligned state, URL, and catalog
  constraints with runtime validation.
- Renamed the public user-chosen namespace inputs to `watchlistId` and `catalogId`; legacy
  `stateKey` and `catalog.key` inputs remain supported for existing tasks and API clients.
- Added bounded ATS board discovery from company home and careers URLs.
- Added `DISCOVERY_REPORT` with scanned-page, resolution, and failure details.
- Added board and job provenance through `boardOrigin`, `discoveredFrom`, `boardUrl`, and
  `sourceApiUrl`.
- Added SSRF defenses for discovery, including DNS/IP validation, redirect revalidation,
  response-size limits, and restricted ports and content types.
- Added Recruitee's public Careers API adapter with multi-location normalization.
- Added Personio's public XML job-feed adapter, including description-block normalization.
- Added Teamtailor's public jobs RSS adapter with location, department, role, remote status,
  and full-description support.
- Added paginated Workday CXS career-board support with consistent-snapshot retries and
  optional per-job detail retrieval.
- Added deterministic company identities and conservative cross-ATS duplicate clusters.
- Added `canonicalJobId`, `duplicateGroupId`, `isDuplicate`, and `duplicateOf` metadata
  without destructively removing source records.
- Added deterministic DE/AT/CH location details and DACH region classification.
- Added conservative two-digit KldB 2010 revised-2020 title classification with confidence.
- Added language-level, canonical skill, and description-based EUR/CHF salary extraction.
- Added per-board `FRESHNESS_REPORT` metrics with fetch duration and source timestamp age.
- Added post-baseline CREATED/UPDATED detection-latency p50, p95, maximum, and SLA
  compliance metrics plus a ten-minute schedule recipe.
- Added `QUALITY_REPORT` for the 500-company pilot: board/discovery reliability, completeness,
  ATS and DACH distribution, duplicates, enrichment coverage, and grouped failures.
- Added a reproducible 10,000-board candidate catalog sourced from versioned Common Crawl
  URL Index snapshots.
- Added persistent catalog lifecycle states (`PENDING`, `ACTIVE`, `RETRY`, `STALE`,
  `EXPIRED`), retry deadlines, tombstones, and company-domain rediscovery recovery.
- Added deterministic catalog chunk selection, cursor progression, `CATALOG_REPORT`, and a
  10-minute multi-task `CATALOG_TASK_PLAN`.
- Completed a fixed 500-company live pilot across all eight adapters: 15,923 open jobs and a
  500/500 rate-limited repeat fetch.
- Added a StepStone GO/NO-GO assessment. The separate scraper triggered its compliance
  stop-loss and is excluded unless written bulk-read/reuse permission becomes available.
- Repositioned the Store page around source-direct career monitoring, reliable job-change
  events, and failure-safe closure detection; added four search-intent public task recipes.
- Fixed pay-per-event verification to measure the `job-result` counter directly instead of
  the SDK's aggregate custom-plus-synthetic dataset charge count.

### 1.0.0 - Initial Store release

- Added Greenhouse, Lever, Lever EU, Ashby, and Workable public board adapters.
- Added normalized job, location, employment, workplace, salary, and description fields.
- Added deterministic `CREATED`, `UPDATED`, and `CLOSED` change events.
- Added persistent per-board snapshots with failed-board closure protection.
- Added Workable multi-location coalescing and order-independent location comparison.
- Added DACH employment types for Werkstudent, Ausbildung, and Minijob roles.
- Added `job-result` pay-per-event billing with maximum-charge-aware atomic board processing.
- Added Actor input, output, and dataset schemas plus Store documentation.
