Workday Jobs Scraper — Company Career Sites avatar

Workday Jobs Scraper — Company Career Sites

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Workday Jobs Scraper — Company Career Sites

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

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Security

Limited permissions

Share

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?

FieldDescription
jobIdStable unique id workday:<tenant>/<site>:<requisition>, e.g. workday:nvidia/nvidiaexternalcareersite:JR2025461
atsJobId, requisitionIdThe requisition id Workday shows for the job (JR2025461, R-12345, ...)
companyName, companySlug, careerSiteUrlCompany (from the tenant name, the careers page it was found on, or your input), the Workday tenant and the career-site URL
titleJob title
departmentThe 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, locationsLocation 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, countryCodeCountry of the job (ISO 3166-1 alpha-2), from the job page or read from the location text
isRemote, isHybrid, workplaceTypeRemote / hybrid flags and remote / hybrid / onsite from Workday's remote type (job page) or from the location text
employmentTypeWorkday time type: Full time / Part time (job page)
salaryText, salaryMin, salaryMax, salaryCurrency, salaryPeriod, salarySourceThe first pay range written in the description, e.g. "$164,000 - $261,500" per year (salarySource: "description"); Workday publishes no structured pay fields
postedAt, postedAgoPosting 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, applyUrlThe job page on the career site and its Apply link
description, descriptionHtmlFull job description as readable text (with bullets) and as HTML (with Include full job description)
detailsFetched, detailErrorWhether the job's own page was opened, and why not if it failed
sourceUrl, scrapedAtWhich input produced the job, and when
changeTypenew 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

  1. Paste career-site URLs into Workday career site URLs, for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite or https://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.
  2. 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 the myworkdayjobs.com host name and the site is the first path segment of the career-site URL; the actor finds the wd1/wd5/wd12 data centre itself.
  3. 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.
  4. 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.
  5. 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 /careers and /jobs (at most 4 pages). Inputs where no Workday site is found are listed in the run's SUMMARY and 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.

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.

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.