Multi-ATS Jobs Scraper: Workday, Greenhouse, Lever & more
Pricing
from $1.05 / 1,000 result items
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
Maintained by CommunityActor 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,titlelocation(text),locations(array of strings),department,employmentType,remote(true, false or null),postedDate(YYYY-MM-DD),salary(text or null)description(plain text, only whenincludeDescriptionis 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
- Open the Actor and leave the prefilled input as it is: one career site per vendor (twelve sites),
maxItemsPerSite5, descriptions on. - 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).
- Open the Output tab to see the table, or download the dataset as JSON, CSV or Excel.
- To scrape your own targets, replace the URLs in
startUrlswith career-site URLs of the patterns above and raisemaxItemsPerSite.
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
| Field | Type | Description |
|---|---|---|
startUrls | array | Career-site URLs, any mix of the supported vendors. |
searchQuery | string | Optional 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. |
maxItemsPerSite | integer | Maximum jobs per start URL. Default 20, prefill 5, minimum 1. |
includeDescription | boolean | Adds 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.
salaryis 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 havesalarynull.- 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
includeDescriptionis on.remoteis 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.departmentandsalaryare null,remoteis set only when the posting carries a remote flag, and without descriptionspostedDateis 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.comare detected. Many employers show their Recruitee jobs on a domain of their own (for examplecareers.<company>.com); such a URL is not recognised, so enter the<company>.recruitee.comaddress if you know it. The jobs feed has no paging, so the Actor streams it and stops downloading oncemaxItemsPerSitejobs 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).jobUrlis the address the employer publishes, which can be on its own domain.remoteis 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.
remoteis always null (the feed has no such flag), andemploymentTypecombines 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-Afterof 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.