Workday Jobs Scraper — Public Career Boards
Pricing
from $5.00 / 1,000 workday job record scrapeds
Workday Jobs Scraper — Public Career Boards
Extract public Workday jobs, descriptions, locations, and apply URLs from company career boards for recruiting and hiring research.
Pricing
from $5.00 / 1,000 workday job record scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
21 days ago
Last modified
Categories
Share
What is Workday Jobs Scraper — Public Career Boards?
Workday Jobs Scraper turns public myworkdayjobs.com career-site URLs into a dataset with one row per open job. Each row returns the job requisition ID, title, employer tenant, location, time type, posting text and date, the full job description, the public job URL and the endpoint it came from. Recruiters, sourcing teams, labor-market analysts, sales teams tracking hiring signals and AI agents use it to monitor openings at employers that run their careers pages on Workday.
Why recruiters use this Workday scraper
- Many employers, one input shape. Paste several Workday boards in
careerSiteUrlsand get one combined dataset. - Keyword search per board.
searchTextnarrows every board to roles such asanalystordata engineer. - Full descriptions.
includeJobDetailsreads each job's public detail record for the complete description. - Stable requisition IDs.
jobIdvalues such asREQ_108423make daily new-job detection simple. - Per-board cap.
maxResultsPerSitecontrols both rows and cost for each employer.
Best fit for this Actor
- Designed for employers whose careers page lives on a public
myworkdayjobs.comboard. - Use it for competitor hiring watches, account-based sales signals and recruiter job alerts.
- For employers that use Greenhouse, continue with Greenhouse Jobs Scraper and merge the datasets on title and location.
- When your target list spans several applicant tracking systems, use Combined ATS Jobs API instead.
Example workflow: from a target account list to hiring signals
A B2B sales team starts with ten target accounts that hire through Workday. They paste each careers URL into careerSiteUrls, set searchText to finance and maxResultsPerSite to 25. The dataset returns title, location, postedText, postedAt and description per job. They flag accounts posting new finance leadership roles, feed those accounts into their CRM as buying signals, and schedule the run each morning so new requisition IDs trigger an alert.
Input
| Field | Type | What it controls |
|---|---|---|
careerSiteUrls | array | Public Workday board URLs such as https://baincapital.wd1.myworkdayjobs.com/External_Public. Required. |
searchText | string | Keywords to search on each board; blank collects all jobs. |
maxResultsPerSite | integer | Job rows per board, 1 to 500. Default 25. |
includeJobDetails | boolean | Read each job's detail record for the full description. Default true. |
useApifyProxy | boolean | Route requests through Apify Residential Proxy. Default true. |
{"careerSiteUrls": ["https://baincapital.wd1.myworkdayjobs.com/External_Public"],"searchText": "analyst","maxResultsPerSite": 25,"includeJobDetails": true,"useApifyProxy": true}
Output
One row per job.
| Field | What it contains |
|---|---|
jobId | Workday requisition ID |
title | Job title |
companyTenant | Workday tenant name of the employer |
location | Primary job location |
timeType | Full time or part time |
postedText, postedAt | Posting label such as Posted 2 Days Ago, and its date when Workday gives a recent day count |
description | Full public job description (with job details) |
jobUrl, sourceUrl | Public job page and the board endpoint it came from |
scrapedAt | Collection time |
companyName, additionalLocations, workerType, remoteType, jobFamilyGroup, jobProfile, applyUrl | Extra attributes, filled when an employer's board publishes them |
{"jobId": "REQ_108419","title": "Workplace Experience Coordinator - Palo Alto","companyName": null,"companyTenant": "baincapital","location": "Palo Alto - 524 Hamilton","additionalLocations": [],"timeType": "Full time","workerType": null,"remoteType": null,"jobFamilyGroup": null,"jobProfile": null,"postedAt": "2026-09-30T16:55:45.434Z","postedText": "Posted 2 Days Ago","description": "BAIN CAPITAL OVERVIEW With approximately $225 billion of assets under management, Bain Capital is one of the world's leading private investment firms.","jobUrl": "https://baincapital.wd1.myworkdayjobs.com/External_Public/job/Palo-Alto---524-Hamilton/Workplace-Experience-Coordinator_REQ_108419","applyUrl": null,"sourceUrl": "https://baincapital.wd1.myworkdayjobs.com/wday/cxs/baincapital/External_Public/job/Palo-Alto---524-Hamilton/Workplace-Experience-Coordinator_REQ_108419","scrapedAt": "2026-10-02T16:55:45.434Z"}
Workday boards are configured per employer. Every row has the requisition ID, title, location, time type, posting label, description and job URL; the job URL is also where candidates apply. Fields such as remote type, job family and a separate apply link fill in for boards that publish them. Each run also writes OUTPUT and RUN_SUMMARY records with the outcome, such as COMPLETE or VALID_EMPTY, and per-board counts.
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay one Workday job record scraped event per validated job saved to the dataset and one small Actor Start event per run, and Apify platform usage, including residential proxy, is billed on top. The live Pricing tab on this page shows the current event prices.
Worked example: ten boards with maxResultsPerSite set to 25 save up to two hundred fifty job rows, so the run costs up to that many job events, one start event and its platform usage.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~workday-jobs-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"careerSiteUrls": ["https://baincapital.wd1.myworkdayjobs.com/External_Public"], "searchText": "engineer", "maxResultsPerSite": 10}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/workday-jobs-scraper").call(run_input={"careerSiteUrls": ["https://baincapital.wd1.myworkdayjobs.com/External_Public"],"searchText": "","maxResultsPerSite": 50,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["jobId"], job["title"], job["location"], job["postedText"])
Use with AI agents (MCP)
Connect the Actor to Claude, ChatGPT, Cursor or any MCP client through Apify MCP, then ask:
List the open analyst roles on the Bain Capital Workday board with title, location and posting date, and tell me which were posted this week.
The agent calls the Actor with careerSiteUrls and searchText, reads rows with get-dataset-items, and uses postedText and postedAt for recency. jobUrl and scrapedAt give provenance per job, and maxResultsPerSite keeps cost bounded.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| An employer's careers page | Open it and copy the myworkdayjobs.com board URL | A board the Actor can read |
| Many target employers | Add every board to careerSiteUrls | One combined hiring dataset |
| One function only | Set searchText, for example finance | Matching roles per board |
| Daily alerts | Schedule the run and compare jobId values | New openings each day |
| Fast inventory counts | Set includeJobDetails to false | Lighter rows without full descriptions |
| A new board | Start with maxResultsPerSite around 10 | A quick look at the fields that board publishes |
Builder's note
I built this on the public JSON endpoints that Workday career boards themselves use, which keeps rows consistent across employers instead of depending on each company's page design. I designed the input around board URLs because that is what recruiters and sales teams already have in their account lists. I learned that Workday boards publish different optional fields per employer, so the core job fields stay constant and the extra attributes fill in where each board provides them.
FAQ
How do I find a company's Workday board?
Open the company's careers page and follow a job link; the board URL contains myworkdayjobs.com, for example https://baincapital.wd1.myworkdayjobs.com/External_Public.
Can I scrape several companies in one run?
Yes. Add each board URL to careerSiteUrls; maxResultsPerSite applies to each board.
Where do candidates apply?
At the jobUrl, which is the public Workday job page with its apply button.
Responsible use
This Actor reads public Workday career boards and leaves authentication and access controls untouched. Use the data in line with each employer's terms and applicable employment and privacy laws. Workday is a trademark of Workday, Inc.; this independent Actor is not affiliated with or endorsed by Workday. For questions or bugs, open a ticket in the Issues tab.