Workday Jobs Scraper (myworkdayjobs) & Alerts
Pricing
from $1.50 / 1,000 job results
Workday Jobs Scraper (myworkdayjobs) & Alerts
Scrape open jobs from any Workday careers site (*.myworkdayjobs.com) via its public job-search endpoint: titles, all locations, time type, posting date, full descriptions. Server-side keyword search, filters and an only-new-jobs monitoring mode.
Pricing
from $1.50 / 1,000 job results
Rating
0.0
(0)
Developer
Gabor Sziladi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Scrape every open job from any Workday career site into a clean dataset: title, department, team, locations, remote flag, employment type, posting date, apply link, full plain-text description, and more. The Actor uses the public Workday careers-site job search endpoint (/wday/cxs/<tenant>/<site>/jobs), the same JSON API that every *.myworkdayjobs.com careers page calls in your browser. No login, no browser, no proxy. It's fast, reliable and cheap: $1.50 per 1,000 jobs.
Turn on Only new jobs and schedule the Actor to get a daily feed of new Workday postings, paying only for the new ones.
- ✅ Paste Workday URLs (site or job URLs)
- ✅ All open jobs, one normalised record per job
- ✅ Filters: keywords, exclude keywords, locations, remote only, posted within N days
- ✅ Only new jobs monitoring mode for alerts, webhooks, Slack, Google Sheets, Zapier or Make
- ✅ One broken company never fails the run; errors are listed in the
OUTPUTsummary - ✅ No login, no proxies, no browser. Polite, rate-limited requests to the official endpoint.
Need other ATS platforms too? The all-in-one ATS Jobs Scraper (sysco32/ats-jobs-feed) covers 9 platforms (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio and Teamtailor) and auto-detects the ATS from any careers URL.
What data you get
For each job the Actor makes one extra request to Workday's job-detail endpoint. You get the exact list of all locations, time type (full / part time), the real posting date, the requisition ID and the full description. Workday doesn't publish salary as a structured field (some companies mention pay inside the description text).
| Field | Example |
|---|---|
company, company_slug | Company name and Workday identifier |
job_id, requisition_id | Stable IDs for deduplication |
title, department, team | Job title and organisation |
location, locations[], remote, workplace_type | All locations plus remote / hybrid / onsite |
employment_type | Full-time, part-time, contract… when published |
posted_at, updated_at | ISO 8601 UTC |
salary | {min, max, currency, period, text} when published |
job_url, apply_url | Direct links |
description_text (+ optional description_html) | Full job description |
Input example
{"companies": ["https://zendesk.wd1.myworkdayjobs.com/en-US/zendesk","https://adobe.wd5.myworkdayjobs.com/external_experienced","https://workday.wd5.myworkdayjobs.com/Workday"],"keywords": ["engineer"],"remoteOnly": false,"maxJobsPerCompany": 100,"includeDescription": true,"onlyNewJobs": true}
You can paste: the careers site URL, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite or https://adobe.wd5.myworkdayjobs.com/en-US/external_experienced (a job URL from the site works too).
Output example (real run)
{"company": "Zendesk","company_slug": "zendesk","ats": "workday","job_id": "Senior-Machine-Learning-Engineer_R34642","requisition_id": "R34642","title": "Applied Machine Learning Scientist","department": null,"team": null,"location": "Lisbon, Portugal; Remote, Poland; Remote, Portugal","locations": ["Lisbon, Portugal","Remote, Poland","Remote, Portugal"],"remote": true,"workplace_type": "hybrid","employment_type": "Full time","posted_at": "2026-10-07T00:00:00Z","updated_at": null,"salary": null,"job_url": "https://zendesk.wd1.myworkdayjobs.com/zendesk/job/Lisbon-Portugal/Senior-Machine-Learning-Engineer_R34642","apply_url": "https://zendesk.wd1.myworkdayjobs.com/zendesk/job/Lisbon-Portugal/Senior-Machine-Learning-Engineer_R34642/apply","description_text": "Job Description\n\nThe Enterprise Machine Learning team drives organizational value through scalable ML solutions and data-driven insights, fundamentally changing how business decisions are made. We collaborate closely wit…","description_html": null,"source_input": "https://zendesk.wd1.myworkdayjobs.com/en-US/zendesk","scraped_at": "2026-10-21T17:22:44Z"}
Download the results as JSON, CSV, Excel or XML, or read them through the Apify API. A per-company summary (jobs found, jobs written, errors) is saved to the OUTPUT record of the run's key-value store.
Pricing
Pay per event, no subscription:
| Event | Price |
|---|---|
| Job result (one job in the dataset) | $0.0015 ($1.50 per 1,000 jobs) |
| Actor start (per run) | $0.002 |
For example, 500 jobs cost about $0.75. A daily Only new jobs monitor that finds 20 new jobs costs about $0.03 per run. Failed companies are never charged, and you can set a maximum cost per run.
Use cases
- Track hiring at enterprises on Workday, such as NVIDIA, Adobe, Salesforce, Mastercard, Zendesk and Workday itself.
- Build niche job boards and newsletters from a list of target employers.
- Sales and recruiting intelligence: hiring is a buying signal, so see which accounts are hiring, for which teams and where.
- Job alerts for yourself or your candidates via Only new jobs plus a schedule.
- Feed clean job data to AI agents, RAG pipelines and spreadsheets.
FAQ
Is this legal? The Actor reads only the public job-board endpoint that Workday provides so job postings can be displayed on career sites and job boards. No login and no personal data, apart from what employers publish in their job ads. You are responsible for how you use the data.
How do I find the Workday URL? Open the company's careers page and click a job. The address looks like https://<company>.wd5.myworkdayjobs.com/<SiteName>/job/.... Paste either that job URL or the site URL.
Why is the default limit 50 jobs per company? Workday needs one request per job for the details, so 50 keeps test runs fast. Set Max jobs per company to 0 to get every job.
Workday caps search at about 2,000 results. For very large employers, add keywords. They are sent to Workday's own search, so you reach the relevant jobs even on sites with more than 2,000 openings.
How does "Only new jobs" work? The Actor remembers the job IDs it has already delivered for each company in a named key-value store (stateStoreName). Later runs output only unseen jobs. The first run returns everything that matches, and closed jobs drop out of the state automatically. Jobs held back by Max jobs per company are delivered in the next run.
One company failed. What happens? It's logged and listed in OUTPUT.errors, and the other companies are still processed. If you paste a URL from another ATS, the error message points you to sysco32/ats-jobs-feed.