Workday Jobs Scraper: Search Any myworkdayjobs Site
Pricing
$1.00 / 1,000 jobs
Workday Jobs Scraper: Search Any myworkdayjobs Site
Scrape jobs from any Workday careers site (myworkdayjobs.com). Keyword search and Workday's own filters (country, category, job type) by name, so you get past the 2,000-job limit. Full descriptions, all locations, exact dates, parsed salary ranges. Only-new-jobs mode for alerts.
Pricing
$1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Santiago Marcos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Workday Jobs Scraper: search any myworkdayjobs.com careers site
Scrape open jobs from any Workday careers site (*.myworkdayjobs.com): NVIDIA, Adobe, Salesforce, Walmart, banks, hospitals, universities and thousands of other employers that hire through Workday.
Paste a careers-site URL, optionally add search keywords and Workday's own filters (country, location type, job category, job type), and get one clean row per job with the full description, every location, the country, the exact posting date and a parsed salary range.
It reads the same public JSON API the careers site itself uses, so there is no browser, no proxy and no login. Runs are fast and cheap.
Why this one
- Server-side search and filters, by name. Type
Canada,RemoteorEngineeringthe way the site shows them. The actor looks up Workday's internal filter IDs for you, and Workday does the filtering. - Gets past the 2,000-job limit. Workday lists at most 2,000 results per search. Split a large site into several search queries or filters, and the results are merged and de-duplicated.
- Salary parsed into numbers. Pay ranges in the description (
$120,700 - $238,600 annually,168,000 USD - 270,250 USD) becomesalaryMin,salaryMax,salaryCurrencyandsalaryPeriod, with the original sentence insalaryText. - Exact dates. Workday's list says "Posted 30+ Days Ago". Each job's own page has the real date, and that's what you get in
postedAt. - Only new jobs for alerts: scheduled runs return just the postings you haven't received yet, and you don't pay again for old ones.
What you can use it for
- Job alerts for specific companies, roles or countries (schedule it daily with Only new jobs).
- Job boards and aggregators that need fresh listings from large employers.
- Salary and hiring research: who is hiring for what, where, and at what pay.
- Sales and recruiting intelligence: track hiring at target accounts.
- AI agents and RAG: descriptions come as clean plain text.
Input
| Field | Example | Notes |
|---|---|---|
| Workday careers sites | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite | Any page of the site works, including a job link or a URL with /en-US/. Add as many sites as you like. |
| Search queries | machine learning, data engineer | Workday's own keyword search (title, description, skills). Leave empty to get every job. |
| Workday filters | United States, Remote, Engineering | Values exactly as the site's filter menu shows them. Same filter = OR, different filters = AND. |
| Title must contain any of / must not contain | engineer / intern | Checked on the job title after the search. |
| Posted within (days) | 7 | Uses the exact posting date. |
| Only new jobs | on | Remembers returned jobs per site, queries and filters in a named key-value store. |
| Job description | Plain text / + HTML / none | |
| Max jobs | 500 | Your run's maximum cost limit is always respected too. |
Finding a company's Workday URL: open the company's careers page and click any job. If the address contains myworkdayjobs.com, copy it. You can also search Google for site:myworkdayjobs.com <company name>.
Finding filter names: each run saves every filter value each site offers, with job counts, to AVAILABLE_FILTERS in the run's key-value store (also linked in the run's Output tab). Filter names differ between sites (for example United States on one and United States of America on another). A value a site doesn't have is skipped with a warning. If none of your filters exist on a site, that site returns no jobs.
Output
One row per job (real example, description shortened):
{"id": "Principal-Scientist---Data-Pipeline-Engineer_R170588","jobReqId": "R170588","title": "Principal Scientist - Data Pipeline Engineer","company": "adobe","site": "adobe.wd5/external_experienced","location": "San Jose; Seattle; San Francisco","locations": ["San Jose", "Seattle", "San Francisco"],"country": "United States of America","countryCode": "US","remoteType": null,"isRemote": null,"timeType": "Full time","postedAt": "2026-10-09T00:00:00.000Z","postedOnText": "Posted 12 Days Ago","validThrough": null,"url": "https://adobe.wd5.myworkdayjobs.com/external_experienced/job/San-Jose/Principal-Scientist---Data-Pipeline-Engineer_R170588","applyUrl": "https://adobe.wd5.myworkdayjobs.com/external_experienced/job/San-Jose/Principal-Scientist---Data-Pipeline-Engineer_R170588/apply","hiringOrganization": "ADUS-Adobe Inc.","salaryMin": 206300,"salaryMax": 388000,"salaryCurrency": "USD","salaryPeriod": "YEAR","salaryText": "... The U.S. pay range for this position is $206,300 - $388,000 annually. ...","description": "ABOUT THE ROLE\n\nWe're looking for a Principal ML Engineer to drive down cost per asset ...","scrapedAt": "2026-10-22T06:05:45.376Z"}
Fields a site doesn't publish are null. When a description lists several ranges in one currency (by level or by state), salaryMin and salaryMax span all of them. Salary parsing reads free text, so check salaryText when precision matters.
Sites that can't be read don't stop the run. They're listed in the FAILURES record of the key-value store.
Code examples
Python, Node.js, cURL and n8n examples for this and our other job actors: https://github.com/SantiagoMV42/linkedin-jobs-scraper
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("santiagomv/workday-jobs").call(run_input={"sites": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"],"searchQueries": ["machine learning"],"filters": ["Remote"],"postedWithinDays": 7,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["location"], job["salaryMin"], job["url"])
Pricing
$1 per 1,000 jobs saved. Sites with no matching jobs, failed sites, retries and (with Only new jobs) jobs you already have are free.
FAQ
Is there a limit per site? Workday returns at most 2,000 jobs per search. If a search has more, the run log says so. Add search queries or filters (for example, one per country) to get the rest.
How fast is it? A few seconds per 100 jobs. Each job needs one request for its details. Sites are scraped in parallel (3 by default).
Do I need a Workday account or proxies? No. It reads publicly listed jobs only.
Does it work for other ATSs? This actor is Workday-only. For Greenhouse, Lever, Ashby, Workable, SmartRecruiters and more in one schema, use Career Site Jobs.
Is this allowed? The actor reads only publicly listed job postings through the endpoints the careers site itself calls, at a modest request rate. You're responsible for how you use the data, including any personal data and the terms of the sites you collect from.
This actor is not affiliated with, endorsed by or sponsored by Workday, Inc. or any employer whose jobs it collects. Workday is a trademark of Workday, Inc.