Multi-ATS Jobs Scraper - Workday, Greenhouse, Lever & More
Pricing
from $3.90 / 1,000 results
Multi-ATS Jobs Scraper - Workday, Greenhouse, Lever & More
Scrape job postings from company career boards across 8 applicant tracking systems - Workday, Greenhouse, Lever, SmartRecruiters, Workable, Ashby, Recruitee and BambooHR - with one unified output schema.
Pricing
from $3.90 / 1,000 results
Rating
0.0
(0)
Developer
Thirdwatch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Multi-ATS Jobs Scraper — Workday, Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee & BambooHR
Collect current employer-posted jobs from eight major career-board systems in one consistent dataset.
What you get
Scrape job postings directly from company career boards across eight applicant tracking systems (ATS) and get them back in one flat, unified schema.
Most job scrapers point at an aggregator (Indeed, LinkedIn, Google Jobs) and give you a second-hand copy of a listing, often days stale and missing the real apply link. This actor goes the other way: it reads the company's own career board — the same board the company publishes to — so you get the posting as the employer wrote it, with the canonical apply URL, the internal requisition ID, and the real posting date.
Paste any career board URL. The actor recognises which ATS is behind it, reads the board, normalises every posting, and pushes it to your dataset.
Supported applicant tracking systems
| ATS | Example board URL | Notes |
|---|---|---|
| Workday | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite | Keyword search runs on the board itself |
| Greenhouse | https://job-boards.greenhouse.io/stripe | Full descriptions and pay ranges where published |
| Lever | https://jobs.lever.co/spotify | Full descriptions, commitment type, salary band where published |
| SmartRecruiters | https://jobs.smartrecruiters.com/Visa | Descriptions and canonical apply URLs |
| Workable | https://apply.workable.com/blueground/ | Keyword search runs on the board itself |
| Ashby | https://jobs.ashbyhq.com/linear | Richest board: team, compensation band, remote flag |
| Recruitee | https://bunq.recruitee.com | Full descriptions, hours, city/region/country |
| BambooHR | https://kiln.bamboohr.com/careers | Descriptions and posting dates |
You can also use a short form instead of a URL:
greenhouse:stripelever:spotifyashby:linearrecruitee:bunqbamboohr:kilnsmartrecruiters:Visaworkable:bluegroundworkday:nvidia/wd5/NVIDIAExternalCareerSite
Workday boards need three parts (tenant, shard, site name) because that is how Workday addresses a board — all three are read automatically out of a pasted board URL, so pasting the URL is always the easier option.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
boardUrls | array of strings | — | Required. Career board URLs or platform:slug short forms. |
searchText | string | "" | Keyword matched against the job title, department, team, and description fields available on each board. |
locationFilter | string | "" | Case-insensitive substring matched against location, city, region, country and country code. |
remoteOnly | boolean | false | Keep only postings the board explicitly flags as remote. |
includeDescription | boolean | true | Fetch full description text. Free on most boards; costs one extra request per posting on Workday, SmartRecruiters and BambooHR. |
maxResults | integer | 5 | Total postings to return across all boards. |
maxResultsPerBoard | integer | 0 | Per-board cap so one huge board cannot use the whole budget. 0 = no per-board limit. |
proxyConfiguration | object | disabled | Optional connection settings. The default works for most public boards. |
Input example
{"boardUrls": ["https://job-boards.greenhouse.io/stripe","https://jobs.lever.co/spotify","https://jobs.ashbyhq.com/linear","workday:nvidia/wd5/NVIDIAExternalCareerSite"],"searchText": "engineer","maxResults": 200,"maxResultsPerBoard": 50,"includeDescription": true}
Output fields
Every posting from every ATS comes back with the same 28 keys, so you can concatenate boards from different systems without any post-processing.
| Field | Type | Description |
|---|---|---|
platform | string | Which ATS the posting came from (workday, greenhouse, lever, smartrecruiters, workable, ashby, recruitee, bamboohr). |
company | string | Company name as the board reports it. |
company_slug | string | Board identifier used on that ATS. |
job_id | string | Stable posting ID on the source board. |
title | string | Job title. |
department | string | Department / job family. |
team | string | Team, function or seniority band, where the board publishes one. |
employment_type | string | Full-time, part-time, contract, permanent, etc. |
workplace_type | string | remote, hybrid or onsite where published. |
is_remote | boolean | Explicit remote flag from the board (null when the board publishes none). |
location | string | Full location string as displayed on the board. |
city | string | City, when published separately. |
region | string | State / province / region grouping. |
country | string | Country name. |
country_code | string | ISO-3166 alpha-2 country code, uppercased. |
posted_at | string | ISO-8601 publication date/time. |
updated_at | string | ISO-8601 last-updated date/time, where published. |
salary_min | number | Lower bound of the published pay range. |
salary_max | number | Upper bound of the published pay range. |
salary_currency | string | ISO currency code for the pay range (e.g. USD). |
salary_period | string | Pay period the range refers to (year, hour, …). |
requisition_id | string | Employer's internal requisition / reference number. |
job_url | string | Absolute URL of the posting. |
apply_url | string | Absolute URL of the application form. |
description | string | Full job description as plain text (when includeDescription is on). |
board_url | string | Absolute URL of the career board the posting came from. |
source_query | string | The exact input entry that produced this row. |
scraped_at | string | ISO-8601 UTC timestamp of extraction. |
Example output
{"platform": "ashby","company": "ramp","company_slug": "ramp","job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","title": "Security Engineer, Cloud","department": "Engineering","team": "Backend","employment_type": "FullTime","workplace_type": "hybrid","is_remote": true,"location": "New York, NY (HQ), Remote (Canada), Remote (US)","city": "New York City","region": "NY","country": "USA","country_code": "","posted_at": "2026-04-07T17:12:35.753000Z","updated_at": "","salary_min": 211400,"salary_max": 290600,"salary_currency": "USD","salary_period": "year","requisition_id": "","job_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245","apply_url": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application","description": "","board_url": "https://jobs.ashbyhq.com/ramp","source_query": "ashby:ramp","scraped_at": "2026-07-27T22:56:42.869947Z"}
Use cases
- Recruiting and sourcing intelligence — track exactly what a list of target companies is hiring for, week over week, with the employer's own wording.
- Job boards and aggregators — build a niche board sourced from company career pages instead of re-scraping another aggregator.
- Competitive and market research — headcount signals, which teams are expanding, which offices are opening, published pay bands by role.
- Sales prospecting — hiring for a role that implies a tooling need is a strong buying signal.
- Compensation benchmarking — collect published pay ranges by title and location.
Limitations
Please read these before you build on the output — they are properties of the source boards, not bugs.
- Eight systems, not every system. Two ATS platforms were tested and deliberately left out: Personio career sites sit behind a bot challenge that blocks automated reads, and iCIMS has decommissioned its shared tenant hosting, so its customers' boards no longer share a predictable address. Neither is supported.
- Field coverage varies by ATS, a lot. Every board publishes a title, location, ID and apply URL. Beyond that it is entirely up to the employer's configuration. Across a mixed eight-board test run, department was populated on 88% of rows, description on 88%, posted date on 100%, city on 48% and salary on 0% — because none of those particular employers published pay ranges. Ashby and Lever boards are the most likely to carry compensation; Workday and BambooHR essentially never do.
- Salary is only present when the employer publishes it. There is no inference or estimation. If the field is empty, the board did not state a number.
- Workday reports a display-capped total. Very large Workday boards report a ceiling (commonly 2000) rather than the true count, and paging past the reported total silently restarts at page one. The actor stops at the reported total, so a very large Workday board can return fewer postings than the employer actually has open.
- A wrong company slug can be indistinguishable from an empty board. SmartRecruiters returns a normal, successful, empty response for an unknown company rather than a "not found", so a typo in a SmartRecruiters slug looks exactly like a company with no open roles. The run log says which it might be; it cannot tell you for certain.
- Private boards return nothing. Some BambooHR career boards are access-restricted; those are logged and skipped.
- Descriptions make large runs slower on some systems. Turn
includeDescriptionoff for listing-only runs. - Keyword coverage differs by system. Results can vary because each board publishes and searches different fields.
- Zero results is a normal outcome. An empty board, a keyword nothing matches, or filters that are too narrow all finish the run cleanly with a warning and zero rows — not an error.
- Boards are read as published. The actor does not log in, does not see internal-only postings, and does not deduplicate the same role posted by two different companies.
Compared to alternatives
- vs. fantastic-jobs single-ATS actors: One input and one schema cover eight career-board systems, which is useful for mixed company lists.
- vs. job aggregators: Results come from employer career boards and retain the canonical posting and apply URLs.
FAQ
Can I mix different ATS platforms in one run?
Yes. Add any supported board URLs or short forms to boardUrls.
Are salary fields always populated? No. They are returned only when the employer publishes a pay range.
Can I collect only remote jobs?
Yes. Enable remoteOnly; boards without an explicit remote signal will not contribute rows.
Last verified: 2026-07
More job-data actors at thirdwatch.dev.