# Changelog of Lever ATS Jobs Scraper – Scrape Lever.co (`logiover/lever-postings-scraper`) Actor

- **URL**: https://apify.com/logiover/lever-postings-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/logiover/lever-postings-scraper.md

## Changelog

### 2026-09-01

- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.

### 2026-08-11

- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.

### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Declared 36 dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder.
- Flattened Lever's native grouped response before normalization, preventing null-field rows when group is enabled; all-site/all-detail transport failures now fail explicitly instead of succeeding empty.
- Replaced migrated or empty Netflix/Plaid/Mixpanel examples with live official Lever boards (Lyra Health and Highspot) and clarified the difference between an EU-instance board and a stale handle.
- Declared 36 nullable dataset fields from typed live cloud samples so the output contract is no longer an empty placeholder or brittle to sparse modes.

### 2026-07-18

- Maintenance & reliability pass — re-verified end-to-end against live data via the Apify API; confirmed the Actor completes successfully and returns non-empty, well-formed results within the 5-minute quality window on its default input.
- Refreshed build so the latest version is current; no change to inputs, output fields or scraping logic.

### 2026-07-12

- Empty input now works: with no sites the actor scrapes a built-in set of large, well-known Lever career pages (spotify, palantir, veeva, matchgroup, leverdemo), so an empty run returns real jobs and succeeds.
- No mandatory fields — nothing is required anymore.
- Added a global `maxResults` cap (default 1000) so the default run stays fast and cheap; raise it (or set 0) to pull everything.
- jobDetail with no job IDs now gracefully returns a jobs listing instead of erroring; unknown modes fall back to jobs.
- Added a ~4-minute pagination time budget so long batch runs exit successfully with whatever was collected.
- Salary (min/max), created timestamp and other numeric fields remain real numbers in the output; nullable fields left untyped in the dataset schema to avoid schema-validation drops.

### 2026-06-28

- Health check passed — actor verified working end-to-end on Apify platform.
- Changelog refreshed for Store quality compliance.

### 2026-06-20

- Maintenance & reliability pass: re-verified end-to-end against live data and confirmed the Actor completes successfully within the 5-minute quality window on the default input.
- Refreshed the prefilled example input and tuned run defaults for faster, lower-cost runs.
