Workday Jobs Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
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
postedWithinDaysandsortBy: 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 input | Mode | What happens |
|---|---|---|
companies (with or without keywords) | Company mode | Reads exactly the Workday job sites you list. keywords only filter their jobs. |
keywords and no companies | Keyword search | Searches the jobs of many companies at once, from a built-in list of 3,662 Workday job sites, biggest hirers first. |
nothing ({}) | Company mode | Reads 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
| Field | Description |
|---|---|
companies | Company 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. |
keywords | Keep only jobs whose title matches at least one keyword (also sent to Workday's own search). With no companies it starts keyword search. |
location | Keep only jobs in this city, region or country (Berlin, Germany, DE). |
includeRemoteWithoutRegion | boolean |
countries | Keyword 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). |
maxCompanies | Keyword search only. How many job sites of the built-in list are scanned, biggest hirers first. Default 500. |
postedWithinDays | Drop jobs older than this many days. Workday publishes relative dates ("Posted 3 Days Ago"), read at day resolution. |
sortBy | newest (default) or relevance (Workday's own order). |
maxJobsPerCompany | Cap per job site, counted after the filters. 0 = all. Default 50. |
maxResults | Cap for the whole run. The run stops cleanly when it is reached. 0 = no limit. Default 100. |
includeDescription | Include 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.
Example: keyword search
{"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.
| Event | When | Price |
|---|---|---|
job-result | one job from company mode (you list the companies) | $0.001 |
job-result-keyword-search | one 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-scraperto list the newest 30 engineering jobs at NVIDIA (https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite). Return title, location and apply URL."
"Use
workday-jobs-scraperon the Cisco and Salesforce Workday sites and show which roles are in Germany."
"Use
workday-jobs-scraperkeyword search fordata engineerin 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.
Related actors
- Career Site Jobs Scraper: the same engine for 40+ job systems (SmartRecruiters, Personio, Workable, SuccessFactors and more).
- Greenhouse, Lever & Ashby Jobs Scraper: jobs of any Greenhouse, Lever or Ashby board.
- Website Job Extractor: any company website to its careers page, job system and jobs.
- Indeed Scraper: Indeed job listings in 60+ countries.
- Glassdoor Scraper: Glassdoor jobs with employer ratings and salary estimates.
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.