Workday Jobs Scraper API | $1/1k, New Jobs Daily, No Login
Pricing
from $0.70 / 1,000 job listeds
Workday Jobs Scraper API | $1/1k, New Jobs Daily, No Login
Scrape job postings from any Workday career site (myworkdayjobs.com): title, location, posted date, req ID and optional full description. Only-new mode for scheduled daily hiring feeds. No login, no browser.
Pricing
from $0.70 / 1,000 job listeds
Rating
0.0
(0)
Developer
ProgrammX
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
Scrape job postings from any Workday career site (*.myworkdayjobs.com): title, requisition ID, location, posted date, job URL and, if you want it, the full description, every location, country, time type and remote type. Turn on only-new mode and schedule it daily to get a feed of new and changed openings per employer. You don't need a login, a browser or a Workday account.
Keywords: Workday jobs scraper, myworkdayjobs scraper, Workday careers API, Workday job postings API, ATS jobs scraper, company career site scraper, new job postings feed, hiring signals, job monitoring, recruiter leads, job aggregator feed, Workday job board export, NVIDIA jobs, Adobe jobs, Salesforce jobs.
What it does
Thousands of large employers host their careers page on Workday (for example https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite). Each of those pages loads its jobs from a public JSON endpoint. This actor reads that same endpoint directly, so:
- It's fast and cheap. One request returns 20 jobs, and a 50-job run takes about 5 seconds.
- It's reliable. It reads structured JSON instead of parsing HTML, so page redesigns don't break it.
- It isn't limited to 2000 results. Workday stops at 2000 results per query. When a site has more than that, the actor splits the query by job family (or another facet) and removes duplicates, so you get all of them.
- It works for any tenant. Paste any Workday career-site URL. Locale paths (
/en-US/), job-page URLs,myworkdaysite.com/recruiting/...URLs and URLs with filters applied (?locations=...&jobFamilyGroup=...) all work.
Who uses it
- Recruiters and staffing agencies. See the day a target account opens a role and get to the hiring manager first.
- Sales and lead-gen teams. Use new openings (for example "Head of Data", "SOC 2", "Salesforce admin") as buying signals.
- Job boards and aggregators. Pull a daily feed of every opening at a list of employers.
- Market and talent analysts. Track hiring velocity by company, team and location.
Input
| Field | Type | Default | Description |
|---|---|---|---|
careerSiteUrls | string list | NVIDIA example | Workday career-site URLs, one per employer. Filter params in the URL are applied. |
searchText | string | empty | Keyword search, the same as the search box on the career site. |
includeDetails | boolean | false | Fetch each job's detail page: description (HTML + text), all locations, country, start date, time type, remote type. |
postedWithinDays | integer 0-30 | empty | Keep only jobs posted within N days, based on Workday's "Posted N Days Ago" label. |
onlyNew | boolean | false | Monitoring mode. Return only jobs that are new or changed since earlier runs. |
maxItemsPerSite | integer | 100 | Stop each career site after this many jobs. |
maxItems | integer | 50 | Hard cap on jobs per run, across all sites. Raise it for real feeds. |
proxyConfiguration | proxy | off | Optional. Workday sites normally work without a proxy. |
Example:
{"careerSiteUrls": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite","https://adobe.wd5.myworkdayjobs.com/external_experienced"],"searchText": "engineer","includeDetails": true,"postedWithinDays": 7,"maxItemsPerSite": 500,"maxItems": 1000}
Output
One dataset row per job. This is a real list-only record from a test run on 2026-10-03:
{"jobReqId": "JR1997186","title": "Senior Software Engineer, NCCL","company": "nvidia","url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-CA-Santa-Clara/Senior-Software-Engineer--GPU-Communications-and-Networking_JR1997186","locationsText": "US, CA, Santa Clara","postedOn": "Posted Yesterday","postedDaysAgo": 1,"postedDateEstimate": "2026-10-02","tenant": "nvidia","site": "NVIDIAExternalCareerSite","wd": "wd5","hasDetails": false,"scrapedAt": "2026-10-03T15:16:09.498Z"}
With includeDetails: true (real Adobe record from the same day, description truncated):
{"jobReqId": "R166886","title": "Research Engineer","company": "ADUS-Adobe Inc.","location": "Seattle","country": "United States of America","countryCode": "US","startDate": "2026-09-18","timeType": "Full time","descriptionText": "The Opportunity\n\nThe Research Engineering & Design Lab within Adobe Research is looking for a Research Engineer ...","canApply": true,"changeType": "new"}
The full field list (additionalLocations, remoteType, endDate, descriptionHtml, workdayId, externalPath, careerSiteUrl and more) is in the dataset schema. Runs also write a RUN_STATS record to the default key-value store with requests, retries, items, proxy mode and duration.
Pricing (pay per event)
| Event | When it is charged | FREE | BRONZE | SILVER | GOLD |
|---|---|---|---|---|---|
job-listed | Per job returned without details | $0.0010 | $0.0009 | $0.0008 | $0.0007 |
job-detail | Per job returned with full details | $0.0020 | $0.0018 | $0.0015 | $0.0012 |
On the FREE tier, 1,000 jobs cost $1 list-only or $2 with full descriptions. In only-new mode you pay only for new or changed jobs. The run stops cleanly when it reaches your max-charge limit. (Proposed prices. Not live yet.)
How to schedule a daily feed
- Put your target employers' career-site URLs in
careerSiteUrls, setonlyNew: true, and setmaxItemsPerSitehigh enough for one day's openings (for example 500). - Save the input as a Task.
- Open Schedules, create a schedule (for example
0 7 * * *for 07:00 every day) and attach the task. - Connect the output through an integration (webhook, Slack, Google Sheets, Zapier, Make) or read the dataset through the API.
The first run returns a baseline of up to maxItemsPerSite newest jobs per site. Later runs return only new or changed jobs, marked with changeType: "new" or "changed". Workday lists jobs newest first, so the actor stops a site after 3 pages in a row with nothing new. State is kept in the named key-value store workday-jobs-feed-state; delete it to start over.
Use it from the API, n8n, Make, Zapier or an AI agent
- API: start a run and get the results in one call:
The response is the dataset as JSON; addcurl -X POST "https://api.apify.com/v2/acts/programmx~workday-jobs-feed/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"careerSiteUrls": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"], "maxItemsPerSite": 50}'&format=csvfor CSV. This endpoint waits up to 5 minutes; for longer runs, start the run asynchronously and read the dataset when it finishes. - n8n, Make and Zapier: use the Apify node or app, choose Run Actor, pick this actor and paste the input JSON.
- Google Sheets, Slack, email and webhooks: add an integration on the actor or task in Apify Console.
- AI agents: add this actor to Apify's MCP server (
https://mcp.apify.com) and call it from any MCP client.
FAQ
How do I find a company's Workday URL?
Open the company's careers page and click through to the job search. If the address contains myworkdayjobs.com, copy it. Site names are case-sensitive.
Why does company say nvidia but ADUS-Adobe Inc. in detail mode?
Without details the actor only knows the Workday tenant name. Detail mode adds the hiring entity that Workday reports, which is often a legal-entity name.
Can it get more than 2000 jobs from one site?
Yes. When a site reports 2000 (Workday's cap) and you ask for more, the actor splits the query by facet and removes duplicates. In a test it returned 2,001 unique NVIDIA jobs.
Do I need a proxy?
Usually not. Workday sits behind Cloudflare, but no challenge appeared in testing. If you run very large volumes, enable a proxy.
Is the posted date exact?
Workday's list shows relative labels ("Posted 3 Days Ago", "30+ Days Ago"). postedDateEstimate is derived from that label. startDate (detail mode) is the date Workday reports.
How much does a daily jobs feed cost?
Example on the Free plan: 10 career sites with about 15 new jobs each per day is 150 jobs, so $0.15 a day list-only (about $4.50 a month) or $0.30 a day with full descriptions.
Which companies use Workday?
Many large employers host their careers site on myworkdayjobs.com. NVIDIA, Adobe, Salesforce, Intel, Workday and Mastercard were tested.
Can I export Workday jobs to CSV, Excel or Google Sheets?
Yes. Each run's dataset downloads as CSV, Excel or JSON, and the Google Sheets integration can append every new job to a sheet.
Can an AI agent use this actor?
Yes. Apify's MCP server (https://mcp.apify.com) can expose this actor as a tool to Claude, Cursor, VS Code and other MCP clients, so an agent can fetch fresh jobs on request.
Limitations
- You supply the career-site URLs. The actor doesn't discover every Workday tenant on its own.
- Removed (closed) jobs are not reported as removals yet.
- If one facet value alone has more than 2000 jobs, that slice is still capped at 2000.
postedWithinDayscan only be as precise as Workday's labels, and anything over 30 days is "30+".- It reads only public career-site data. It doesn't log in, apply to jobs or access candidate data.