Workday Jobs Scraper — Company Career Sites
Pricing
from $1.50 / 1,000 jobs
Workday Jobs Scraper — Company Career Sites
Scrape Workday jobs from any company's Workday career site (myworkdayjobs.com): job postings with title, locations, posted date, requisition id, job URL and full description. Filter by keyword, location, remote and posting age; monitor new jobs on a schedule. No login, no browser.
Pricing
from $1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Security
Limited permissionsShare
Workday Jobs Scraper: Company Career Sites
Scrape Workday jobs from any company's Workday career site. Paste a myworkdayjobs.com career-site URL (or the company's own careers page) and get every public job posting as one clean row: title, company, every location and its country, remote or hybrid, time type, posting date, requisition id, job and apply links, the full description and the pay range when the posting states one.
The actor reads the same public JSON endpoints that the Workday career site itself loads in your browser: no login, no API key, no headless browser. A career site with 2,000 jobs is read in about a hundred small requests, so runs take seconds and cost cents. Thousands of large employers (NVIDIA, Salesforce, banks, retailers, universities, hospitals) publish their jobs through Workday, and all of their external career sites work the same way.
Typical uses: job alerts for a list of target companies, hiring signals for sales and recruiting (who is hiring which roles, where), salary benchmarking from the pay ranges in job descriptions, feeding a job board, a spreadsheet or an LLM pipeline.
What data does Workday Jobs Scraper extract?
| Field | Description |
|---|---|
jobId | Stable unique id workday:<tenant>/<site>:<requisition>, e.g. workday:nvidia/nvidiaexternalcareersite:JR2025461 |
atsJobId, requisitionId | The requisition id Workday shows for the job (JR2025461, R-12345, ...) |
companyName, companySlug, careerSiteUrl | Company (from the tenant name, the careers page it was found on, or your input), the Workday tenant and the career-site URL |
title | Job title |
department | The Workday job category the job was found in, when you filter by Departments / job categories (Workday's public list does not name categories otherwise) |
location, locations | Location text as the company writes it, and every location of multi-location jobs (with Include full job description; the list alone says "3 Locations") |
country, countryCode | Country of the job (ISO 3166-1 alpha-2), from the job page or read from the location text |
isRemote, isHybrid, workplaceType | Remote / hybrid flags and remote / hybrid / onsite from Workday's remote type (job page) or from the location text |
employmentType | Workday time type: Full time / Part time (job page) |
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod, salarySource | The first pay range written in the description, e.g. "$164,000 - $261,500" per year (salarySource: "description"); Workday publishes no structured pay fields |
postedAt, postedAgo | Posting date (UTC, ISO 8601): the exact date from the job page, or the date behind Workday's "Posted 3 Days Ago" label, which is kept in postedAgo |
url, applyUrl | The job page on the career site and its Apply link |
description, descriptionHtml | Full job description as readable text (with bullets) and as HTML (with Include full job description) |
detailsFetched, detailError | Whether the job's own page was opened, and why not if it failed |
sourceUrl, scrapedAt | Which input produced the job, and when |
changeType | new in monitoring mode (see below) |
ats (always workday), team, city, region, seniority, jobFunction and updatedAt are kept so rows match our multi-ATS Career Site Jobs Scraper, but Workday's public endpoints do not publish them, so they stay empty.
How to scrape Workday jobs
- Paste career-site URLs into Workday career site URLs, for example
https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSiteorhttps://salesforce.wd12.myworkdayjobs.com/External_Career_Site. A company careers page or homepage works too: the actor follows it to the Workday site it links to. - Or list sites you already know under Career sites as tenant/site:
nvidia/NVIDIAExternalCareerSite,salesforce/External_Career_Site. The tenant is the first part of themyworkdayjobs.comhost name and the site is the first path segment of the career-site URL; the actor finds thewd1/wd5/wd12data centre itself. - Optional filters: Title keywords (each is also sent to Workday's own search, so only matching pages are read), Locations, Departments / job categories (applied through the site's job-category facet), Remote jobs only, Posted within (days), Max jobs per career site.
- Keep Include full job description on for the description, every location, the exact posting date, time type and remote type (one extra request per job, see Pricing); turn it off for a cheap, fast list.
- Click Start. Jobs appear in the Output tab, newest first per site; export JSON, CSV or Excel, or read them through the API.
Input example
{"startUrls": [{ "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite" },{ "url": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site?locationCountry=bc33aa3152ec42d4995f4791a106ed09" }],"boards": ["cvshealth/CVS_Health_Careers"],"keywords": ["software engineer", "data scientist"],"locations": ["United States", "Remote"],"postedWithinDays": 14,"includeDescription": true,"maxItemsPerCompany": 50,"maxItems": 200}
Output example
One Salesforce job with Include full job description on (description shortened here):
{"jobId": "workday:salesforce/external_career_site:JR363410","atsJobId": "JR363410","ats": "workday","companyName": "Salesforce","companySlug": "salesforce","title": "Executive Operations & Leadership Engagement Director","department": null,"location": "Georgia - Atlanta • Illinois - Chicago • Washington - Seattle • Indiana - Indianapolis • Texas - Austin","locations": ["Georgia - Atlanta", "Illinois - Chicago", "Washington - Seattle", "Indiana - Indianapolis", "Texas - Austin"],"country": "United States","countryCode": "US","isRemote": false,"isHybrid": true,"workplaceType": "hybrid","employmentType": "Full time","salaryText": "$164,000 - $261,500","salaryMin": 164000,"salaryMax": 261500,"salaryCurrency": "USD","salaryPeriod": "year","salarySource": "description","postedAt": "2026-10-12T00:00:00Z","postedAgo": "Posted Today","requisitionId": "JR363410","url": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site/job/Georgia---Atlanta/Executive-Operations---Leadership-Engagement-DirectorDirector_JR363410","applyUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site/job/Georgia---Atlanta/Executive-Operations---Leadership-Engagement-DirectorDirector_JR363410/apply","careerSiteUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site","description": "To get the best candidate experience, please consider applying for a maximum of 3 roles within 12 months ...","descriptionHtml": "<p style=\"text-align:left\"><i>To get the best candidate experience ...","detailsFetched": true,"sourceUrl": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site","scrapedAt": "2026-11-01T12:00:00Z"}
With descriptions off, a row carries the list data only: title, the first location text (or "5 Locations"), postedAgo with its approximate postedAt, requisition id, company and URLs.
Which Workday URLs work?
- The career site itself:
https://<tenant>.wd<N>.myworkdayjobs.com/<site>, with or without a locale (/en-US/<site>). - A search on the career site with filters you set there (location, job category, time type):
https://salesforce.wd12.myworkdayjobs.com/External_Career_Site?locationCountry=.... The query parameters are applied as Workday facets and?q=becomes the search text, so you get exactly what the site shows. - A single job URL (
.../<site>/job/<location>/<title>_<requisition>): the whole site the job belongs to is scraped. - Sites hosted at
https://wd<N>.myworkdaysite.com/recruiting/<tenant>/<site>(some universities and public bodies). - The JSON endpoint URL
.../wday/cxs/<tenant>/<site>/jobs, if you already use it. - A company careers page or homepage: the actor opens it, looks for links, iframes and scripts that point to a Workday site, follows the "Careers" / "Jobs" link and tries
/careersand/jobs(at most 4 pages). Inputs where no Workday site is found are listed in the run'sSUMMARYand cost nothing.
Internal career sites that require a Workday login are not supported, and neither are non-Workday systems: for Greenhouse, Lever, Ashby, SmartRecruiters, Workable and other ATSs use our Career Site Jobs Scraper, which outputs the same rows.
Does it need a login or an API key?
No. A Workday career site is a JavaScript app that loads its jobs from a public JSON endpoint on the same host (/wday/cxs/<tenant>/<site>/jobs, 20 jobs per page, plus one request per job page). The actor calls those endpoints exactly like the page does, anonymously and without cookies, and reads only published job ads. Candidate accounts, applications, internal postings and anything behind a login are never touched.
Monitor new Workday jobs on a schedule
Turn on Only new jobs (monitoring) and save the input as a task with a Schedule (Apify Console → Schedules), e.g. every morning. Each run remembers the jobs that earlier runs of the same input returned and outputs only the jobs that are new since then, with changeType: "new"; jobs seen before are not output, not charged, and their job pages are not opened. With Max jobs per career site set, monitoring watches that many newest jobs per site. Use Monitoring key to keep several schedules on the same sites apart. This is the cheapest way to get job alerts or hiring signals for a list of companies that hire through Workday.
Pricing
Pay per event, no subscription, and the event prices include the platform usage of the run:
- $0.0015 per job saved to the dataset.
- +$0.001 per job when Include full job description is on, because Workday's job list has no descriptions and the actor opens each job's page (which also adds every location, the exact posting date, time type and remote type). Job pages opened only to apply a location or remote filter are free.
1,000 jobs cost $1.50 as a list, or $2.50 with full descriptions. Monitoring runs charge only for new jobs. Inputs that point to no Workday site cost nothing.
Proxy note
Workday career sites answer the same public requests their own pages make, so by default the actor connects directly (no proxy), which is also the fastest. Turn on Apify Proxy (datacenter) only if a run log shows 403 or 429 answers. No residential proxy and no Unblocker are ever needed.
Integrations and API
Use the results in Make, Zapier, n8n, Google Sheets, Airtable or your CRM, or call the actor from Python / Node.js with the Apify client (see the API tab). A Schedule plus monitoring gives you a daily feed of new jobs at your target companies.
Is it legal to scrape Workday?
The actor reads only job ads that companies publish openly on their Workday career sites, through the same public endpoints those sites use. It does not log in, does not collect candidate or employee data, and does not access anything hidden or internal. Recruiter names that a company chooses to print in a job description stay part of that description. You are responsible for how you use the data and for complying with the sites' terms and applicable law (e.g. the GDPR).
Support
A career site that does not work, a field you miss? Open an issue in the Issues tab; it is usually answered within a day.
Related scrapers
- Career Site Jobs Scraper: Greenhouse, Lever, Workday & Ashby
- Greenhouse Jobs Scraper: Job Boards & Postings
- Lever Jobs Scraper: Job Boards & Postings
- Ashby Jobs Scraper: Job Boards & Postings
Found it useful?
A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.