Workday Jobs Scraper API - By Company Name, No Login avatar

Workday Jobs Scraper API - By Company Name, No Login

Pricing

from $1.20 / 1,000 jobs

Go to Apify Store
Workday Jobs Scraper API - By Company Name, No Login

Workday Jobs Scraper API - By Company Name, No Login

Scrape all open jobs from Workday career sites (myworkdayjobs.com) by company name or URL (NVIDIA, Salesforce, Intel), even sites with 2,000+ jobs, or search 5,000+ Workday sites by keyword. Title, location, remote and date filters, new & closed job feed. No login. $1.50 per 1,000 jobs.

Pricing

from $1.20 / 1,000 jobs

Rating

0.0

(0)

Developer

HireWatch

HireWatch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Workday Jobs Scraper API: any Workday career site, by company name

Get all open jobs from any Workday career site (*.myworkdayjobs.com and *.myworkdaysite.com) as clean JSON, CSV or Excel, with no login and no API key. Type a company name found in the built-in directory of 5,027 verified Workday career sites (e.g. NVIDIA, Intel) or paste any Workday URL, or search all of those sites at once by job title, location and remote. It works even for sites with more than 2,000 jobs, where Workday's own search stops, and every run labels jobs new / unchanged / closed, so a daily schedule becomes a new-jobs feed. Works from the Apify API and from AI agents through MCP.

Independent tool: not affiliated with, endorsed by or sponsored by Workday, Inc. "Workday" is used only to describe which career sites this works with.

Two ways to use it

  1. Name the companies. Type company names, website domains or job-board URLs, and get every open job at those companies.
  2. Search all companies. Turn on searchAllCompanies and the Actor searches a built-in directory of 5,027 verified Workday career sites, biggest employers first, with your filters: title keywords, location, remote only, posted date and minimum salary. It works like a live job search API across company career sites. There's no cached database: every board is read at run time, so closed jobs never show up.
{
"searchAllCompanies": true,
"titleKeywords": ["data scientist"],
"locationKeywords": ["Remote", "United States"],
"minSalary": 100000,
"salaryCurrency": "USD",
"postedWithinDays": 14,
"maxItems": 200
}
  • maxCompanies sets how many boards are searched (default 100, about 1–3 minutes). Raise it for wider coverage.
  • Search-all runs stop at maxItems matching jobs (500 if you leave it at 0) and output job rows only, without company summaries.
  • On Workday sites the Actor uses Workday's own keyword search with your title keywords and reads at most 100 jobs per site, so a search stays fast.
  • Every board in the directory was checked live against its public jobs API on 2026-10-20 and had at least one open job. Boards that close later are skipped and listed in RUN_REPORT, so they never fail the run.
  • For a daily new-jobs feed, schedule a search with "outputMode": "changesOnly". After the first run, each run returns only jobs that are new (or closed) since the previous one.

How to scrape Workday jobs

  1. Click Try for free (or Start) on this page. Apify's free plan includes monthly credit, so a first test costs nothing.
  2. In Companies, type company names, domains or careers-page URLs, e.g. NVIDIA and Salesforce. Or leave it empty and turn on Search all companies.
  3. Optional: add title keywords, location keywords, remote only, posted within N days or a minimum salary.
  4. Click Start. Small runs finish in seconds; a whole large company takes a few minutes.
  5. Download the jobs as JSON, CSV, Excel or HTML, or read them through the API. Add a schedule to get new jobs every day.

What you can use it for

  • Sales and recruiting signals. See which accounts are hiring, in which departments, and how fast.
  • Job boards and aggregators. Pull complete listings straight from the employer's own site.
  • Market and competitor research. Track open headcount by location and job family over time.
  • Candidates and career tools. Get new roles at target companies the day they're posted.

Why this Workday scraper

  • Gets past the 2,000-job cap. Workday search only reaches the first 2,000 results. This Actor splits big sites by job family or location and merges the slices without duplicates. In our test on Oct 11, 2026 it retrieved all 2,675 NVIDIA jobs.
  • Filters: title keywords, location keywords, remote only, posted within N days, max jobs per company, and an overall maxItems cap. When you ask for descriptions, filtered-out jobs are skipped before the slow detail request.
  • New / closed tracking between runs, plus an optional hiring-signal summary per company: open jobs, new and closed jobs, trend, jobs posted in the last 7 and 30 days, top departments and locations.
  • Full descriptions (optional): description text and HTML, requisition ID, hiring legal entity, all locations, country, time type (full/part time), remote type and exact start date.
  • Polite and reliable. It uses the same public job-listing data the career page loads in your browser. No login, no browser automation, robots.txt respected, at least 1 second between requests to a site, and retries with back-off. Contact details are never collected, and e-mails and phone numbers in descriptions are masked.
  • Clear errors. A wrong or stale URL is reported for that company only, in the status message and RUN_REPORT.

By company name or by URL

Most large Workday employers can be named directly: the Actor matches the name against 5,027 Workday career sites that were verified live on 2026-10-20 (matching is on the site's Workday name, e.g. nvidia, intel, salesforce). If a name isn't found, the run report says so: open the company's careers page, click "Search jobs", and copy the URL from your browser. It looks like https://<company>.wd5.myworkdayjobs.com/<SiteName>. A link to a single job, or a careers page that links to Workday, also works.

CompanyURL
NVIDIAhttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
Salesforcehttps://salesforce.wd12.myworkdayjobs.com/External_Career_Site
Intelhttps://intel.wd1.myworkdayjobs.com/External
Capital Onehttps://capitalone.wd12.myworkdayjobs.com/Capital_One

Want a nicer company name in the output? Write Name | URL, e.g. NVIDIA | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite.

Input examples

Every open job at two companies:

{
"targets": [
"NVIDIA | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite",
"Intel | https://intel.wd1.myworkdayjobs.com/External"
],
"maxJobsPerCompany": 0
}

Engineering roles posted this week, with descriptions:

{
"targets": ["https://intel.wd1.myworkdayjobs.com/External"],
"maxJobsPerCompany": 0,
"titleKeywords": ["engineer"],
"postedWithinDays": 7,
"includeDescriptions": true
}

Daily change feed (schedule it daily):

{
"targets": ["https://salesforce.wd12.myworkdayjobs.com/External_Career_Site"],
"maxJobsPerCompany": 0,
"outputMode": "changesOnly"
}

Output

One row per job (real example from a test run, trimmed):

{
"recordType": "job",
"platform": "workday",
"companySlug": "intel",
"companyName": "intel",
"careerSite": "External",
"jobId": "JR0284988",
"requisitionId": "JR0284988",
"legalEntity": "100 Intel Corporation",
"globalId": "workday:intel:External:JR0284988",
"title": "Senior Member of Technical Staff, Thin Films Engineer",
"employmentType": "full_time",
"location": "US, Oregon, Hillsboro",
"locations": ["US, Oregon, Hillsboro", "US, Arizona, Phoenix"],
"country": "United States of America",
"postedAt": "2026-10-08",
"postedAtText": "Posted 3 Days Ago",
"url": "https://intel.wd1.myworkdayjobs.com/External/job/US-Oregon-Hillsboro/...",
"descriptionText": "Job Details: ...",
"changeStatus": "new",
"firstSeenAt": "2026-10-11T23:13:00Z"
}

Every row has the same fields (missing values are null). globalId stays the same across runs, so use it as your key. changeStatus is new, unchanged or closed (with closedAt). Optional company_summary rows hold the hiring signals, which are also saved as COMPANY_SUMMARIES in the key-value store. A per-company RUN_REPORT shows status and errors.

Pricing (pay per event)

  • $1.50 per 1,000 job records on the Free plan, $1.40 on Bronze, $1.30 on Silver and $1.20 on Gold and higher Apify plans (per job, including jobs labelled closed)
  • $0.01 per company summary (optional; turn off includeCompanySummary to skip it)

Examples: all ~2,700 NVIDIA jobs ≈ $4.06. A daily changes-only feed for 20 companies with ~100 changed jobs a day ≈ $0.35 per day. You pay only for results. Set Maximum cost per run (or maxItems) to cap spending. The run stops cleanly at the cap.

Tips & limits

  • Speed: listings are fast, about 20 jobs per request, so ~2,700 jobs take about 2–3 minutes. Descriptions need one extra request per job (about 1 per second per site), so combine them with title or date filters.
  • Posted dates are approximate without descriptions ("Posted 3 Days Ago", "Posted 30+ Days Ago"). The original text is kept in postedAtText.
  • Remote type is only known when descriptions are on, or when the location says "Remote".
  • Closed jobs are only reported when the whole site was fetched in both runs, so use maxJobsPerCompany: 0 for tracking.

Use with AI agents / MCP

This Actor is built to be called by AI agents (Grok Bot, Claude, ChatGPT, Cursor, LangChain and others) through the Apify MCP server or the Apify API.

  • Add only this tool: https://mcp.apify.com?tools=hirewatch/workday-jobs-scraper. You can also let your agent find it through search-actors.
  • Keep calls small so they finish fast. The MCP call-actor tool waits up to 45 seconds, so set maxItems (e.g. 50) and maxJobsPerCompany (e.g. 100), and leave includeDescriptions off unless you need the text. Cap spend with maxTotalChargeUsd in callOptions.
  • Read results with get-dataset-items using the run's datasetId. Each row has recordType: job rows share one flat schema, and company_summary rows hold the hiring signals. Per-company errors are in the RUN_REPORT key-value record, so one bad input never fails the whole run.
  • Pay without an Apify account. The Actor uses pay-per-event pricing with limited permissions, so agents can pay per run with agentic payments (x402 / MPP prepaid tokens or Skyfire).

Job search across many companies (no company names needed; maxCompanies: 20 keeps it to roughly 30 seconds, inside the MCP 45-second wait):

{"searchAllCompanies": true, "titleKeywords": ["data engineer"], "remoteOnly": true, "maxCompanies": 20, "maxItems": 50}

Minimal agent call for named companies:

{
"targets": [
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
],
"titleKeywords": [
"machine learning"
],
"maxJobsPerCompany": 200,
"maxItems": 50,
"includeCompanySummary": false
}

Other HireWatch jobs Actors

ActorBest for
Workday Jobs ScraperWorkday career sites (*.myworkdayjobs.com) by company name or URL, including sites with more than 2,000 jobs
Greenhouse Jobs ScraperGreenhouse boards by company name or domain, with published salary ranges
Lever Jobs ScraperLever boards (jobs.lever.co) by company name or domain, with salaries and remote/hybrid type
Ashby Jobs ScraperAshby boards (jobs.ashbyhq.com), popular with startups and AI companies, with salary ranges
Workday, Greenhouse, Lever, Ashby & Oracle Jobs ScraperMixed lists across all five platforms in one run and one schema, plus job search across all of them
Website Tech Stack Detector + DMARC/SPF CheckerFind out what the hiring companies' websites are built with

All of them use the same output schema and the same new/closed tracking, so you can combine their datasets.

How much does it cost to scrape Workday jobs?

You pay only for job records in your dataset. There is no monthly fee and no charge for jobs your filters remove.

Job recordsFree plan ($1.50 / 1,000)Gold+ plans ($1.20 / 1,000)Typical use
100$0.15$0.12a quick check of one company
1,000$1.50$1.20every job at a few mid-size companies
10,000$15.00$12.00a weekly market-wide search
100,000$150.00$120.00a large job board backfill

Optional company summaries cost $0.01 each. Set Maximum cost per run in the run options (or maxItems) and the run stops cleanly at your budget.

Integrations and API

Run it from your own code, a no-code tool or a schedule:

  • Schedules: run daily or hourly from the Schedules tab, with "outputMode": "changesOnly" for a new-jobs feed.
  • No-code: Make, Zapier, n8n, Google Sheets, Slack, Airbyte and webhooks are available under Integrations.
  • Export: JSON, CSV, Excel, XML, RSS or HTML from the dataset, or stream rows through the API.
  • AI agents: use it as an MCP tool (see below).

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("hirewatch/workday-jobs-scraper").call(run_input={"targets": ["NVIDIA", "Salesforce"], "maxItems": 100})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job["location"], job["url"])

JavaScript / Node.js (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('hirewatch/workday-jobs-scraper').call({ targets: ['NVIDIA', 'Salesforce'], maxItems: 100 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

cURL (runs the Actor and returns the jobs in one request):

curl -X POST "https://api.apify.com/v2/acts/hirewatch~workday-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"targets": ["NVIDIA"], "maxItems": 50}'

FAQ

How do I get all open jobs at a company? Put its name in targets, e.g. ["NVIDIA", "Intel"], and set maxJobsPerCompany to 0. A careers-page URL or the company's website domain works too.

Can I search jobs without knowing the companies? Yes. Turn on searchAllCompanies and add title keywords, a location or a minimum salary. The Workday Jobs Scraper searches the built-in directory of verified boards.

Do I need a login, cookies or an API key for the job site? No. Only public job postings are read, the same data the company's careers page shows to every visitor.

Can I get only new jobs every day? Yes. Schedule the Actor with "outputMode": "changesOnly". Each run then returns jobs that are new or closed since the previous run.

Can I filter by salary? Yes. minSalary (yearly; hourly and monthly pay is converted, full time), salaryCurrency and onlyWithSalary keep only jobs that publish pay.

How do I use it from code or an AI agent? Call hirewatch/workday-jobs-scraper through the Apify API with the JSON input shown above or the Apify MCP server. See the AI agents section above.

Is there an official Workday jobs API? Workday has no documented public jobs API for job seekers; each career site loads its jobs from its own JSON feed, which needs the exact host, data-centre number and site name. This Actor finds the board from a company name, reads it, and returns one clean schema with salaries, filters and new/closed tracking.

How is this different from LinkedIn or Indeed scrapers? Jobs come straight from the employer's own careers site, so they are complete, up to date and free of reposts and recruiter spam, and closed jobs are flagged closed on the next run.

Can I export to Excel or Google Sheets? Yes. Download CSV or Excel from the dataset, or use the Google Sheets integration to append new jobs automatically.

It reads only publicly available job postings, which employers publish so they can be found. It does not log in or bypass any access control, and it follows robots.txt. Job postings are not personal data, but you are responsible for how you use the results and for following the laws and site terms that apply to you.

Support

A Workday site that doesn't work? Open an issue on the Issues tab with the URL.