Hiring Tech Stack Detector: Which ATS a Company Uses
Pricing
from $1.50 / 1,000 job postings
Hiring Tech Stack Detector: Which ATS a Company Uses
Detect the hiring tech stack behind any company domain: Greenhouse, Lever, Ashby, Workable, Recruitee or Rippling, with the board URL and how many roles are open. One row per company, not per job, so enriching ten thousand domains costs ten thousand rows. No API key.
Pricing
from $1.50 / 1,000 job postings
Rating
0.0
(0)
Developer
Daniel Meshulam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
37 minutes ago
Last modified
Categories
Share
One row per company. Not one row per job.
{ "companies": ["stripe.com", "openai.com", "bunq.com"] }
stripe.com greenhouse stripe 548 open hiringopenai.com ashby openai 754 open hiringbunq.com recruitee bunq 19 open hiring
No API key. No proxy. No job postings you did not ask for.
What this is for
This is a technographics question, not a jobs question, and it has a different buyer. It is an ordinary tech-stack lookup pointed at the part of the stack nothing else covers:
- ATS and HR-tech vendors: which accounts run a competitor's system
- Recruiting-tool sellers: a qualified list instead of a cold one
- Anyone building on ATS APIs: you need the board token before you can call anything, and there is no directory anywhere that maps a company to it
- Hiring-signal research: which systems are winning, by segment
Charging per company rather than per job is the point. Enriching ten thousand domains should cost ten thousand rows, not the four million job postings behind them.
How a match is confirmed rather than guessed
The Actor derives candidate tokens from the domain and verifies each against
the live API. That is sound because these systems answer 404 for a board
that does not exist and 200 for one that exists with nothing open, so a 200
is proof.
Measured across 30 companies:
| Method | Resolved |
|---|---|
| Reading the careers page for an ATS link | 50% |
| Deriving the token and verifying it | 90% |
Reading the page fails on stripe.com, whose careers page is a JavaScript app
naming no board. Deriving and verifying finds it.
Three different answers, and they are not the same answer
| Result | Means |
|---|---|
atsFound: true, openRoles: 548 | runs that system, hiring now |
atsFound: true, openRoles: 0 | runs that system, not hiring today |
atsFound: false | no public board on any system checked |
The middle one is the one that gets collapsed into "not found" by tools that
only look for jobs. It is a real and useful state: cato.net runs Workable and
has nothing open right now. Reporting that as "no ATS" would be wrong.
And atsFound: false here is a real negative, not a failed request. Every
derived token was checked against the live API and none exists. The row says
which systems were checked and which tokens were tried, so you can see the
negative was earned.
Only the ones actually hiring
{ "companies": ["stripe.com", "cato.net"], "onlyIfHiring": true }
Companies with no board and companies with an empty board are skipped, and skipped companies are not charged. A list of ten thousand domains costs only the rows that came back.
What you get
| Field | |
|---|---|
company | what you passed in |
atsFound | |
atsPlatform | greenhouse, lever, ashby, workable, recruitee, rippling |
boardToken, boardUrl | what you need to call the API yourself |
openRoles, isHiring | |
checked, tokensTried | on a negative, what was actually attempted |
Notes
- SmartRecruiters is deliberately not searchable here. It answers the same
empty response for a company that does not exist and for one with no open
roles, and
/v1/companies/<id>returns 404 even forVisa, whose postings endpoint returns real jobs. A derived token could never be confirmed, so guessing it would mean inventing a confident wrong answer. - Sources are public APIs that companies publish deliberately so their openings get indexed. Nothing here is behind a login, a paywall or a bot wall.
- Want the postings themselves: ATS Jobs Scraper. Want only what changed since last time: Job Change Monitor.