When a company posts a job, that posting comes with a timestamp, and the timestamp is the interesting part. A new "VP of Sales" role usually means budget just got approved and a decision-maker seat is about to be filled. A first "Data Engineer" opening means someone is standing up a data platform right now. Three "Account Executive" listings in one week means a team is scaling its go-to-market this quarter.

People call this hiring intent data, and it's one of the more useful buying signals around because it's timed. A role that shows up today is a window that's open today. Six weeks later the tool has been picked and the problem is quietly solved.

You don't need an expensive intent-data subscription to see it. Three of the biggest applicant tracking systems (Greenhouse, Lever, and Ashby) serve their customers' job boards as public, unauthenticated JSON. If you can make an HTTP request, you can build your own "who's hiring" feed. This post covers how to pull the data, and then the part people usually get wrong, which is working out what's actually new.

ATS job boards are public JSON APIs

The careers page on a company's site is usually just a front end for a JSON feed the ATS serves publicly. No key, no OAuth. You just need the company's board slug.