Workday Jobs Scraper avatar

Workday Jobs Scraper

Pricing

from $1.50 / 1,000 job postings

Go to Apify Store
Workday Jobs Scraper

Workday Jobs Scraper

Scrape job postings from any Workday career site by URL. Exact posting dates, salary ranges parsed to numbers, full descriptions. Export to CSV, JSON, Excel, or XML.

Pricing

from $1.50 / 1,000 job postings

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ParseForge Banner

๐Ÿ’ผ Workday Jobs Scraper

๐Ÿš€ Export any Workday career site in seconds. 32 fields per posting, exact ISO posting dates instead of "Posted 30+ Days Ago", and salary ranges parsed into numbers on 78% of postings.

Workday powers the careers page of a large share of the Fortune 500, and every one of those pages sits on a public JSON service that nobody has to log into. This Actor reads that service directly. Point it at a career site URL such as https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, or at a single job URL, and it returns a flat row per posting with the title, company, locations, remote type, employment type, req ID, apply link, full description in both plain text and HTML, and the pay range when the employer discloses one.

Coverage measured on live sites while building this Actor: NVIDIA 2,000 reachable postings, Salesforce 1,542, Adobe 753, Workday 377, Red Hat 145. Across a 40-posting sample spanning those five employers, 31 postings carried a disclosed pay range and every one of them parsed into salaryMin, salaryMax, salaryCurrency and salaryPeriod. A 45-posting run finished in 10 seconds. No login, no API key, no proxy required.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Recruiters and talent intelligence teamsTrack a competitor's open roles, headcount growth, and pay bands week over week
Compensation analystsBuild salary benchmarks from pay-transparency ranges published by real employers
Job board and aggregator operatorsFeed a niche board with fresh postings straight from employer career sites
Market researchers and investorsRead hiring velocity as a signal of which business units a company is expanding
Job seekers and career coachesExport every open role at a target employer into a spreadsheet and sort by pay

๐Ÿ“‹ What the Workday Jobs Scraper does

  • ๐Ÿข Any Workday career site. Paste the URL. The Actor resolves the tenant and site name itself, including locale-prefixed URLs like /en-US/, /details/ job links, and direct API URLs.
  • ๐Ÿ“… Exact posting dates. Workday shows visitors a relative string like "Posted 30+ Days Ago". This Actor returns postedDate as a real ISO date, so a posting from 2026-01-24 is dated, not bucketed.
  • ๐Ÿ’ฐ Salary parsed into numbers. Pay-transparency ranges live inside the description prose, never in a structured field. The Actor extracts salaryMin, salaryMax, salaryCurrency and salaryPeriod across 20 currencies, and keeps the original text in salaryText.
  • ๐ŸŽ›๏ธ Filters by plain name. Every Workday tenant invents its own internal facet codes. Red Hat literally names them a, b, c. You type "Engineering", "Remote", "Intern" or "United States of America" and the Actor resolves the name against that site's live facet list.
  • ๐Ÿ” Keyword search. searchText is passed to Workday's own search, exactly as the career site's search box does.
  • ๐Ÿ“ Description twice. descriptionText is clean plain text with entities decoded, ready for an LLM or a spreadsheet. description keeps the original HTML for rendering.
  • ๐ŸŒ Multiple sites per run. Queue as many career sites and single job URLs as you like in one run, deduplicated by posting.

๐Ÿ’ก Why it matters: the two fields hiring analysts actually need, when a role opened and what it pays, are the two Workday never hands you in a usable form. This Actor derives both.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

๐Ÿ“Š Output

Every run writes one flat row per job posting. 32 fields, always the same keys, so the dataset is safe to load straight into a pipeline.

FieldTypeDescription
๐Ÿ–ผ imageUrlstringEmployer logo served by the career site
๐Ÿ“Œ titlestringJob title
๐Ÿข companystringHiring legal entity, as Workday records it
๐Ÿ”— jobUrlstringPublic job page
๐Ÿ“ฎ applyUrlstringDirect link to the application form
๐Ÿ†” jobReqIdstringEmployer requisition ID, for example JR2022179
๐Ÿงพ jobPostingIdstringWorkday posting slug
๐Ÿ”‘ workdayIdstringInternal Workday record ID
๐Ÿ“ locationstringPrimary location
๐Ÿ—บ additionalLocationsarrayEvery other location the posting covers
#๏ธโƒฃ locationCountintegerTotal locations for this posting
๐ŸŒŽ countrystringCountry of the primary location
๐Ÿณ countryCodestringISO alpha-2 country code
๐Ÿ  remoteTypestringRemote, Hybrid, Onsite, Flex, as the employer labels it
โฑ timeTypestringFull time or Part time
๐Ÿ“… postedDatestringExact ISO date the posting went live
๐Ÿ—“ postedOnstringWorkday's own relative label
๐Ÿ”š endDatestringPosting end date when the employer sets one
โŒ› timeLeftToApplystringApplication window remaining
โœ… canApplystringYes or No
๐Ÿ’ต salaryMinnumberLower bound of the disclosed range
๐Ÿ’ฐ salaryMaxnumberUpper bound of the disclosed range
๐Ÿ’ฑ salaryCurrencystringISO currency code
๐Ÿ“† salaryPeriodstringYEARLY, MONTHLY or HOURLY
๐Ÿงฎ salaryTextstringThe range exactly as printed in the posting
๐Ÿ“„ descriptionTextstringFull description as plain text
๐Ÿงฌ descriptionstringFull description as original HTML
๐Ÿ“ descriptionLengthintegerCharacter count of the plain-text description
๐Ÿท tenantstringWorkday tenant the posting came from
๐ŸŒ careerSitestringCareer site name inside that tenant
๐Ÿ•’ scrapedAtstringISO timestamp of collection
โŒ errorstringPopulated only on a failed row

Fields the employer chooses not to publish come back as Not Disclosed rather than an empty cell, so a blank always means a real gap in the source and never a parsing failure.

Three real records from a live run

{
"imageUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/assets/logo",
"title": "Senior Deep Reinforcement Learning Engineer - Autonomous Driving",
"company": "2100 NVIDIA USA",
"jobUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Deep-Reinforcement-Learning-Engineer---Autonomous-Driving_JR2022179",
"applyUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Deep-Reinforcement-Learning-Engineer---Autonomous-Driving_JR2022179/apply",
"jobReqId": "JR2022179",
"jobPostingId": "Senior-Deep-Reinforcement-Learning-Engineer---Autonomous-Driving_JR2022179",
"workdayId": "9ba2757cdaf01037707d2f57c4200000",
"location": "US, CA, Santa Clara",
"additionalLocations": [],
"locationCount": 1,
"country": "United States of America",
"countryCode": "US",
"remoteType": "Not Disclosed",
"timeType": "Full time",
"postedDate": "2026-08-27",
"postedOn": "Posted Today",
"endDate": "Not Disclosed",
"timeLeftToApply": "Not Disclosed",
"canApply": "Yes",
"salaryMin": 224000,
"salaryMax": 356500,
"salaryCurrency": "USD",
"salaryPeriod": "YEARLY",
"salaryText": "224,000 USD - 356,500 USD",
"descriptionText": "NVIDIA has been transforming computer graphics, PC gaming, and accelerated computing for more than 25 years...",
"description": "<p>NVIDIA has been transforming computer graphics, PC gaming, and accelerated computing...</p>",
"descriptionLength": 3773,
"tenant": "nvidia",
"careerSite": "NVIDIAExternalCareerSite",
"scrapedAt": "2026-08-27T20:58:32.097Z",
"error": null
}
{
"title": "Senior Systems Software Engineer - Advanced Technology Group",
"company": "2100 NVIDIA USA",
"jobReqId": "JR2014995",
"location": "US, OR, Hillsboro",
"country": "United States of America",
"countryCode": "US",
"timeType": "Full time",
"postedDate": "2026-08-27",
"postedOn": "Posted Today",
"canApply": "Yes",
"salaryMin": 152000,
"salaryMax": 241500,
"salaryCurrency": "USD",
"salaryPeriod": "YEARLY",
"salaryText": "152,000 USD - 241,500 USD",
"descriptionLength": 3911,
"tenant": "nvidia",
"careerSite": "NVIDIAExternalCareerSite",
"scrapedAt": "2026-08-27T20:58:32.070Z",
"error": null
}
{
"title": "Senior Firmware Engineer - CSP Engagements",
"company": "2100 NVIDIA USA",
"jobReqId": "JR1999599",
"location": "US, CA, Santa Clara",
"country": "United States of America",
"countryCode": "US",
"timeType": "Full time",
"postedDate": "2026-08-27",
"postedOn": "Posted Today",
"canApply": "Yes",
"salaryMin": 184000,
"salaryMax": 287500,
"salaryCurrency": "USD",
"salaryPeriod": "YEARLY",
"salaryText": "184,000 USD - 287,500 USD",
"descriptionLength": 4423,
"tenant": "nvidia",
"careerSite": "NVIDIAExternalCareerSite",
"scrapedAt": "2026-08-27T20:58:32.128Z",
"error": null
}

โœจ Why choose this Actor

What you get
Dates you can sort onpostedDate is a real ISO date. Sorting by "Posted 30+ Days Ago" is not a thing you can do.
Pay as numberssalaryMin and salaryMax are numeric, so a spreadsheet can average them. 31 of 40 sampled postings across five employers carried a range.
Filters that work on every tenantFacet codes differ per employer, and this Actor resolves your plain-language filter against the live facet list of whichever site you scrape.
Honest emptiesNot Disclosed marks what the employer withheld. There are no silently blank columns.
No credentials, no proxyThe service is public and answered 12 out of 12 burst requests from a plain connection. Proxy support is included and off by default.
Stable schemaThe same 32 keys on every row, so scheduled runs never break a downstream pipeline.
Runs on ApifySchedule it, trigger it by webhook, or call it from the API. Export to CSV, JSON, Excel, or XML.

๐Ÿ“ˆ How it compares to alternatives

Prices and run counts below were read from the Apify Store API while pricing this Actor. The two most popular Workday scrapers publish no dataset schema at all, so their field coverage is listed as not published rather than guessed.

FeatureParseForge Workday Jobs ScraperWorkday Job Scraper (12,454 runs)Workday Jobs API (6,903 runs)Workday Jobs Scraper Fast Edition (3,449 runs)
Published output fields32Not publishedNot published12
Exact ISO posting dateYesNot publishedNot publishedNo, relative label only
Salary parsed to numbersYes, 20 currenciesNot publishedBehind an AI filter flagNo
Filter by job category, type, remote type, locationYes, by plain nameNoYes, on a pre-indexed databaseKeyword and location text only
Reads the employer's live career siteYesYesNo, serves a pre-built indexYes
Plain text and HTML descriptionBothNot publishedConfigurableHTML only
Single job URL supportedYesNoNoNo

The Workday Jobs API is a different product rather than a direct competitor: it serves a pre-indexed database enriched with AI and LinkedIn data across many employers. Use it when you want breadth. Use this Actor when you want what a specific employer's career site says right now.

The one ceiling worth knowing before you buy. Workday itself returns at most 2,000 postings for any single query, and an offset past 2,000 silently wraps back to the first page. This Actor detects the wrap and stops instead of shipping duplicates, and it prints the true total so you always know your coverage. To go past 2,000 on a very large employer, split the run with a keyword or a category filter. No scraper can lift this cap, because it is enforced by Workday's own service.

๐Ÿš€ How to use

  1. Create a free Apify account with $5 in credit.
  2. Open the Actor and paste a Workday career site URL into Workday Career Site URLs. Anything on myworkdayjobs.com works: a career site, a locale-prefixed URL, or a single job link.
  3. Optionally type a keyword into Search Keyword, and plain-language values into the filter fields, for example Engineering, Remote, Intern, United States of America.
  4. Set Max Items. Free-plan runs preview 10 results.
  5. Click Start. A 45-posting run takes about 10 seconds.
  6. Open the Dataset tab and download CSV, JSON, Excel, or XML, or pull the results from the API.

A first run:

{
"startUrls": [{ "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite" }],
"jobCategories": ["Engineering"],
"maxItems": 100
}

๐Ÿ’ผ Business use cases

๐Ÿ“Š Competitor hiring intelligence.

A talent intelligence team schedules a weekly run across the Workday sites of eight competitors. Because postedDate is exact, they diff week over week and see precisely which roles opened in the last seven days, which teams are growing, and which requisitions quietly closed.

๐Ÿ’ฐ Compensation benchmarking.

A compensation analyst pulls every US posting from twelve employers and averages salaryMin and salaryMax by title and state. Pay-transparency law puts the numbers in the description prose, and this Actor is what turns that prose into two numeric columns a pivot table can read.

๐Ÿ“ฐ Running a niche job board.

An aggregator serving healthcare recruiters queues the Workday sites of forty hospital systems, filters on the Nursing category, and republishes the fresh postings with applyUrl pointing straight at the employer's own form.

๐Ÿ”Ž Investment and market research.

An analyst tracks hiring velocity at a portfolio company by counting postings per category each month. A sustained jump in Engineering headcount ahead of an earnings call is a signal that shows up in the career site long before it shows up in a filing.

๐Ÿ”Œ Automating Workday Jobs Scraper

  • Make: trigger a scenario on each finished run and route new postings into a CRM or an ATS.
  • Zapier: connect the run-finished event to Google Sheets and append every new row automatically.
  • Slack: post a digest of postings opened today, filtered on postedDate, into a recruiting channel every morning.
  • Airbyte: sync the dataset into Snowflake, BigQuery, or Postgres for joins against your own headcount data.
  • GitHub: run the Actor on a schedule from a workflow and commit the CSV so the history is versioned.
  • Google Drive: drop each run's spreadsheet into a shared folder for the recruiting team.

Anything that speaks HTTP works too. The Apify API exposes runs, datasets, and webhooks directly.

๐ŸŒŸ Beyond business use cases

  • Research: labour economists study how quickly pay-transparency disclosure spread across employers and states by measuring how often a range appears at all.
  • Personal: a job seeker exports every open role at five dream employers, sorts by salaryMax, and tracks which ones they have applied to.
  • Non-profit: a workforce development programme maps entry-level and intern postings by region to steer training toward roles that are actually open.
  • Experimentation: feed descriptionText into an LLM to cluster required skills, or chart posting volume against a company's product launches.

๐Ÿค– Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude, or any assistant that can browse:

I want to collect job postings from Workday career sites. Look at https://apify.com/parseforge/workday-jobs-scraper and tell me how to configure a run that pulls every Engineering role in the United States from a given employer, and how to turn the salaryMin and salaryMax fields into a pay-band report.

The Actor's input schema is published, so an assistant can read the field list and write the run configuration for you.

โ“ Frequently Asked Questions

๐Ÿ” Do I need a Workday login or an API key? No. Every career site on myworkdayjobs.com exposes a public JSON service, and that is what this Actor reads. Nothing behind a login is touched.

๐Ÿข Which companies does it work with? Any employer whose careers page is hosted on Workday. It was verified against NVIDIA, Salesforce, Adobe, Workday, and Red Hat while it was built, and it resolves the tenant automatically rather than shipping a hardcoded list.

๐Ÿ”— What URL should I paste? The career site URL is ideal, for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Locale-prefixed URLs, /job/ and /details/ links to a single posting, and direct API URLs all work.

๐Ÿ“… Why does postedDate differ from what the website shows? The website shows a rounded label such as "Posted 30+ Days Ago". postedDate is the exact date the employer published the posting, taken from the same record the page is rendered from. Both are in the output, so you can use whichever you prefer.

๐Ÿ’ฐ Why is salary Not Disclosed on some rows? Because the employer did not publish a range. Pay transparency is required in some jurisdictions and not in others. Across a 40-posting sample from five employers, 31 disclosed a range and 9 did not, and the misses were concentrated in roles outside those jurisdictions.

๐Ÿงฎ How is the salary extracted? Workday has no structured pay field, so the range is read out of the description text. The Actor takes the first range that is either marked with a currency or sits next to compensation wording, recognises 20 currencies, and detects yearly, monthly, and hourly periods. The untouched source string is kept in salaryText so you can always audit it.

๐Ÿ“‰ Why did I get 2,000 results instead of the full 2,700? Workday returns at most 2,000 postings per query and wraps back to the first page beyond that. The Actor stops at the wrap rather than shipping duplicates. Split the run with a keyword or a category filter to reach the rest.

๐ŸŽ›๏ธ My filter value was ignored. What happened? Every employer defines its own facet values. If your value is not one of them, the run log prints the list that site does offer so you can pick from it. Matching is case-insensitive and partial, so "Engineering" matches "Product Development and Engineering".

๐ŸŒ Do I need a proxy? No. The service answered 12 out of 12 burst requests from a plain connection during testing, so proxy support is included but off by default. Turn it on for very large runs or if your network throttles outbound traffic.

โšก How fast is it? A 45-posting run finished in about 10 seconds, and a 5-posting cloud run in under 5 seconds. Listing pages are fixed at 20 postings by Workday, and detail requests run concurrently.

๐Ÿ“ฆ What formats can I export? CSV, JSON, Excel, and XML from the dataset tab, or straight from the Apify API.

๐Ÿ” Can I scrape several employers in one run? Yes. Queue as many career site URLs and single job URLs as you like. Postings are deduplicated across the whole run.

๐Ÿ“„ Is the full job description included? Yes, twice. descriptionText is clean plain text with HTML entities decoded, and description keeps the original HTML.

๐Ÿ”Œ Integrate with any app

Results land in an Apify dataset, which means webhooks, the REST API, scheduled runs, and the official Python and JavaScript clients all work out of the box. Wire a run-finished webhook into your own service and the postings arrive as JSON the moment a run completes.

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: this is an independent tool and is not affiliated with, endorsed by, or connected to Workday, Inc. or any employer whose career site you scrape. It collects only publicly available data.