Scrape company career sites into one jobs table: a measured run
Most companies' careers pages are a front for an applicant tracking system (ATS), and each ATS publishes its jobs in its own shape. This guide runs one Actor over eleven companies' careers pages at once and reports what came back, how long it took and what it would cost you, including the second run, the one a monitor pays for.
The list
So that every company named here is one you already know as a source, the list is the ATS vendors' own careers pages. Greenhouse, Workday and Employment Hero went in as links. Eight vendors went in as plain names: Ashby, Rippling, Lever, Recruitee, Breezy, BambooHR, Personio and JazzHR. A link is read directly. A name is tried as a board name on the nine ATSs that can be asked by name.
{
"companies": [
"https://boards.greenhouse.io/greenhouse",
"Ashby", "Rippling", "Lever", "Recruitee", "Breezy", "BambooHR", "Personio", "JazzHR",
"https://workday.wd5.myworkdayjobs.com/Workday",
"https://employmenthero.com/jobs/organisations/employmenthero/"
],
"maxResults": 1000,
"incremental": true,
"stateKey": "guide-1-ats-vendors"
}
That is the whole input for Career Site Jobs Scraper, run on Apify's datacentre proxy at its default pace of 4 requests at a time and 90 a minute, on Wednesday 30 September 2026 (Melbourne time).
What came back
| Source | Board it read | Open roles |
|---|---|---|
| Workday | workday.wd5.myworkdayjobs.com/Workday (link) | 383 |
| Rippling | ats.rippling.com/rippling (the name "Rippling") | 327 |
| Ashby | jobs.ashbyhq.com/ashby (the name "Ashby") | 67 |
| Employment Hero | Employment Hero's own careers page (link) | 65 |
| Greenhouse | boards.greenhouse.io/greenhouse (link) | 20 |
| Personio | Personio's own board (the name "Personio") | 1 |
| Test and trial boards | Three boards the names "BambooHR", "Personio" and "Breezy" also matched: two sandbox accounts on Recruitee and one trial account on Breezy HR | 6 |
| All | One dataset, one schema | 869 |
- 804 requests, every one answered at the first attempt, none failed or refused. 710 of them were Workday's and Rippling's records for each posting, because their job lists leave out facts a row needs; 30 were board pages; 64 were name look-ups that found no board, which cost a request and no charge.
- 9 minutes 5 seconds from start to finish, most of it those 710 records at 90 requests a minute.
- Lever's own board exists and had no open roles that day. "Recruitee" matched only an empty Breezy HR board of that name, and "JazzHR" matched no board on any of the nine. The run said so in its log and summary rather than guessing.
What each row holds
Every row has the same fields whatever the source. How often each fact was there, as a share of the rows from each source:
| Source | Rows | Country | City | Pay range | Work arrangement | Department |
|---|---|---|---|---|---|---|
| Workday | 383 | 100% | 70% | 67% | 100% | 0% |
| Rippling | 327 | 100% | 85% | 49% | 100% | 100% |
| Ashby | 67 | 90% | 0% | 100% | 100% | 100% |
| Employment Hero | 65 | 100% | 60% | 17% | 100% | 72% |
| Greenhouse | 20 | 100% | 5% | 65% | 30% | 100% |
| All 869 | 99% | 68% | 59% | 98% | 54% |
- Pay range counts rows where the posting stated a range and it came back as numbers, with the posting's own words kept beside them. The ranges were in 11 currencies, across postings in 29 countries. Nothing is estimated: where a posting states no range, the fields are empty.
- A range that does not say per what keeps its period empty rather than guessing, which is why only 28% of rows carry one. Most of those ranges read like yearly salaries; the schema leaves that call to you.
- Every row had its posted date and a link to the posting. Workday rows came back without a department, and Ashby's own postings give a country without a city, so those columns are empty for those sources rather than filled with a guess.
The second run: what a monitor pays for
Incremental mode was on, with a state key. The same input, run again ten minutes later:
- 95 requests and 1 minute 39 seconds, against 804 requests and 9 minutes the first time. Workday and Rippling records are requested only for postings that are new or changed.
- 1 posting saved: a Workday role published between the two runs, reported as
NEW. - 869 unchanged postings skipped and not charged.
| At Apify's Starter-plan price (US$2.00 per 1,000 postings saved, US$0.005 a run) | Cost |
|---|---|
| First run: 869 postings | US$1.74 |
| Second run: 1 posting | US$0.007 |
| Illustration, not a measurement: a daily run in which 20 postings are new or changed, for 30 days | US$1.35 |
The first run is the only expensive one. After it, a scheduled run costs the start fee plus what actually changed.
Links beat names for a monitor
A name is a guess at a board's name. Here, "Ashby" and "Rippling" found their vendors' own boards, but "BambooHR", "Personio" and "Breezy" also found test and trial boards that happen to use those names, and "Recruitee" found only an empty board on another ATS. Every row carries its source and company.name, and the run summary lists every board each name matched, so nothing is hidden. For a monitor you rely on, give the board link, or pin the source (ashby:ashby, workable:acme), and each run reads exactly the same board.
Get the table where you work
One request runs the Actor and returns the rows as JSON, or as CSV with format=csv. Put the input above in input.json and use your Apify API token:
curl -X POST "https://api.apify.com/v2/acts/adderleydata~career-site-jobs-scraper/run-sync-get-dataset-items?format=json" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d @input.json
That call waits at most 300 seconds, so a first run as large as this one is better started and read back when it finishes; the API page on Apify shows both. For Google Sheets without code, export the dataset as CSV from the run's Output tab, or add Apify's Upload results to GDrive integration on the Actor's Integrations tab so each run's file lands in your Drive. To run it every day, save the input as a task and give it a schedule.
Run it yourself
Career Site Jobs Scraper on Apify
It reads Greenhouse, Lever, Ashby, Workday, Recruitee, Breezy HR, Rippling, Workable, BambooHR, Personio, JazzHR, Pinpoint, Dayforce, JobAdder and Employment Hero. Workday, Workable, Pinpoint, Dayforce, JobAdder and Employment Hero boards always need their link. Not affiliated with any of those companies or with any company whose job board it reads. The runs quoted here are jIgYO66xS7qIfnwLc and a6qFpD3wzjjCYMRpP.
Published 2026-09-30.