Multi-ATS Jobs Scraper: Workday, Greenhouse, Lever & more avatar

Multi-ATS Jobs Scraper: Workday, Greenhouse, Lever & more

Pricing

from $1.05 / 1,000 result items

Go to Apify Store
Multi-ATS Jobs Scraper: Workday, Greenhouse, Lever & more

Multi-ATS Jobs Scraper: Workday, Greenhouse, Lever & more

Scrapes public job postings from career sites on Workday, Greenhouse, Lever, Ashby, Workable, Recruitee, Personio, Dayforce, Eightfold, Zoho Recruit, ClearCompany and Cornerstone, from one mixed URL list, in one format. Unofficial: not affiliated with any vendor or employer.

Pricing

from $1.05 / 1,000 result items

Rating

0.0

(0)

Developer

Gonzalo Fajardo

Gonzalo Fajardo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

This is an unofficial tool. It is not affiliated with, endorsed by or sponsored by Workday, Greenhouse, Lever, Ashby, Workable, Recruitee (Tellent), Personio, Dayforce, Eightfold, Zoho, ClearCompany, Cornerstone OnDemand or any employer whose jobs it reads.

What does Multi-ATS Jobs Scraper do?

Give it a mixed list of public career-site URLs and it returns the open job postings of every site in one normalised format. The applicant tracking system behind each URL is detected from the address, so one run can cover an employer on Workday, another on Greenhouse, another on Personio, and so on. It reads only the public pages and the public JSON/XML feeds that each career site (or the vendor's public job-board API) itself offers. No login, no cookies from your account and no proxy are needed.

Supported URL patterns:

Vendor (vendor value)URL pattern
Greenhouse (greenhouse)https://boards.greenhouse.io/<token> or https://job-boards.greenhouse.io/<token> (also with /jobs/<id>, and https://boards-api.greenhouse.io/v1/boards/<token>)
Lever (lever)https://jobs.lever.co/<company> (EU region: https://jobs.eu.lever.co/<company>)
Ashby (ashby)https://jobs.ashbyhq.com/<board>
Workable (workable)https://apply.workable.com/<account>/
Dayforce (dayforce)https://jobs.dayforcehcm.com/<locale>/<clientNamespace>/<careerSiteCode>
Eightfold (eightfold)https://<tenant>.eightfold.ai/careers
Zoho Recruit (zoho_recruit)https://<tenant>.zohorecruit.com/jobs/Careers (also .zohorecruit.eu; only /jobs paths are read)
ClearCompany (clearcompany)https://apply.clearcompany.com/<tenant> (also https://<tenant>.clearcompany.com/careers/portal and the former https://<tenant>.hrmdirect.com/employment/job-openings.php; only the tenant name is read from the URL)
Cornerstone (cornerstone)https://<tenant>.csod.com/ux/ats/careersite/<id>/home?c=<tenant>
Workday (workday)https://<tenant>.wd<N>.myworkdayjobs.com/<site> (a locale segment such as /en-US/<site> is accepted), for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
Recruitee (recruitee)https://<company>.recruitee.com (career sites on a company's own domain are not detected, see Limitations)
Personio (personio)https://<company>.jobs.personio.com or https://<company>.jobs.personio.de

Every dataset item has these fields. A field the vendor does not publish is null:

  • vendor, sourceUrl (the URL you entered), company, jobId, title
  • location (text), locations (array of strings), department, employmentType, remote (true, false or null), postedDate (YYYY-MM-DD), salary (text or null)
  • description (plain text, only when includeDescription is on), jobUrl, scrapedAt

No recruiter, hiring-manager or contact names, e-mail addresses or phone numbers are output: such fields are never read, and e-mail addresses that appear inside a description are replaced with [email removed].

How to run it, step by step

  1. Open the Actor and leave the prefilled input as it is: one career site per vendor (twelve sites), maxItemsPerSite 5, descriptions on.
  2. Press Start. In my last local test run (21 October 2026) the prefilled input finished in 63 seconds and returned 55 jobs (5 per vendor; one vendor rate-limited the test machine and was skipped with a warning, so it returned 0).
  3. Open the Output tab to see the table, or download the dataset as JSON, CSV or Excel.
  4. To scrape your own targets, replace the URLs in startUrls with career-site URLs of the patterns above and raise maxItemsPerSite.

URLs that do not match a supported vendor are skipped with a warning in the log. A site that fails (for example a wrong tenant name or a Greenhouse token that does not exist) is logged and skipped; the other sites still run. The run is marked failed only if every site failed.

How much does it cost to scrape job postings?

The price is 0.0015 USD per job (one result event per dataset item), so 1,000 jobs cost 1.50 USD. The prefilled run of 60 jobs costs 0.09 USD. You are charged only for items that are stored in the dataset, and the run stops by itself when your maximum total charge is reached (in a local test with a budget for 4 jobs it stored exactly 4 and sent no further job requests). Under pay-per-event pricing there is no separate charge for compute; the Actor is HTTP-only and is configured to run with 256 MB to 1 GB of memory.

Input

FieldTypeDescription
startUrlsarrayCareer-site URLs, any mix of the supported vendors.
searchQuerystringOptional keyword. Dayforce, Eightfold, Cornerstone, Workable and Workday apply it with the career site's own search (matching rules are the vendor's, so a result may match only in its description). For Zoho Recruit, ClearCompany, Greenhouse, Lever, Ashby, Recruitee and Personio every word must appear in the job title, case-insensitive.
maxItemsPerSiteintegerMaximum jobs per start URL. Default 20, prefill 5, minimum 1.
includeDescriptionbooleanAdds the plain-text description. For Eightfold, Zoho Recruit, Workable and Workday it needs one extra request per job (ClearCompany returns the description with the job list).
{
"startUrls": [
{
"url": "https://jobs.dayforcehcm.com/en-US/herffjones/HERFFJONESCANDIDATEPORTAL"
},
{
"url": "https://fortive.eightfold.ai/careers"
},
{
"url": "https://thehireboost.zohorecruit.com/jobs/Careers"
},
{
"url": "https://apply.clearcompany.com/pmic"
},
{
"url": "https://henkel.csod.com/ux/ats/careersite/1/home?c=henkel"
},
{
"url": "https://boards.greenhouse.io/gitlab"
},
{
"url": "https://jobs.lever.co/spotify"
},
{
"url": "https://jobs.ashbyhq.com/notion"
},
{
"url": "https://apply.workable.com/huggingface/"
},
{
"url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
},
{
"url": "https://epilot.recruitee.com"
},
{
"url": "https://stark.jobs.personio.com"
}
],
"searchQuery": "",
"maxItemsPerSite": 5,
"includeDescription": true
}

Output

Six items from real runs (three from the input above on 2026-10-06 and three, one per vendor added in version 0.4, from the run of 2026-10-07; descriptions shortened here with an ellipsis, the dataset holds the full text):

[
{
"vendor": "greenhouse",
"sourceUrl": "https://boards.greenhouse.io/gitlab",
"company": "GitLab",
"jobId": "8638232002",
"title": "AI Transformation Owner, CRO",
"location": "Remote, United States",
"locations": [
"Remote, United States"
],
"department": "Enablement",
"employmentType": null,
"remote": true,
"postedDate": "2026-07-22",
"salary": "USD 139,200 - 235,200 (United States Salary Range)",
"description": "GitLab is the intelligent orchestration platform for DevSecOps. GitLab enables organizations to increase developer productivity, improve operational e …",
"jobUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8638232002",
"scrapedAt": "2026-10-06T12:29:36Z"
},
{
"vendor": "workable",
"sourceUrl": "https://apply.workable.com/huggingface/",
"company": "Hugging Face",
"jobId": "DB4D7C0EC8",
"title": "Senior Open-Source Python Engineer, ML Developer Tools - EMEA Remote",
"location": "France",
"locations": [
"France"
],
"department": "Product",
"employmentType": "Full time",
"remote": true,
"postedDate": "2026-09-21",
"salary": null,
"description": "At Hugging Face, we're on a journey to democratize good AI. We are building the fastest growing platform for AI builders with over 11 million users wh …",
"jobUrl": "https://apply.workable.com/huggingface/j/DB4D7C0EC8/",
"scrapedAt": "2026-10-06T12:29:42Z"
},
{
"vendor": "lever",
"sourceUrl": "https://jobs.lever.co/spotify",
"company": "spotify",
"jobId": "2193db3f-77c5-43b8-b030-8f92c9882bf1",
"title": "Android Engineer - Experience",
"location": "London",
"locations": [
"London",
"Stockholm"
],
"department": "Engineering",
"employmentType": "Permanent",
"remote": false,
"postedDate": "2026-06-23",
"salary": null,
"description": "We design Spotify’s consumer experience—end to end, moment to moment, across every screen, platform, and partner integration. Our mission is to make l …",
"jobUrl": "https://jobs.lever.co/spotify/2193db3f-77c5-43b8-b030-8f92c9882bf1",
"scrapedAt": "2026-10-06T12:29:38Z"
},
{
"vendor": "workday",
"sourceUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
"company": "nvidia",
"jobId": "JR2022657",
"title": "IC Practical Engineer",
"location": "Israel, Yokneam",
"locations": [
"Israel, Yokneam"
],
"department": null,
"employmentType": "Full time",
"remote": null,
"postedDate": "2026-10-07",
"salary": null,
"description": "NVIDIA Networking business unit is looking for Lab practical engineer for IC product engineering group, who will work in NVIDIA R&D labs in Yokneam. A …",
"jobUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/Israel-Yokneam/IC-Practical-Engineer_JR2022657",
"scrapedAt": "2026-10-07T12:31:59Z"
},
{
"vendor": "recruitee",
"sourceUrl": "https://epilot.recruitee.com",
"company": "epilot GmbH",
"jobId": "2767517",
"title": "Event Marketing Manager (m/w/d)",
"location": "Köln, Nordrhein-Westfalen, Germany",
"locations": [
"Köln, Nordrhein-Westfalen, Germany"
],
"department": "Marketing",
"employmentType": "Full time, permanent",
"remote": false,
"postedDate": "2026-10-02",
"salary": null,
"description": "Events spielen eine zentrale Rolle in der Marketingstrategie von epilot. Wir haben über die letzten Jahre zahlreiche eigene Eventformate aufgebaut, di …",
"jobUrl": "https://epilot.recruitee.com/o/event-marketing-manager",
"scrapedAt": "2026-10-07T12:32:04Z"
},
{
"vendor": "personio",
"sourceUrl": "https://stark.jobs.personio.com",
"company": "stark",
"jobId": "1875864",
"title": "(Senior) Backend Engineer C++ (All genders)",
"location": "Berlin",
"locations": [
"Berlin",
"Munich"
],
"department": "R&D / Software",
"employmentType": "Full time, permanent",
"remote": null,
"postedDate": "2024-12-13",
"salary": null,
"description": "About Us\nSTARK is a new kind of defence technology company revolutionizing the way autonomous systems are deployed across multiple domains. We design, …",
"jobUrl": "https://stark.jobs.personio.com/job/1875864",
"scrapedAt": "2026-10-07T12:32:06Z"
}
]

Limitations and what the free plan can do

  • Only public career pages and public job-board APIs are read. Sites that need a login, or that a vendor has switched off for anonymous visitors, are skipped. For example, some Eightfold tenants answer that their public job API is not enabled; those are skipped, not worked around. If a site shows a challenge page, a 403 or similar protection, it is skipped as well.
  • Request pace is deliberately slow: at least one second between requests to the same host, one second as the Crawl-delay of the Lever API host, and ten seconds between requests to a Cornerstone tenant host because its robots.txt asks for a crawl delay. A single Cornerstone site therefore needs about ten seconds of start-up before the first job.
  • Greenhouse and Ashby return a whole board in one response (several megabytes for large boards when descriptions are on), so the first job of such a site arrives after that download; Lever is read in pages of at most 50 postings.
  • salary is filled only where the vendor publishes it: Greenhouse (pay ranges, when the employer shows them), Ashby (the board's own compensation summary, when shown), Lever (salary range, when set), ClearCompany (the published salary range, always) and Zoho Recruit (job page). Recruitee (the offer's salary range) and Personio (the position's salary information) fill it when the employer publishes one. Dayforce, Cornerstone, Eightfold, Workable and Workday jobs normally have salary null.
  • Dayforce career sites expose no structured salary, Cornerstone exposes neither department nor employment type, and Zoho Recruit sites show the salary only on the job page, so it is read only when includeDescription is on. remote is a vendor flag where one exists (Dayforce, Eightfold, Zoho Recruit, Lever, Ashby, Workable, Recruitee, Workday) and ClearCompany (a location flagged remote, or remote in the title, office or location; otherwise false); for Greenhouse it is true only when the title or location says remote, otherwise null.
  • Workday: the /wday/cxs/... job endpoints that the career page itself calls are read, 20 jobs per result page; with descriptions on, each job costs one more request, so a Workday site is slower than the others. Each tenant host's robots.txt is enforced, and a site that it disallows (for example a tenant's separate research site) is skipped. department and salary are null, remote is set only when the posting carries a remote flag, and without descriptions postedDate is derived from the list's relative text ("Posted 3 Days Ago") and is null for "30+ Days Ago". The URL must include the site name after the host.
  • Recruitee: only career sites on <company>.recruitee.com are detected. Many employers show their Recruitee jobs on a domain of their own (for example careers.<company>.com); such a URL is not recognised, so enter the <company>.recruitee.com address if you know it. The jobs feed has no paging, so the Actor streams it and stops downloading once maxItemsPerSite jobs are read (a 628-job tenant, about 8.8 MB, was read in full in 12 seconds with descriptions; a local run of that tenant plus a 61-job Personio feed peaked at about 91 MB of memory). jobUrl is the address the employer publishes, which can be on its own domain. remote is true when the offer carries the remote flag, even if on-site or hybrid work is also offered. Contact addresses and application questions that the feed contains are never read.
  • Personio: the feed returns every open position of the company in one response and is read in one request. It also carries seniority, years of experience and recruiting category; the common output format has no field for them, so they are not output. remote is always null (the feed has no such flag), and employmentType combines the schedule and the contract type, for example "Full time, permanent". The feed is requested in English.
  • A request that a vendor answers with HTTP 429 and a Retry-After of more than 60 seconds makes the Actor skip that site instead of waiting.
  • Vendors can change their career-site internals without notice, which can break one vendor until the Actor is updated.
  • On the Apify free plan the prefilled input (60 jobs, 0.09 USD at the per-job price above) is a small run that finishes in about a minute; larger runs are limited only by your plan's credit and the maximum total charge you set.

FAQ

Can I mix vendors in one run? Yes, that is the purpose. Each URL is routed by its host name.

Why did I get fewer items than maxItemsPerSite? The career site has fewer open jobs, or your keyword matched fewer.

Does it collect personal data? No candidate or recruiter data is read. The output contains only job-advertisement data.

Where do I report a problem or request another vendor? Use the Issues tab of this Actor on Apify.