Added seniority field and seniority filter (Intern, Junior, Mid, Senior, Lead/Principal), read from the title; matches the seniority enrichment on the top Store competitors (bovi/greenhouse-lever-ashby-job-scraper, factpipe/ats-jobs-feed) that this Actor lacked. On the 31 Oct 2026 ramp capture (171 jobs): 115 Mid, 27 Senior, 21 Lead/Principal, 5 Intern, 3 Junior.
0.6 (2026-11-02): Raised the HTTP client timeout to 120 s (2 attempts) for large boards such as OpenAI so they no longer time out mid-download; parser unchanged.
0.7 (2026-11-03): Ashby now puts OTE notes (e.g. "80/20 split between base and variable") in a tier's additionalInformation; the parser checks that field, alongside the component summary and the overall tier summary, when classifying a Salary range as on-target earnings, so OTE figures are not reported as base salary.
0.8 (2026-11-03): Refreshed live fixtures (ramp now publishes 169 jobs); tolerate a null jobs array in a board response instead of raising ParseError.
0.5 (2026-11-02): A board that does not exist (404) or has no open jobs no longer ends the run FAILED: it is reported in the status and summary rows, and only an unreachable or unparseable board fails the run, so scheduled monitors stop failing on typos and empty boards. A salary read from the description no longer keeps salaryBasis: "ote" from a structured on-target-earnings tier (5 Ramp sales jobs), and the published OTE tiers stay in salaryRanges.
0.4 (2026-11-01): Handle KV store permission failures in monitor mode gracefully without failing runs.
0.3 (2026-11-01): Publish with prefilled default input in monitor mode (ramp, openai, maxItems 50) to demo deltas on first runs.
0.2 (2026-11-01): Handle KV store permission failures in monitor mode gracefully.
Fix: on-target earnings (OTE, base + commission) published inside a Salary component were reported as salary. They now go to oteMin/oteMax; salaryBasis (base/unspecified/ote) says what the salary range is.
Monitor runs with nothing new, changed or removed end successfully (status ok): scheduled monitors no longer fail on quiet days.
Monitor state lives in a store named after the Actor (ashby-jobs-monitor-state), opened only in monitor mode.