# Changelog of Job Postings Database — All ATS, Live Verified (`foxlabs/job-postings-database`) Actor

- **URL**: https://apify.com/foxlabs/job-postings-database/changelog.md
- **Full Actor documentation**: https://apify.com/foxlabs/job-postings-database.md

## Changelog

### 0.1 — 2026-10-20

First release. Searches a cross-ATS job index built from 33.000 company career boards on
seven platforms (Greenhouse, Lever, Ashby, SmartRecruiters, Teamtailor, Personio, BambooHR)
and verifies every delivered role against its source at query time.

- Filters: title (any/all, word-boundary, phrases), company, location, department, remote,
  posted-date window, platform; caps for result count and per-company share.
- Live verification: one board read verifies every matched role of that board; closed roles
  are dropped and never charged. A board that cannot be read leaves its roles delivered but
  flagged `verified: false` rather than silently reported as closed.
- Descriptions come free with the board read on Lever, Ashby, Teamtailor and Personio; the
  other three platforms cost one extra call, made only for roles that survived verification.
- Personio and BambooHR publish no posting date (measured): a date filter sets their roles
  aside and the run message says how many, instead of dropping them silently.
- Empty result is never a silent zero: the run says which filter emptied it and charges nothing.

### 0.1.1 — 2026-10-20

- Proxy URLs are awaited (`proxyConfiguration.newUrl()` is async; the unresolved Promise
  made every proxied request fail), and no proxy group is named — the account default is
  used, with a direct read as the fallback. Both were caught by the first platform runs.

### 0.1.2 — 2026-10-20

- Mode detection fixed: only `APIFY_META_ORIGIN=STANDBY` selects Standby. `ACTOR_STANDBY_PORT`
  is set on every platform run, so a normal batch run was starting the HTTP server and
  timing out instead of searching. Caught by the first platform run.

### 0.1.3 — 2026-10-20

- Reads go direct by default and fall back to the proxy only when a source pushes back
  (429/403) or a read fails. Measured: a 21-row query takes 3.9 s direct vs 58 s through the
  proxy, and costs $0.0004 vs $0.0051 — with identical results and no rate limiting.

### 0.1.4 — 2026-10-20

- README now carries measured numbers instead of estimates: the index holds **445,722** open
  roles across 20,380 boards that currently have any (32,997 indexed), a full refresh takes
  \~14 minutes, and a title+location query over the whole index answered in 11.8 seconds.
- Default memory lowered to 512 MB after measuring a 135 MB peak on the full index.

### 0.1.5 — 2026-10-20

- **Charging fixed.** The priced-event list was read from `Actor.getEnv().actorRunPricingInfo`,
  a field that does not exist, so every charge was skipped silently: the D+0 check measured 10
  delivered rows and `job-posting: 0`. Events now come from `Actor.getChargingManager()` and
  delivery+charge happen in one `Actor.pushData(rows, "job-posting")` call, so the charged count
  cannot drift from what was delivered. Standby uses the same check.
