๐ผ Workday Jobs Scraper
Pricing
from $3.50 / 1,000 results
๐ผ Workday Jobs Scraper
Workday job scraper for any myworkdayjobs or myworkdaysite careers portal. Get titles, salaries, descriptions, normalised locations, skills, seniority and company data โ 20+ filters, streamed live to your dataset.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Workday Jobs Scraper is an Apify Actor and Workday job scraper that extracts job postings from any public Workday career site, including myworkdayjobs and myworkdaysite boards, in bulk. Paste careers URLs and get descriptions, normalised locations, salary and skills in JSON, CSV or Excel. Pay per job: from $3.50 per 1,000 jobs on the Gold, Platinum and Diamond plans ($5.00 on the Free plan). ๐ Try it free
What can Workday Jobs Scraper do?
- ๐ Any Workday careers URL - scrape jobs from any Workday career site and bulk scrape multiple career portals: myworkdayjobs links, myworkdaysite recruiting links, pre-filtered search links and single-job links.
- ๐ Full job data - description as clean text or original HTML, requisition id, hiring entity, posting and closing dates.
- ๐ Clean locations - normalised job locations and time zones, with city, region, country and coordinates, so you can filter by place.
- ๐ฐ Salary extraction - currency, range and pay period when the posting states pay.
- ๐ง Built-in enrichment - job skills and seniority extraction, work arrangement, employment type, benefits, education, visa sponsorship and 40 job categories, with no API key.
- ๐ฏ More than 20 filters - job title, location, company, keywords, posting date, salary, remote, visa sponsorship and more.
- ๐ Change tracking - flags changed postings between runs for daily monitoring of hiring.
- โก Live results - every job is saved to the dataset as soon as it is ready, with API access, schedules and integrations on Apify.
Use it as a Workday career page scraper to collect open positions from many employers at once. Recruiters use it as a Workday job listings scraper. Staffing teams use it as a Workday ATS scraper for vacancies. Job boards use it as a Workday job feed. Analysts use it as a Workday job extractor. It also works like a career site job listing API for recruiting sites. Teams use it as a Workday job search scraper or a Workday career sites API. Employer research teams use it as a company career page scraper for ATS career sites.
What data can I extract from Workday?
| Field | Description |
|---|---|
๐ id, url, source, source_type, source_domain, source_slug | Stable job id, public job link and where the posting was collected from. |
๐ผ title, organization, organization_url, organization_logo, domain_derived | Job title, hiring entity, its link, logo and company domain. |
๐
date_posted, date_created, date_valid_through, date_modified, modified_fields | Posting date, collection time, closing date and what changed since the last run. |
๐ locations, locations_alt, location_type, location_requirements, locations_derived | Locations as published, plus the normalised City, Region, Country values. |
๐ cities_derived, counties_derived, regions_derived, countries_derived, timezones_derived, lats_derived, lngs_derived | Location parts, timezones and coordinates. |
๐ฐ salary, ai_salary_currency, ai_salary_value, ai_salary_min_value, ai_salary_max_value, ai_salary_unit_text, ai_benefits | Pay as published and as structured values, plus benefits found in the text. |
๐ employment_type, ai_employment_type, ai_working_hours, ai_work_arrangement, ai_work_arrangement_office_days, ai_remote_location, ai_remote_location_derived | Employment type, weekly hours, on-site, hybrid or remote setup and remote location. |
๐ง ai_experience_level, ai_key_skills, ai_keywords, ai_education, ai_job_language, ai_visa_sponsorship | Seniority, skills, keywords, education, description language and sponsorship signal. |
๐ ai_taxonomies_a, ai_taxonomies_primary | Job categories and the main category. |
๐ description_text, ai_core_responsibilities, ai_requirements_summary | Full description (text or HTML) and short summaries of duties and requirements. |
๐ค ai_hiring_manager_name, ai_hiring_manager_email_address | Hiring contact, only when the posting names one. |
๐ข org_linkedin_name, org_linkedin_industry, org_linkedin_size, org_linkedin_headcount, org_linkedin_website, org_linkedin_slug, org_linkedin_slogan, org_linkedin_followers, org_linkedin_headquarters, org_linkedin_type, org_linkedin_founded_date, org_linkedin_specialties, org_linkedin_locations, org_linkedin_description, org_linkedin_recruitment_agency_derived, org_crunchbase_categories, org_crunchbase_total_investment, org_logo_permalink | Optional company facts such as industry, size, headcount, website, headquarters and founding date. |
๐ฆ compact, raw | A short 12-field summary and the untouched source payload, in the default row shape. |
Fields stay empty when a posting does not publish the data. Company org_* fields are filled only when you pick a company data source.
What can you do with the data from Workday?
๐ฏ Monitor competitor hiring and hiring trends by company
- Add competitor boards to
startUrlsand setpostedAtto7 days. - Keep
trackChangeson and schedule the run daily. - Compare
date_modifiedandmodified_fieldsto see which postings changed.
๐ฐ Benchmark salaries by role
- Turn on
hasSalaryand addtitleSearchterms such asData:*. - Add
locationSearchvalues likeGermany. - Open the Salary & Benefits view and export the pay columns.
๐ Find remote Workday jobs
- Select
Remote OKandRemote SolelyinaiWorkArrangementFilter. - Turn on
aiVisaSponsorshipFilterto keep jobs offering visa sponsorship. - Export the dataset as CSV or Excel for your job board or spreadsheet.
๐ Build job market data by employer
- Paste many employer URLs in
startUrlsand raiseresults_wanted. - Set
outputFormattofullandstatsto on for category counts. - Load the Workday job postings dataset into your database or BI tool as a job aggregator data feed.
๐ข Recruitment lead generation from job postings
- Turn on
includeCompanyDetailsand choose acompanyProvider. - Use
organizationSearchandliOrganizationSizeFilterto target employers. - Export
organization,domain_derivedand theorg_*fields.
How do I use Workday Jobs Scraper?
- Open Workday Jobs Scraper on Apify and click Try for free.
- Paste one or more careers URLs into Careers portal URLs (
startUrls). - Set Jobs to collect (
results_wanted) and leave Open every job for the full description on for complete data. - Add optional filters such as
titleSearch,locationSearch,postedAtorhasSalary. - Click Start and watch jobs appear in the Dataset tab while the run is going.
- Open the Output tab for ready-made views, or export JSON, CSV or Excel from the Dataset tab.
- Schedule the run or call it through the Apify API to keep the data fresh.
You can scrape Workday jobs without code. To scrape myworkdayjobs.com job postings or get all jobs from a Workday site, raise results_wanted and max_pages.
To find a company's Workday careers URL, open the employer's careers page and copy the address when it opens on a myworkdayjobs.com or myworkdaysite.com page.
How much does it cost to scrape Workday?
Workday Jobs Scraper uses pay-per-event pricing: you pay one result event for every job saved to the dataset. Platform usage is billed in addition. Jobs skipped by your filters or that could not be loaded are not charged.
| Plan | Price per job | Per 1,000 jobs |
|---|---|---|
| ๐ Free | $0.005 | $5.00 |
| ๐ฅ Bronze | $0.0045 | $4.50 |
| ๐ฅ Silver | $0.004 | $4.00 |
| ๐ฅ Gold, Platinum and Diamond | $0.0035 | $3.50 |
Each run also pays an Actor start event of $0.00005 per GB of memory, minimum one event. The default memory is 4 GB (4096 MB), so a start costs 4 events = $0.0002.
Example: 100 jobs on the Free plan cost 100 x $0.005 = $0.50, plus the $0.0002 start event, so $0.5002 in event charges. 500 jobs on the Gold plan cost 500 x $0.0035 = $1.75, plus $0.0002, so $1.7502.
If you set a maximum cost per run, the run stops saving jobs when that limit is reached and keeps the jobs already collected.
Is scraping Workday free?
No. Workday Jobs Scraper is billed per saved job at the rate of your Apify plan, from $5.00 per 1,000 jobs on the Free plan down to $3.50 on Gold, Platinum and Diamond. You can control spend with Jobs to collect or a maximum cost per run.
How much does Workday Jobs Scraper cost per 1,000 results?
One thousand jobs cost $5.00 on the Free plan, $4.50 on Bronze, $4.00 on Silver and $3.50 on Gold, Platinum and Diamond, plus the $0.0002 start event for each run. Apify platform usage is billed in addition to these event prices.
Input
Give the Actor one or more Workday careers URLs and, optionally, filters and output settings. Only startUrls is required. Everything else has a default. Search Workday jobs by keyword with titleSearch or descriptionSearch, and filter Workday jobs by posting date with postedAt and startAt.
Portals and limits
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
startUrls | array | Yes | Workday careers URLs: boards, locale paths, hosted boards, search links with ?q= or single-job links. | https://sysco.wd5.myworkdayjobs.com/syscocareers |
results_wanted | integer | No | Total jobs to save across all portals (1 to 500,000). The run never exceeds limit. | 20 |
limit | integer | No | Safety cap on jobs (up to 5,000). The run stops at the lower of this and results_wanted; the Actor raises values below 200 to 200 when the run starts. | 20 |
pagination | integer | No | Board pages to read per portal, 0 for all pages up to the page safety cap. | 0 |
max_pages | integer | No | Page safety cap per portal (1 to 500), 20 jobs per page. | 20 |
details | boolean | No | Open each job for the full description, salary and company. Turn off for a faster listing-only run. | true |
stats | boolean | No | Log live category counts per portal and store them in the run summary. | true |
Search and keyword filters
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
titleSearch | array | No | Keep jobs whose title matches a term. :* gives prefix matching. | Software Engineer, Data:* |
titleExclusionSearch | array | No | Drop jobs whose title matches a term. | Intern |
locationSearch | array | No | Keep jobs in these places, written as City, Region, Country. | Germany |
locationExclusionSearch | array | No | Drop jobs in these places. | London, England, United Kingdom |
locations | array | No | Loose contains match against every location on the job. | Ankeny |
descriptionSearch | array | No | Keep jobs whose title or description mentions a term. | Python:* |
descriptionExclusionSearch | array | No | Drop jobs whose title or description mentions a term. | night shift |
organizationSearch | array | No | Keep jobs posted by these hiring entities. | Sysco:* |
organizationExclusionSearch | array | No | Drop jobs from these hiring entities. | FreshPoint |
domainFilter | array | No | Keep jobs whose company domain matches exactly. | sysco.com |
domainExclusionFilter | array | No | Drop jobs whose company domain matches. | example.com |
postedAt | string | No | Oldest posting date, absolute or relative. | 7 days or 2026-06-01 |
startAt | string | No | Newest posting date to keep. | 2026-07-20 |
Smart job filters
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
aiEmploymentTypeFilter | array | No | FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, OTHER. | ["FULL_TIME"] |
aiWorkArrangementFilter | array | No | On-site, Hybrid, Remote OK, Remote Solely. | ["Remote Solely"] |
aiExperienceLevelFilter | array | No | 0-2, 2-5, 5-10, 10+ years. | ["2-5"] |
aiTaxonomiesFilter | array | No | Keep jobs in any of 40 categories such as Healthcare or Software. | ["Healthcare"] |
aiTaxonomiesPrimaryFilter | array | No | The top category must be one of these. | ["Engineering"] |
aiTaxonomiesExclusionFilter | array | No | Drop jobs touching any of these categories. | ["Retail"] |
aiLanguageFilter | array | No | Description languages to keep. | English |
hasSalary | boolean | No | Keep only postings that publish pay. | false |
aiVisaSponsorshipFilter | boolean | No | Keep only postings that state visa sponsorship. | false |
removeAgency | boolean | No | Drop postings that look like staffing or recruitment agencies. | false |
hasNoLocation | boolean | No | Keep only jobs without a resolved location. Do not combine with location filters. | false |
Company data
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
includeCompanyDetails | boolean | No | Add org_* company fields to each job. | false |
companyProvider | string | No | Company data source from the dropdown. Some sources need your own key. | none |
companyApiKey | string | No | Key for the sources that need one. Stored encrypted. | - |
liIndustryFilter | array | No | Keep companies with an exact, case-sensitive industry. | Retail |
liIndustryExclusionFilter | array | No | Drop companies with these industries. | Staffing |
liOrganizationSizeFilter | array | No | Keep companies in headcount buckets such as 10,001+ employees. | ["10,001+ employees"] |
liOrganizationEmployeesGte | integer | No | Minimum company employees. | 1000 |
liOrganizationEmployeesLte | integer | No | Maximum company employees. | 50000 |
The company filters need a company data source. If none is selected, the Actor skips them and logs a warning so you still get results.
Output shape, speed and extras
| Field | Type | Required | Description | Default / example |
|---|---|---|---|---|
descriptionType | string | No | text for clean text or html for the original description. | text |
outputFormat | string | No | Row shape: all, full, compact or raw. | all |
proxyConfiguration | object | No | Optional connection settings, off by default. | {"useApifyProxy": false} |
browserFallback | boolean | No | Try a second way to load pages that still fail. | true |
concurrency | integer | No | Jobs collected at the same time (1 to 20). | 4 |
requestDelay | number | No | Pause between requests in seconds (0 to 10). | 0.35 |
requestTimeout | integer | No | Seconds to wait before retrying a slow page (5 to 300). | 45 |
maxRetries | integer | No | Attempts per request (1 to 10). | 3 |
llmEnrichment | boolean | No | Also read each description with an AI model using your own key. | false |
llmApiKey | string | No | Your own API key for AI enrichment. Stored encrypted. | - |
llmModel | string | No | Model id used for AI enrichment; a default is preset. | preset |
geocode | boolean | No | Normalise locations into city, region, country and coordinates. | true |
timezoneLookup | boolean | No | Add the timezone of each resolved location. | true |
domainProbe | boolean | No | Work out the employer's own website domain. | true |
trackChanges | boolean | No | Remember each job between runs and fill date_modified and modified_fields. | true |
persistCache | boolean | No | Keep resolved locations between runs for faster repeat runs. | true |
debugLog | boolean | No | Write more detail to the run log. | false |
Input example
{"startUrls": ["https://sysco.wd5.myworkdayjobs.com/syscocareers"],"results_wanted": 50,"titleSearch": ["Data:*", "Software Engineer"],"locationSearch": ["United States"],"postedAt": "30 days","hasSalary": true,"outputFormat": "all","descriptionType": "text"}
Output
Every job goes to the default Apify dataset and is saved the moment it is ready. Export it as JSON, CSV, Excel, XML or HTML from the Console or through the API. The Output tab offers seven table views: Job Overview, Locations & Geo, Salary & Benefits, AI Insights, Company & Employer, Description & Summary and Source & Change tracking.
With the default row shape all, each row holds the full record plus a compact summary and a raw payload. Values below are fake examples.
{"id": 1234567890,"date_posted": "2026-10-01T00:00:00","date_created": "2026-10-17T09:30:00","title": "Senior Data Analyst","organization": "Example Company","organization_url": "https://example.com","date_valid_through": null,"locations_alt": ["Example City, Example Region"],"salary": null,"employment_type": ["Full time"],"url": "https://example.com/careers/job/Example-City/Senior-Data-Analyst_R-0001","source_type": "ats","source": "workday","source_domain": "example.com","source_slug": "example/careers","organization_logo": "https://example.com/logo.png","cities_derived": ["Example City"],"regions_derived": ["Example Region"],"countries_derived": ["United States"],"locations_derived": ["Example City, Example Region, United States"],"timezones_derived": ["America/Chicago"],"lats_derived": [41.6],"lngs_derived": [-93.6],"domain_derived": "example.com","ai_salary_currency": "USD","ai_salary_min_value": 80000,"ai_salary_max_value": 100000,"ai_salary_unit_text": "YEAR","ai_benefits": ["Health insurance", "401(k)"],"ai_experience_level": "5-10","ai_work_arrangement": "Hybrid","ai_key_skills": ["SQL", "Tableau"],"ai_employment_type": ["FULL_TIME"],"ai_job_language": "English","ai_visa_sponsorship": false,"ai_taxonomies_a": ["Data & Analytics"],"ai_taxonomies_primary": "Data & Analytics","date_modified": null,"modified_fields": null,"description_text": "Example description of the role...","org_linkedin_name": null,"org_linkedin_industry": null,"compact": {"title": "Senior Data Analyst","company": "Example Company","requisition_id": "R-0001","locations": "Example City, Example Region","country": "United States","job_type": "Full time","posted_at": "2026-10-01T00:00:00.000Z","posted_on_text": "Posted 16 Days Ago","apply_url": "https://example.com/careers/job/Example-City/Senior-Data-Analyst_R-0001/apply","job_url": "https://example.com/careers/job/Example-City/Senior-Data-Analyst_R-0001","description_text": "Example description of the role...","source": "workday"}}
The raw field keeps the source posting as published. With outputFormat set to compact or raw, each row holds only that part.
At the end of a run, a run-summary record in the key-value store lists the totals:
{"source": "workday","scraped_at": "2026-10-17T09:35:00+00:00","count": 50,"start_urls": ["https://example.com/careers"],"stats": {"duration_seconds": 42.5,"jobs_seen": 120,"jobs_prefiltered_out": 40,"jobs_filtered_out": 30,"jobs_written": 50,"filter_reasons": {"titleSearch": 40},"sites": [{"tenant": "example", "site": "careers", "total_available": 1200, "collected": 50}]}}
Notes and limitations
- Only public job postings are collected, and fields stay empty when a posting does not publish them.
- Salary fields are filled only when the posting states pay, either as structured data or in the description text.
ai_*fields come from built-in text extraction, so treat them as helpful estimates, not verified facts.- Company
org_*fields are empty unlessincludeCompanyDetailsis on and acompanyProvideris selected. - The job count is capped by
results_wantedandlimit, and bymax_pagesper portal (20 pages of 20 jobs by default). Raisemax_pagesfor narrow filters on large boards. - Change tracking compares each job with its saved state from your previous run, so
date_modifiedis empty on the first run. - A job description that is too long to store is shortened so the row can be saved, and the run log says so.
- The dataset views are built for the full record, so some columns are empty when you pick the
compactorrawrow shape.
FAQ
Is it legal to scrape Workday jobs?
Workday Jobs Scraper collects job postings that employers publish publicly on their careers sites. Laws and site terms differ by country, so you are responsible for compliance, including GDPR and CCPA. This is not legal advice. Read Is web scraping legal? and consult a lawyer for your case.
Do I need a Workday account, cookies or an API key?
No. This Workday scraper needs no API key: you only paste public careers URLs, and it needs no Workday login, cookies or Workday API key. A key is needed only for optional extras: your own key for AI enrichment, or for the premium company data sources. The built-in extraction needs no key.
How many jobs can I get per run?
By default the run saves 20 jobs. Raise results_wanted to collect more, up to the limit cap, which allows at most 5,000 jobs per run. Each portal is read up to the max_pages cap, which is 20 pages of 20 jobs by default. Increase max_pages for large boards or narrow filters.
Can I get Workday jobs with salary ranges?
Yes, when the posting states pay. The Actor reads structured salary data and pay mentioned in the description, then fills currency, minimum, maximum and period, for example YEAR or HOUR. Turn on hasSalary to keep only postings that publish pay. Postings without pay information are skipped by that filter.
How do I find a company's Workday careers URL?
Open the employer's careers page and start a job search. If the address opens on a myworkdayjobs.com or myworkdaysite.com page, copy it from the browser into startUrls. You can paste a board link, a search link with a keyword or a single job link, and add many portals in one run.
Can I export Workday jobs to CSV or Excel?
Yes. Open the Dataset tab after the run to download Workday job listings as CSV, Excel, JSON, XML or HTML. The same data is available through the Apify API. Use the Output tab to browse the seven prebuilt table views before you download, then pick the columns you need.
Can I schedule runs and track new job postings between runs?
Yes. Use Apify schedules to run Workday Jobs Scraper daily or weekly, and connect results to tools with webhooks or integrations such as Make, Zapier and n8n. With trackChanges on, a repeat run fills date_modified and modified_fields for postings that changed since the previous run.
Can I use Workday Jobs Scraper with the Apify API or an MCP server?
Yes. Every Apify Actor can be started, scheduled and read through the Apify API, and AI agents can call Actors through Apify's MCP server. The API tab of this Actor shows ready-made request examples, and the full reference is in the Apify API documentation.
Why am I getting fewer jobs than expected?
Check results_wanted and limit first, then your filters, because jobs that fail a filter are skipped. A title filter on a big board may need a higher max_pages. The run-summary record shows how many jobs were seen and filtered out. Some boards also publish fewer open positions than expected.
Workday Jobs Scraper not working?
Check that every URL in startUrls is a public Workday careers link, loosen your filters and run again. If the problem continues, open the Issues tab of this Actor with your run link and a short description. Describe what you expected and what happened so the problem can be reproduced.
Related Actors
| Actor | Use it to |
|---|---|
| ๐ Indeed Job Scraper | Scrape public Indeed job listings from search links or phrases, with salary, workplace type, benefits and skills. |
| ๐ Website Lead Intelligence | Turn a list of company websites into a scored outreach list with verified emails and named decision-makers. |
Support and disclaimer
Found a bug or need a feature? Open an issue in the Issues tab. For custom solutions, integrations or questions, contact hello.dataminds@gmail.com. Workday Jobs Scraper is independent and not affiliated with Workday, Inc.; Workday and other trademarks belong to their owners. It collects publicly available data, and you are responsible for complying with applicable laws and the terms of the sites you use. Learn more about Workday at workday.com.
Last updated: 2026-10-17