All notable changes to ATS Hiring Radar are listed here. Prices change at most once a month with 14 days' notice.
Initial release.
- Six ATS read through their official public job-board APIs: Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee and Personio. Workable is recognised in the input but disabled until a live board with jobs has been verified.
- Company input as
ats:slug, board URL or plain company domain with cached ATS auto-detection.
- One normalised job schema: stable
uid, employer postedAt / updatedAt, seniority, function, remoteType, ISO-2 countryCode, normalizedTitle, provenance-tagged compensation (source = ats or description-regex).
- Monitor mode with per-company history in a named key-value store on your account: new jobs only after the baseline, closures from complete scans only, 7/30/90-day deltas, surge and contraction flags.
- Time-to-fill analytics:
daysOpen, isStale, daysToClose, medianDaysToFill90d, p75DaysToFill90d, closedRolesTracked90d, staleShare, hardToFillFunctions.
- Eight built-in signal types plus user-defined regex Signal rules with a 160-character evidence snippet; signals deduplicated across runs.
- Optional HMAC-SHA256-signed signal webhook with a durable outbox.
- Pay-per-event pricing: job-record, company-snapshot (primary), signal, Actor start. First 100 job rows of every run are free; error rows are never billed.
- Dataset views: Jobs, Company snapshots, Signals.
Release-candidate fixes (2026-09-21, before publication):
stale_role alerts only when a role becomes stale while tracked: a role already past Stale after (days) when first seen (the baseline run, or a role appearing later with an old posting date) is recorded as stale and never fires (previously the first monitor run fired once for every already-stale role).
- Extract mode is stateless: it neither reads nor writes the state store, returns every open job on every run, one snapshot per company computed from that run only (
isBaselineRun: true, historyRuns: 0, firstTrackedAt: null) and only rule_match / leadership_hire signals.
- Partial, capped and held scans no longer feed the trend history: their deltas,
openRolesPct30d, surge and contraction are null, and later runs skip their counts, so a truncated scan cannot produce a false contraction or a later false surge.
- A mass disappearance (zero postings for a tracked board, or at least five roles and 80% of the board gone at once) is held and reported as
company_error partial_scan; the roles close only when the next complete scan confirms it, dated at the first miss.
- The per-company state record is bounded: roles that leave a capped board's window are dropped after max(2 x Stale after (days), 120) days without a closure, and the jobs map is capped at max(3 x Max jobs per company, 5,000) records (12,000 at most).
- Signals a spending limit withholds are queued in the state store (up to 1,000 per company) and delivered, each exactly once, by the next monitor run; withheld job rows were already re-emitted.
- New
company_snapshot field capped (board truncated at Max jobs per company).