Every job scraper I've tried does the same thing: parse careers-page HTML,
break two weeks later, return mush. But here's the thing — most companies
don't host their own job boards. They use an ATS: Greenhouse, Lever, Ashby,
Workable, Recruitee, SmartRecruiters. And every one of those exposes a public
JSON API for its boards.
So instead of scraping HTML, my actor calls the APIs directly:
- Stripe -> Greenhouse API -> 502 open roles, structured JSON, ~1 second
- Ramp -> Ashby API -> 128 roles
- Give it just "anthropic.com" and it auto-detects the Greenhouse board (404 roles)
Listings are commodity. Signals are the product.
The actor keeps a snapshot between runs and diffs:
- HIRING_SURGE — new-role velocity >=20% (a department is expanding: sales trigger)
- HIRING_FREEZE — >=25% of postings pulled (often precedes news by weeks)
- NEW_ROLES — every new job since last check, with title/location/URL
Schedule it daily against a watchlist and pipe the diff to Slack. A 100-company
watchlist costs about $2/day.
Who actually uses this
B2B sales (hiring in your buyer's department = budget exists), recruiters
(req velocity across target accounts), analysts (freezes as leading
indicators), and job seekers who want first-mover advantage on target companies.
Try it: https://apify.com/Bythonic_API/hiring-signals-monitor. First runs are cheap; failed lookups are never charged.
Missing an ATS you need (Workday, iCIMS)? Open an issue — I'm actively adding.
Top comments (0)