Workday Jobs Scraper: $0.10 per Company, Up to 1,000 Jobs avatar

Workday Jobs Scraper: $0.10 per Company, Up to 1,000 Jobs

Pricing

from $70.00 / 1,000 company lookups

Go to Apify Store
Workday Jobs Scraper: $0.10 per Company, Up to 1,000 Jobs

Workday Jobs Scraper: $0.10 per Company, Up to 1,000 Jobs

Reads every open job from the Workday career sites you name, such as Intel, Adobe and Salesforce, live where robots.txt allows. Flat $0.10 per company, up to 1,000 jobs included. Title, department, location, posted date, link. MCP-ready. No login or API key.

Pricing

from $70.00 / 1,000 company lookups

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Workday Jobs Scraper & API gets every open job on the Workday career sites (myworkdayjobs.com) of the companies you name, read live during your run, where the site's robots.txt allows it: title, department, location, job type, posted date and link. Paste career site links. You pay $0.10 per company, with up to 1,000 jobs included, and there is no API key or login.

The prefilled input reads three large career sites (Intel, Adobe, Salesforce) and costs $0.30 in total; a test run on 27 September 2026 returned 2,690 jobs in 51 seconds. The price is flat per company ($0.09 on the Scale plan, $0.07 on Business). Per job, that is $2 per 1,000 jobs for a company with 50 open jobs, $0.50 for one with 200, and $0.10 for one with 1,000. To get only new and closed jobs, save the input as a task and schedule it. You bring the companies.

What the Workday jobs scraper returns

  • Department. department and departmentPath are the job category the site lists the job under, when it has one.
  • Location. location as the site shows it; a job in several places shows its first place and how many more, and with descriptions every place.
  • Workplace type. workplaceType is the site's remote type, else read from the location, and remote is true only for fully remote jobs.
  • Job type. employmentType is Workday's time type, such as "Full time".
  • Posted date. postedAt is the day the site shows, such as "Posted 3 Days Ago". For jobs 30 or more days old it is null, unless you add descriptions.
  • Links. url and applyUrl are the job page.
  • Descriptions need one request per job: $0.01 per started 200 jobs described (jobDetailBlocksCharged), and runs take longer.
  • Salary. Workday has no pay field. Pay written in a description fills salaryMin, salaryMax, salaryCurrency, salaryPeriod, salarySource and salaryRanges.
  • Large sites. Sites with more than 2,000 open jobs are read in full, not cut at 2,000.

How to scrape Workday jobs, step by step

  1. In Companies (companies), paste Workday career site links (with myworkdayjobs.com or myworkdaysite.com in them) or company websites, up to 500. A job link reads the whole site.
  2. Set filters if you need them, such as Title includes, Location or Posted since, and turn on Include job description for the full text.
  3. Run it. Each company costs $0.10, with up to 1,000 jobs included, charged when we contact its Workday site. Descriptions cost $0.01 per started 200 jobs described. Sites whose robots.txt does not allow us are free.
  4. Open the Jobs view of the results. Set Rows to return (outputMode) to companies for one summary row per company instead.
  5. To repeat it, save the input as a task and schedule it, as in Get only new and closed Workday jobs on a schedule.

If a job's address on the company's careers page contains myworkdayjobs.com or myworkdaysite.com, paste it: a job link reads the whole site. A search link keeps its filters; an employer's own domain is not recognised.

Or paste the company's website, and we look for its Workday link there. A plain name works only for employers in our directory; one that is not there is not_found and free, because no Workday site is contacted. matchedBy says how the site was found, and companySlug is its host and name.

Which sites are read

Each employer decides for its own site: we read its robots.txt first, and a site that does not allow us returns unsupported_job_board, free. We keep the load low, with at most 2 requests at a time per site.

Fields on every job

jobId (ends with the requisition number), jobKey (the same in every run), countryCode, country, city and region from the location text, locations and countryCodes, seniority and jobFunction from the title, employmentTypeNormalized (such as full_time), language (read from the description, else the title), and salaryAnnualMin and salaryAnnualMax (hour x 2,080, day x 260, week x 52, month x 12). With descriptions: description without contact details, the tools it names, experienceYearsMin, experienceYearsMax, experienceLevel, educationMin, educationRequired, visaSponsorship, visaSponsorshipText and securityClearance. Rows also have the city's latitude, longitude and timeZone, remoteRegions, and ukVisaSponsor with ukSponsorRoutes.

Filters

Filters lower the price above 1,000 jobs, and only matching jobs are described.

  • Words and places: titleIncludes and titleExcludes (whole words), department, location (a country name or code, else whole words), locationExcludes, remoteOnly, remoteRegions, and near with radiusKm (distance from one city).
  • Values: workplaceTypes, employmentTypes, seniorities and jobFunctions.
  • Dates: postedSince and postedBefore (a date or a period such as 7 days).
  • From the description (they turn on includeDescription and its price): languages, hasSalary, minAnnualSalary in minAnnualSalaryCurrency (no exchange rates), descriptionIncludes, skills (sets matchedSkills), maxExperienceYears and visaSponsorship. descriptionFormat picks text, html or markdown.
  • Size: maxJobsPerCompany keeps the newest jobs.

A job without the value a filter needs is left out, and warning counts them. startUrls and urls are other names for companies. excludeCompanies leaves companies out. ukVisaSponsorOnly keeps UK visa sponsors.

Input example

This is the input the form is filled in with when you open the Actor, as JSON. Paste it into the JSON tab of the input, or send it as the run input through the API. Fields you leave out keep their defaults. It reads the Workday jobs of the companies listed in companies.

{
"companies": [
"https://intel.wd1.myworkdayjobs.com/External",
"https://adobe.wd5.myworkdayjobs.com/external_experienced",
"https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"
]
}

What a real run returned

On 27 September 2026 I gave the Actor three Workday career sites (Intel, Adobe and Salesforce) with every filter off. It finished in 51 seconds and returned 2,690 jobs: 602 from Intel, 566 from Adobe and 1,522 from Salesforce. All three companies came back with the status "ok". Intel and Adobe each fit in one company lookup. Salesforce has more than 1,000 jobs, so it needed one extra 1,000-job block. At the Free-plan prices in the table below that is 3 lookups at $0.10 plus 1 extra block at $0.05, or $0.35 for 2,690 jobs.

The first six rows, all from Adobe, newest first:

TitleLocationPostedJob functionSeniority
Data Scientist, Adobe.comSan Francisco (+1 more)2026-09-25datanot given
Senior Creative ProducerNew York2026-09-25marketingsenior
Forward Deployed EngineerSan Jose2026-09-24engineeringnot given
Software Development EngineerLehi (+2 more)2026-09-24engineeringnot given
2027 University Graduate - Machine Learning EngineerSan Jose (+6 more)2026-09-24dataentry
2027 University Graduate - Software EngineerSan Jose (+5 more)2026-09-24engineeringentry

In the first 50 rows, every row had a location, a posting date, a department, a job function and a link to the posting. 58% had a seniority level. None of the 50 had a salary, a work type or an employment type, so those columns were empty. When a job lists several offices, the location shows the first one and how many more there are, as in "San Jose (+6 more)".

Workday career sites to start with

These 25 career site links answered a check on 3 October 2026 and their robots.txt allows the site. Paste any of them into Companies (companies), or copy the example below. Companies change their links now and then, and a link that stops working returns not_found.

CompanyCareer site link
Adobehttps://adobe.wd5.myworkdayjobs.com/external_experienced
Analog Deviceshttps://analogdevices.wd1.myworkdayjobs.com/External
Applied Materialshttps://amat.wd1.myworkdayjobs.com/External
Autodeskhttps://autodesk.wd1.myworkdayjobs.com/Ext
Broadcomhttps://broadcom.wd1.myworkdayjobs.com/External_Career
Cadence Design Systemshttps://cadence.wd1.myworkdayjobs.com/External_Careers
Cienahttps://ciena.wd5.myworkdayjobs.com/Careers
Ciscohttps://cisco.wd5.myworkdayjobs.com/Cisco_Careers
Expedia Grouphttps://expedia.wd108.myworkdayjobs.com/search
F5https://ffive.wd5.myworkdayjobs.com/f5jobs
Hewlett Packard Enterprisehttps://hpe.wd5.myworkdayjobs.com/Jobsathpe
HP Inc.https://hp.wd5.myworkdayjobs.com/ExternalCareerSite
Intelhttps://intel.wd1.myworkdayjobs.com/External
KLAhttps://kla.wd1.myworkdayjobs.com/Search
Marvell Technologyhttps://marvell.wd1.myworkdayjobs.com/MarvellCareers
Microchip Technologyhttps://microchiphr.wd5.myworkdayjobs.com/External
Micron Technologyhttps://micron.wd1.myworkdayjobs.com/External
Motorola Solutionshttps://motorolasolutions.wd5.myworkdayjobs.com/Careers
NVIDIAhttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
NXP Semiconductorshttps://nxp.wd3.myworkdayjobs.com/careers
PayPalhttps://paypal.wd1.myworkdayjobs.com/jobs
Red Hathttps://redhat.wd5.myworkdayjobs.com/Jobs
Salesforcehttps://salesforce.wd12.myworkdayjobs.com/External_Career_Site
Trimblehttps://trimble.wd1.myworkdayjobs.com/TrimbleCareers
Zillow Grouphttps://zillow.wd5.myworkdayjobs.com/Zillow_Group_External

Example input with five of them:

{
"companies": [
"https://autodesk.wd1.myworkdayjobs.com/Ext",
"https://cisco.wd5.myworkdayjobs.com/Cisco_Careers",
"https://intel.wd1.myworkdayjobs.com/External",
"https://paypal.wd1.myworkdayjobs.com/jobs",
"https://redhat.wd5.myworkdayjobs.com/Jobs"
]
}

How much does the Workday jobs API cost?

EventPriceWhat you get
Company lookup (company-lookup)$0.10 (Scale $0.09, Business $0.07)One company's job list, up to 1,000 jobs, also a first check with Only new jobs
Extra 1,000 jobs (extra-1000-jobs)$0.05 (see the Store page)Each further 1,000 job rows of a company, or part of them
Description block (job-details)$0.01Descriptions of 200 jobs, or part of them
New jobs check (new-jobs-check)$0.002A later check with Only new jobs, per started 1,000 open jobs on the site

So 100 companies cost $10 ($7 on the Business plan). A daily Only new jobs check of them then costs $0.20.

A website that links no job board costs the company price. A company over your spending limit is not charged.

Get only new and closed Workday jobs on a schedule

Turn on Only new jobs since my last check (onlyNewJobs), save the input as a task, and schedule it. The first check returns the full list for the company price. Later checks return new and closed jobs (change, alertText) for $0.002 per started 1,000 open jobs on the site, and describe only new jobs.

Alert webhook URL (alertWebhookUrl) posts to Slack, Teams, Make, Zapier or n8n after a check with changes (alertMaxJobs, alertOnFirstCheck).

Rows have firstSeenAt, closed rows closedAt and daysOpen. reposted marks a new job matching one closed within 30 days; skipReposts leaves those out (skippedRepostsCount, skippedReposts). includeUpdatedJobs adds changed jobs, with changedFields and previous. Each monitorName keeps its own memory in your Apify account.

Integrations

Save your input as a task first: turn on Only new jobs since my last check, give it a Monitor name, and add a schedule. Each scheduled run then returns the new and closed jobs, with change set to new or closed.

Google Sheets. On your saved task's Integrations tab, add the Google Sheets Import & Export Actor, connect Google, pick a spreadsheet and set Mode to append. Each scheduled run adds its jobs as new rows, and the change column tells you which are new and which closed.

n8n. Add a Schedule Trigger, then the Apify node with Actor tasks and Run Task and Get Dataset, and pick your saved task. The node waits for the run and passes on each job as one item.

Make. The Apify app runs your task with Run a Task, and Get Dataset Items reads its jobs. To react to scheduled runs, start with Watch Task Runs.

Zapier. The Apify app has a Finished task run trigger and a Run Task action. Add Fetch dataset items to pass the jobs to the next step.

Webhooks. For a ready message, paste a Slack, Discord, Teams, Make, Zapier or n8n incoming webhook link into Alert webhook URL. It posts only after a check with new or closed jobs. To start your own system instead, add an HTTP webhook for Run succeeded on the task's Integrations tab. Apify then sends each run's details to your URL, including the defaultDatasetId that holds its jobs.

For AI agents

Use it to answer "is company X hiring for Y right now?" for companies on Workday. Input (companies, up to 500):

{"companies": ["https://intel.wd1.myworkdayjobs.com/External", "https://adobe.wd5.myworkdayjobs.com/external_experienced"], "jobFunctions": ["engineering"], "postedSince": "7 days", "maxJobsPerCompany": 50}

Output, one row per job: company, companyStatus, title, department, location, workplaceType, employmentType, jobFunction, postedAt, url and more, plus description with includeDescription. A company with no jobs gets a status row saying why.

Price: $0.10 per company with up to 1,000 jobs, charged when we contact its Workday site, also when that site is not_found; $0.01 per started 200 jobs described. More in How much does the Workday jobs API cost?. Sites whose robots.txt does not allow us, invalid entries, duplicates and other job boards are free.

Many companies, or companies on different job boards? ATS Jobs API reads Workday and 21 other job boards in one run for $0.045 per company.

Use it from Claude, Cursor or another AI agent (MCP)

The Apify MCP server lets an AI agent call this Actor as a tool. Add it with this server link:

https://mcp.apify.com?tools=conserving_celerytop/workday-jobs-api

In Claude Desktop, Cursor or another MCP client, add a server with that link as its url, for example {"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=conserving_celerytop/workday-jobs-api"}}}. Sign in with your Apify account when the client asks (OAuth is the way the Apify docs recommend; a token header is the other option, see the Apify MCP server docs). You need an Apify account to run Actors. The Actor then shows up as its own tool.

Then ask in plain words, for example: "Which data engineer jobs did Adobe post on Workday in the last 7 days?" The agent fills in the input, such as:

{"companies": ["https://adobe.wd5.myworkdayjobs.com/external_experienced"], "titleIncludes": ["data engineer"], "postedSince": "7 days", "maxJobsPerCompany": 50}

Useful input fields for an agent: companies (Workday career site links or company websites), titleIncludes, location, jobFunctions, postedSince, maxJobsPerCompany (20 is enough for a quick question), includeDescription (adds the job text and pay written in it), onlyNewJobs (new and closed jobs since the last check) and outputMode (companies for one summary row per company). The Actor returns one row per job with company, companyStatus, title, department, location, postedAt and url. A company with no jobs returns a status row that says why. Each run costs $0.10 per company, with up to 1,000 jobs included; see How much does the Workday jobs API cost?. A test run on three large career sites took 51 seconds.

Output

A job row for a job on Intel's site on 26 September 2026, shortened. Unknown values are null.

{
"rowType": "job",
"company": "https://intel.wd1.myworkdayjobs.com/External",
"ats": "workday",
"companyStatus": "ok",
"charged": true,
"jobId": "Senior-Business-Development-Manager_JR0287384",
"title": "Senior Business Development Manager",
"location": "US Washington DC (+2 more)",
"postedAt": "2026-09-25T00:00:00.000Z",
"url": "https://intel.wd1.myworkdayjobs.com/External/job/US-Washington-DC/Senior-Business-Development-Manager_JR0287384",
"applyUrl": "https://intel.wd1.myworkdayjobs.com/External/job/US-Washington-DC/Senior-Business-Development-Manager_JR0287384"
}

Set Rows to return (outputMode) to companies for one summary row per company, or both. rowType is job, company or status. Summary rows have boardUrl, openJobs, jobsPostedLast7Days, jobsPostedLast30Days, jobsOpenOver90Days, newestPostedAt, oldestPostedAt, remoteJobs, remoteShare, engineeringShare, salesShare, salaryCoverage, salaryMedians, medianSalaryMin, medianSalaryMax, medianSalaryCurrency, medianSalaryPeriod, topDepartments, topLocations, countries, seniorityCounts, functionCounts, functionCountsLast30Days, leadershipRoles and firstHireRoles. Descriptions add topTools, toolCoverage, visaSponsorshipShare and medianExperienceYearsMin. Only new jobs adds newJobs, closedJobs, updatedJobs, repostedJobs, medianDaysOpen, newFunctions, newCountries and previousCheckAt.

The COMPANIES record has each company's status, with inputDomain, careerPageSource, fetchedAt, error, chargedEvent, chargedEventCount, extraJobBlocksCharged, upstreamCalls, companyTotalOpenJobs, companyMatchedJobs, companyJobsReturned, companyJobsWithoutDate, newJobsCount, closedJobsCount, updatedJobsCount and firstCheck.

Statuses and charges

companyStatusMeaningCharged
ok, no_matching_jobs, no_open_jobsThe site was readYes
not_foundWorkday has no career site at this linkYes, when we contacted Workday; free for a plain name that is not in our directory
source_errorWorkday failed or did not answerYes
no_job_board_foundThe website links no job boardYes
unsupported_job_boardAnother job board, a site whose robots.txt refuses us, or a blocklisted employer. error says whyNo
website_unavailableWe could not read the websiteNo
invalid_input, duplicateNot a link, website or name, or the same site as another entryNo
skipped_time_limit, skipped_spending_limitOut of time, or over your spending limitNo
skipped_client_disconnectedOnly in Live Jobs HTTP API. Your client disconnected firstNo
internal_errorSomething failed on our sideOnly if it happened after we read the site

Other job boards: ATS Jobs API and more

This Actor reads only Workday. The same list of companies works in our other job Actors:

Closest to this one:

More Actors from the same developer:

Job data

Company and salary research

Content, media and research

FAQ

Is this an official Workday API, and is it legal to use? No. It reads the public job lists each Workday career site shows to visitors, where the employer's robots.txt allows it, and never apply or login pages. A site whose robots.txt does not allow us returns unsupported_job_board, free, and we keep to at most 2 requests at a time per site. It is not affiliated with or endorsed by Workday, Inc. or any employer whose site it reads. Workday is a trademark of its owner. It is built for job data, not personal data: descriptions come without email addresses, phone numbers or profile links. We cannot give legal advice, so check that your use follows the laws and terms that apply to you. An employer that does not want its site read can open an issue on the Issues tab, and we add it to our blocklist.

How fresh are the jobs, and can I get alerts? Every run reads each company's Workday site at the time you run it, so you get the jobs the site shows at that moment. fetchedAt is when the lookup started. postedAt is the posting day the site shows, such as "Posted 3 Days Ago", to the day. For jobs posted 30 or more days ago the site's list gives no day, so postedAt is null unless you turn on Include job description. With no date filter you get every open job, whatever its posting date; Posted since leaves out jobs that have no posting date. For new jobs every day, turn on Only new jobs since my last check (onlyNewJobs), save the input as a task and schedule it. The first check of a company returns its full list for the company price. Later checks return new and closed jobs for $0.002 per started 1,000 open jobs on the site, and alertWebhookUrl can post them to Slack, Discord, Teams, Make, Zapier or n8n. More in Get only new and closed Workday jobs on a schedule.

Will I get duplicates or reposted jobs? A site you enter twice is read and charged once: the second entry gets the status duplicate, free. Each job is one row, also when it is open in several places: location shows the first place and how many more, such as "San Jose (+6 more)". Every job has a jobKey that stays the same in every run. With Only new jobs, a job comes once as new, and once more as closed when it is taken down. A job put up again under a new id comes as new with reposted set to true when a job with the same title and location closed in the last 30 days. Turn on Skip reposted jobs (skipReposts) to leave those out.

How many jobs does one company return, and what does it cost? One company lookup is $0.10 and includes up to 1,000 jobs. Each further block of up to 1,000 jobs costs $0.05. In the run on 27 September 2026, Intel (602 jobs) and Adobe (566) each fit in one lookup, and Salesforce (1,522) needed one extra block, so 2,690 jobs cost $0.35 at the Free-plan price. To stay at the base price, set Max jobs per company (maxJobsPerCompany) to 1,000 or less: it keeps the newest jobs. Without it you get all jobs, up to 10,000 per company. Rows to return (outputMode) set to companies gives one summary row per company and never adds the extra charge. Descriptions cost $0.01 per started 200 jobs described, and only when you ask for them.

Can I search all Workday jobs by keyword? No. You bring the companies: Workday career site links or company websites, up to 500 per run. A plain name works only for employers in our directory. Filters like Title includes, Department, Location and Posted since then pick jobs inside those companies. Each company costs the company price, also when no job matches. To search the open jobs of 824 tech, AI, remote-first and startup companies by keyword, use Tech Jobs Search. If you do not know which job board a company uses, ATS Jobs API reads Workday and 21 other job boards in one run.

How do I find a company's Workday link, and what does a result with no jobs mean? Open any job on the company's careers page. If its address contains myworkdayjobs.com or myworkdaysite.com, paste it: a job link reads the whole site. You can also paste the company's website, and we look for its Workday link there; matchedBy says how the site was found. The site name after the host, such as /External, is part of the link, so paste the full link. If a name returns not_found, Workday has no career site at that link, or the plain name is not in our directory. When a company has nothing to return, it gets one row with rowType status, and companyStatus says why: no_open_jobs means the site was read and has no open jobs, no_matching_jobs means it has jobs but none pass your filters, and no_job_board_found means the website links no job board. These are charged, because we read the site or the website. A plain name that is not in our directory is not_found and free, because no Workday site is contacted. A link to another job board is unsupported_job_board, free. All statuses are in Statuses and charges.

Why is the salary empty? Workday has no pay field, so pay can only come from the job text. Turn on Include job description ($0.01 per started 200 jobs described), and pay written in a description fills salaryMin, salaryMax, salaryCurrency, salaryPeriod and salaryRanges. salarySource is text when the pay was read from the description. Without descriptions these fields stay empty: none of the first 50 rows in the 27 September 2026 run had a salary. To keep only jobs with pay, turn on Only jobs with a salary (hasSalary), which also turns on descriptions and their price.

Found a problem? Open an issue on the Issues tab.

Related Actors. Live Jobs HTTP API returns jobs in one HTTP response, at its own prices plus platform usage.