ATS Board Finder: Which Job Board a Company Uses
Pricing
from $3.00 / 1,000 job board resolveds
ATS Board Finder: Which Job Board a Company Uses
Find which ATS a company uses from its domain. Returns the job system (Greenhouse, Lever, Ashby, Workable, Rippling, Gem, Breezy, BambooHR and 6 more), the board slug, the board URL and the open-role count. Boards are matched back to the domain, and a miss is free.
Pricing
from $3.00 / 1,000 job board resolveds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Give it a company domain and get one row that says which applicant tracking system (ATS) the company uses, its board slug and its board URL, with the open-role count read from the board. It covers 14 job systems, including Rippling, Gem, Breezy HR and BambooHR next to Greenhouse, Lever, Ashby and Workable. Every board is matched back to the domain you gave, so a same-name company on another board is not passed off as yours. No API key, no account, no proxy.
Who it's for
- Job-data and scraping teams who have a list of company domains and need the board slug for each one before they can call that job system's feed.
- Sales and RevOps teams who segment accounts by the recruiting software they run, for example every target account on Greenhouse or every one that moved to Ashby.
- Recruiting-tech vendors sizing a market: which systems a list of 5,000 companies is on.
- Clay, n8n and Make builders who want "domain in, job board out" as one enrichment step.
What you get
One flat row per domain:
| What | Columns |
|---|---|
| The company | domain, companyName |
| The board | ats, atsName, boardSlug, boardUrl, openRoles |
| How sure | detectionMethod, detectionConfidence, detectedOn, otherBoards |
| Provenance | sourceUrl, pagesChecked, siteBlockedBy, note, scrapedAt |
One example row, shortened. It was read on 2026-10-11:
| domain | ats | boardSlug | boardUrl | openRoles | detectionMethod | detectionConfidence | detectedOn |
|---|---|---|---|---|---|---|---|
| gem.com | gem | gem | https://jobs.gem.com/gem | 4 | link | high | https://www.gem.com/company/careers |
The 14 job systems
ats | Job system | Found from a link on the site | Found by the company's name |
|---|---|---|---|
greenhouse | Greenhouse | yes | yes |
lever | Lever | yes | yes |
ashby | Ashby | yes | yes |
workable | Workable | yes | yes |
smartrecruiters | SmartRecruiters | yes | yes |
personio | Personio | yes | yes |
recruitee | Recruitee (Tellent) | yes | yes |
teamtailor | Teamtailor | yes | yes |
icims | iCIMS | yes | yes |
rippling | Rippling | yes | yes |
gem | Gem | yes | yes |
breezy | Breezy HR | yes | yes |
workday | Workday | yes | no |
bamboohr | BambooHR | yes | no |
Workday and BambooHR boards cannot be guessed from a domain, so they are found only when the company's site links to them. If you know the careers page, paste its URL instead of the bare domain.
How a board is matched to the domain
- The actor reads the company's homepage, then its careers pages (
/careers,/jobs,/karriere,/join-usand the careers links the homepage carries). - A link, embed or redirect to a job board is the strongest evidence there is. The board's public
feed is read to confirm it is live, and the row comes back with
detectionConfidence: high. - If the site names no board, the company's name is tried on each job system's public feed. A feed
that answers is only a guess, because two companies can share a name. It is reported as found
(
medium) only when the board states the same company name, its postings name the company, or the board page redirects or links back to your domain. - A board that states a different company name is rejected and named in the message. A board that
answers but cannot be tied to the domain comes back as
status: UNCONFIRMEDwith the candidate in the row,found: false, and no charge.
status | Meaning | Charged |
|---|---|---|
OK | Board found and matched to the domain | yes |
UNCONFIRMED | A board answers to the name, nothing ties it to the domain | no |
BOARD_UNREACHABLE | The site links to a board that did not answer this time | no |
NOT_FOUND | No board on the site or under the company's name | no |
BAD_FORMAT | The input is not a domain or a URL | no |
REQUEST_FAILED | The lookup failed before a page could be read | no |
How to use
- In the Apify Console. Open the actor page and click Start — the
domainsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~ats-board-slug-finder/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"domains":["rippling.com","gem.com","stripe.com"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"domains": ["rippling.com","gem.com","stripe.com"]}
One company per line: a domain (stripe.com) or its careers-page URL (https://stripe.com/jobs). For each one the actor reads the company's site for a link to its job board, and if the site names none, tries the company's name on each job system's public feed. You get the job system, the board slug and the board URL. Accepted formats: stripe.com, https://www.gem.com/company/careers, https://jobs.lever.co/palantir.
Output
One row per domain, for example:
| query | found | status | domain | companyName | ats | atsName | boardSlug | boardUrl | openRoles | detectionMethod | detectionConfidence | detectedOn | otherBoards | pagesChecked | siteBlockedBy | sourceUrl | note | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rippling.com | true | OK | 1970-01-01T00:00:00.000Z |
A miss comes back as a row with "found": false and is never charged.
Example runs
Three inputs that need no credentials of any kind and return rows as they stand. Paste one into the Input tab and press Start.
1. Which job system do these companies use?
{"domains": ["rippling.com", "gem.com", "stripe.com"]}
2. Start from the careers page when you know it
A careers-page URL is read first, which is the quickest way to a board the homepage does not link.
{"domains": ["https://www.gem.com/company/careers"],"onlyFound": true}
3. Check a board URL you already have
Paste a board URL to get its job system, slug and open-role count, and to learn whether it still answers.
{"domains": ["https://jobs.lever.co/palantir", "https://jobs.gem.com/gem"],"columns": ["ats", "boardSlug", "boardUrl", "openRoles"]}
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; each independent
source is billed under its own event, only when that source actually returns
data — see .actor/pay_per_event.json for exact prices. A miss is never
charged.
You pay once per domain whose board was found and matched to it, and nothing else:
- A domain with no board found is free.
- An
UNCONFIRMEDcandidate is free, even though the row carries the board it found. - A board the site links to that did not answer is free. Run it again later.
- A board with 0 open roles is a real answer and is charged: you still get the job system, the slug and the URL.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~ats-board-slug-finder/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"domains":["rippling.com","gem.com","stripe.com"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~ats-board-slug-finder/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"domains":["rippling.com","gem.com","stripe.com"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~ats-board-slug-finder/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"domains":["{{company job board}}"]}, mapping the row's company job board into the domains array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "find company ats job board" — the agent will find and run this actor.