ParseForge Scrapers

Workday Jobs Scraper

parseforge/workday-jobs-scraper

JobsLead generationAutomation

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.

Run this scraper See the API call
Total runs
12
Bookmarked
0
Last modified
8 days ago

This scraper was last updated on .

What does the Workday Jobs Scraper return?

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 teams Track a competitor's open roles, headcount growth, and pay bands week over week
Compensation analysts Build salary benchmarks from pay-transparency ranges published by real employers
Job board and aggregator operators Feed a niche board with fresh postings straight from employer career sites
Market researchers and investors Read hiring velocity as a signal of which business units a company is expanding
Job seekers and career coaches Export 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.

Field Type Description
๐Ÿ–ผ imageUrl string Employer logo served by the career site
๐Ÿ“Œ title string Job title
๐Ÿข company string Hiring legal entity, as Workday records it
๐Ÿ”— jobUrl string Public job page
๐Ÿ“ฎ applyUrl string Direct link to the application form
๐Ÿ†” jobReqId string Employer requisition ID, for example JR2022179
๐Ÿงพ jobPostingId string Workday posting slug
๐Ÿ”‘ workdayId string Internal Workday record ID
๐Ÿ“ location string Primary location
๐Ÿ—บ additionalLocations array Every other location the posting covers
#๏ธโƒฃ locationCount integer Total locations for this posting
๐ŸŒŽ country string Country of the primary location
๐Ÿณ countryCode string ISO alpha-2 country code
๐Ÿ  remoteType string Remote, Hybrid, Onsite, Flex, as the employer labels it
โฑ timeType string Full time or Part time
๐Ÿ“… postedDate string Exact ISO date the posting went live
๐Ÿ—“ postedOn string Workday's own relative label
๐Ÿ”š endDate string Posting end date when the employer sets one
โŒ› timeLeftToApply string Application window remaining
โœ… canApply string Yes or No
๐Ÿ’ต salaryMin number Lower bound of the disclosed range
๐Ÿ’ฐ salaryMax number Upper bound of the disclosed range
๐Ÿ’ฑ salaryCurrency string ISO currency code
๐Ÿ“† salaryPeriod string YEARLY, MONTHLY or HOURLY
๐Ÿงฎ salaryText string The range exactly as printed in the posting
๐Ÿ“„ descriptionText string Full description as plain text
๐Ÿงฌ description string Full description as original HTML
๐Ÿ“ descriptionLength integer Character count of the plain-text description
๐Ÿท tenant string Workday tenant the posting came from
๐ŸŒ careerSite string Career site name inside that tenant
๐Ÿ•’ scrapedAt string ISO timestamp of collection
โŒ error string Populated 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 on postedDate is a real ISO date. Sorting by "Posted 30+ Days Ago" is not a thing you can do.
Pay as numbers salaryMin 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 tenant Facet codes differ per employer, and this Actor resolves your plain-language filter against the live facet list of whichever site you scrape.
Honest empties Not Disclosed marks what the employer withheld. There are no silently blank columns.
No credentials, no proxy The service is public and answered 12 out of 12 burst requests from a plain connection. Proxy support is included and off by default.
Stable schema The same 32 keys on every row, so scheduled runs never break a downstream pipeline.
Runs on Apify Schedule 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.

Feature ParseForge Workday Jobs Scraper Workday Job Scraper (12,454 runs) Workday Jobs API (6,903 runs) Workday Jobs Scraper Fast Edition (3,449 runs)
Published output fields 32 Not published Not published 12
Exact ISO posting date Yes Not published Not published No, relative label only
Salary parsed to numbers Yes, 20 currencies Not published Behind an AI filter flag No
Filter by job category, type, remote type, location Yes, by plain name No Yes, on a pre-indexed database Keyword and location text only
Reads the employer's live career site Yes Yes No, serves a pre-built index Yes
Plain text and HTML description Both Not published Configurable HTML only
Single job URL supported Yes No No No

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.

๐Ÿ”— Recommended Actors

๐Ÿ’ก 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.

What input does the Workday Jobs Scraper accept?

FieldTypeWhat it doesDefault
startUrls required array Paste any myworkdayjobs.com URL. A career site (https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite) is crawled in full. A single job URL (.../job/... or .../details/...) returns just that posting. Locale prefixes such as /en-US/ are handled automatically. [{"url":"https://nvidia.wd5.myworkdayjob
searchText string Free-text keyword sent to Workday's own search, exactly as the career site's search box does. Example: compiler, nurse, account executive. Leave empty to take every posting on the site. not set
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
jobCategories array Filter by the career site's own Job Category values, written as plain names (Engineering, Sales, Marketing). Matching is case-insensitive and partial. Every Workday tenant defines its own category list, so the Actor reads the live list for the site you point it at and logs the values it found when a name does not match. not set
jobTypes array Filter by the site's Job Type facet, for example Regular Employee, Intern (Fixed Term), New College Graduate, Management. not set
timeTypes array Filter by the site's Time Type facet: Full time or Part time. not set
remoteTypes array Filter by the site's Remote Type facet where it offers one, for example Remote, Hybrid, Onsite, Flex. not set
locations array Filter by the site's location facets: country, region, state or city, for example United States of America, India, Santa Clara. Matched against every location facet Workday exposes for that site. not set
includeDescriptionHtml boolean Adds the original HTML of the job description next to the plain-text version. Turn it off for smaller CSV exports. true
proxyConfiguration object Workday's public API answers fine without a proxy, so this is off by default. Switch it on for very large runs or if your network rate-limits outbound requests. {"useApifyProxy":false}

How much does the Workday Jobs Scraper cost?

from $1.50 per 1,000 results

Charged forWhat it isPrice each
Job posting One Workday job posting written to the dataset, with all 32 fields. $0.0015 to $0.002

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Workday Jobs Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~workday-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "startUrls": [
      {
        "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
      }
    ],
    "maxItems": 10,
    "includeDescriptionHtml": true,
    "proxyConfiguration": {
      "useApifyProxy": false
    }
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "startUrls": [
    {
      "url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
    }
  ],
  "maxItems": 10,
  "includeDescriptionHtml": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}

What do users say about the Workday Jobs Scraper?

No reviews yet. Be the first.

How do I report an issue with the Workday Jobs Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Workday Jobs Scraper on Apify All scrapers