Workday Jobs Scraper avatar

Workday Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Workday Jobs Scraper

Workday Jobs Scraper

Scrape jobs from any Workday job site (myworkdayjobs.com): title, company, location, employment type, posting date, apply URL, salary where stated and full description. Filter by keyword, location and date. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Get the open jobs of any company that hires through Workday. Paste the URL of a Workday job site (https://{company}.wd5.myworkdayjobs.com/{site}) and receive title, location, employment type, posting date, apply URL, salary where the posting states one, and the full job description. No login, no API key. Fast, with clean rows.

Workday is the job system of most large enterprises (NVIDIA, Salesforce, Mastercard, Cisco and thousands more). The actor reads the same public job search that the career site itself uses, so the data is live at run time.

What you can do with it

  • Pull the open roles of large employers for recruiting research and lead generation.
  • Watch hiring at specific companies: run it on a schedule with postedWithinDays and sortBy: newest.
  • Search a whole Workday job site by keyword and location; the search is done by Workday itself, so only matching jobs are paged.
  • Build job alerts and datasets from Workday career sites.

Two ways to run it

A run is in exactly one mode, decided from your input and written to the run log.

Your inputModeWhat happens
companies (with or without keywords)Company modeReads exactly the Workday job sites you list. keywords only filter their jobs.
keywords and no companiesKeyword searchSearches the jobs of many companies at once, from a built-in list of 3,662 Workday job sites, biggest hirers first.
nothing ({})Company modeReads four sample job sites.

Keyword search answers "which large employers are hiring a data engineer in Germany right now" without knowing the companies in advance. It sends your keyword to each company's own Workday search (one search per keyword and company), matches the job title, and reads the full posting only for the jobs it keeps. Rows are pushed as the companies are scanned, so you see results early. Use countries, location, postedWithinDays and maxCompanies to narrow it and maxResults to stop early. Each search reads the first page of Workday's results per keyword, so a company with many matches contributes its best matches rather than all of them; use company mode with its job site URL for a full list. The built-in list is verified live when it is generated and refreshed with each release.

Every row has the same fields in both modes, and duplicates are removed before anything is charged.

Input

FieldDescription
companiesCompany mode. Workday job site URLs. Strings, {"url": "..."} objects, a single string, or several separated by commas or new lines. Empty (and no keywords) = four sample job sites.
keywordsKeep only jobs whose title matches at least one keyword (also sent to Workday's own search). With no companies it starts keyword search.
locationKeep only jobs in this city, region or country (Berlin, Germany, DE).
includeRemoteWithoutRegionboolean
countriesKeyword search only. ISO-2 codes such as ["DE", "CH"]: skips companies known not to hire there and keeps only jobs in these countries (jobs whose country cannot be determined are left out).
maxCompaniesKeyword search only. How many job sites of the built-in list are scanned, biggest hirers first. Default 500.
postedWithinDaysDrop jobs older than this many days. Workday publishes relative dates ("Posted 3 Days Ago"), read at day resolution.
sortBynewest (default) or relevance (Workday's own order).
maxJobsPerCompanyCap per job site, counted after the filters. 0 = all. Default 50.
maxResultsCap for the whole run. The run stops cleanly when it is reached. 0 = no limit. Default 100.
includeDescriptionInclude the full description HTML (one extra request per returned job). Default true.

Remote jobs under a country filter: a country filter is the location input when it is a country (Germany, DE). A remote job is kept when its text names that country (Remote - Germany, Remote (DE), Germany (Remote)), names a region that contains it (EMEA, Europe, EU, DACH for DE/AT/CH, Americas or North America for US/CA, LATAM, APAC, UK & Ireland) or says it is open worldwide (Worldwide, Anywhere, Global). A remote job that names another country or a region without your country is dropped. A job that says only Remote (also Remote OK, Fully remote, or a remote flag with no place) does not state where it can be filled from, so it is left out by default and not charged; the run status says how many were left out. Turn on includeRemoteWithoutRegion to keep them anyway (they may not be open to applicants in your country). Jobs with a physical place are judged by that place as before.

{
"keywords": ["data engineer", "product manager"],
"countries": ["DE", "CH"],
"postedWithinDays": 14,
"maxResults": 100
}

Example: job site URLs

{
"companies": [
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
{ "url": "https://salesforce.wd12.myworkdayjobs.com/External_Career_Site" }
],
"keywords": ["engineer"],
"location": "United States",
"postedWithinDays": 7,
"sortBy": "newest",
"maxJobsPerCompany": 25
}

Example: one string with several sites

{
"companies": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://cisco.wd5.myworkdayjobs.com/Cisco_Careers",
"maxResults": 40
}

A Workday job site cannot be guessed from a company name, so the full URL is needed. Open the company's careers page, click a job, and copy the part of the address up to the job site name. The URL of a single posting (with /job/...) is reduced to its job site. Only Workday sites are read: a URL of another job system is skipped with a log line and is never charged. For Greenhouse, Lever and Ashby use the Greenhouse, Lever & Ashby Jobs Scraper, and for 40 more systems use Career Site Jobs Scraper.

Output

One dataset row per job. Duplicates are removed before anything is charged, so the number of rows is the number of results you pay for.

{
"id": "workday-72bdf9ec-JR2015832",
"ats_job_id": "JR2015832",
"title": "Senior Software Engineer, Platform Engineering",
"company": "NVIDIA USA",
"ats_platform": "workday",
"location": "US, CA, Santa Clara",
"city": "Santa Clara",
"country": "US",
"employment_type": "Full-time",
"remote": false,
"description": "<p>NVIDIA has been transforming computer graphics ...</p>",
"apply_url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Software-Engineer--Platform-Engineering_JR2015832/apply",
"job_url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Software-Engineer--Platform-Engineering_JR2015832",
"language": "en",
"created_at": "2026-10-20",
"posted_at_text": "Posted Today",
"salary_text": "168,000 USD - 270,250 USD",
"salary_min": 168000,
"salary_max": 270250,
"salary_currency": "USD",
"salary_source": "stated",
"hiring_organization": "NVIDIA USA",
"scraped_at": "2026-10-21T04:37:32Z"
}

Workday only publishes relative dates, so created_at is a day and posted_at_text keeps Workday's original wording. Postings older than 30 days are shown by Workday as "Posted 30+ Days Ago". salary_* fields are filled only when the posting states a salary; they are never estimated.

Pricing

Pay per result. You pay the platform start fee per run and then only for the jobs you receive. Filtered-out and duplicate jobs are never charged.

EventWhenPrice
job-resultone job from company mode (you list the companies)$0.001
job-result-keyword-searchone job from keyword search across companies$0.001

The pricing box on the actor page always shows the current rates.

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client, such as Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Example prompts once connected:

"Use workday-jobs-scraper to list the newest 30 engineering jobs at NVIDIA (https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite). Return title, location and apply URL."

"Use workday-jobs-scraper on the Cisco and Salesforce Workday sites and show which roles are in Germany."

"Use workday-jobs-scraper keyword search for data engineer in Switzerland, posted in the last 14 days, and return the 30 newest with company and apply URL."

Configure the MCP server with the Workday Jobs Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/workday-jobs-scraper:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.apify.com/?tools=santamaria-automations/workday-jobs-scraper",
"--header",
"Authorization: Bearer <YOUR_API_TOKEN>"
]
}
}
}

See the auto-generated API tab on the actor page for language-specific examples (cURL, JavaScript, Python, and more).

FAQ

Do I need an API key or a Workday account? No. The actor reads the public job search of the career site.

Which companies does keyword search cover? A built-in list of 3,662 Workday job sites of employers, built from our company directory and public lists of Workday career sites, and checked live (the job search answered and had at least one open job) when the list was generated. It is not every Workday customer. If a company you need is missing, pass its job site URL in companies instead.

Why is a full URL required? A Workday job site is made of a company name, a data center number (wd1, wd5, wd12) and a site name that differ per company. They cannot be derived from the company name.

How long does a run take? Listing is quick. With includeDescription on, every returned job needs one more request, so a run of 100 jobs takes about a minute. Switch descriptions off for the fastest run.

What if a job site is not found? The run continues with the other sites. The run status line names the site and the reason (for example board_not_found), and nothing is charged for it.

Why did I get fewer jobs than maxJobsPerCompany? The caps apply after your filters, and a job site can simply have fewer matching jobs. Sites are read in the order you list them, and the run stops once maxResults is reached.

Support

  • Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours, or open a ticket in the Issues tab on the actor page.
  • Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume.