Workday Jobs Monitor — Change Tracking + Hiring Signal Score avatar

Workday Jobs Monitor — Change Tracking + Hiring Signal Score

Pricing

from $1.00 / 1,000 jobs

Go to Apify Store
Workday Jobs Monitor — Change Tracking + Hiring Signal Score

Workday Jobs Monitor — Change Tracking + Hiring Signal Score

Pull every open job from any Workday career site (*.myworkdayjobs.com), filtered by country or city, with a new-jobs-since-last-run monitor and a per-company hiring-signal summary. Optional change tracking and an explainable 0–100 signal score.

Pricing

from $1.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Paopao Studio

Paopao Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Workday Jobs Monitor for Recruiter BD — Country Filter + Hiring Signals

Pull every open job from any Workday career site (*.myworkdayjobs.com, *.myworkdaysite.com), filtered server-side by country or city, with a new-jobs-since-last-run monitor and a per-company hiring-signal summary.

Thousands of large employers (NVIDIA, Salesforce, Mastercard, Accenture, banks, airlines, governments, universities) post their jobs only on Workday. LinkedIn and job boards show a delayed, incomplete copy. This Actor reads the employer's own Workday site directly.

No login, no cookies, no proxy. It calls the same public JSON endpoint the careers page calls in your browser, so runs are fast and cheap.

What's new: change tracking and signal scoring

Two optional switches (both off by default):

  1. Change tracking (changeTracking) + State key (stateKey) — schedule the Actor and get only what changed since the last run with the same key: new jobs, changed fields (title, location, …) and free closed-job notices. First run is a baseline.
  2. Signal scoring (signalScoring) — adds an explainable 0–100 signal_score, a hot/warm/cool/cold tier and plain-English score_reasons on each company summary.

Baseline tip. With change tracking on, Max jobs to output per site only limits how many rows a run outputs. Every scanned job is saved as seen, so capped-out jobs are not sent or charged on a later run. If you need every matching job as the baseline, set that cap to 0 (no limit) on the first run. Only rows stopped by your max charge per run are carried over.

Details: Change tracking · Signal score.

Why this one

  • Country/city filter that Workday applies for you. Type UAE, Saudi Arabia, India, Japan, Singapore, Brazil, or a city. The Actor maps it to the site's own location filter, so you get every job in that market, even on sites with more than 2,000 jobs (Workday's list view stops at 2,000). Shortcuts: GCC, SEA, LATAM, UAE, KSA, UK, US.
  • Monitor mode with closed jobs. Schedule daily and get, and pay for, only the jobs that opened since the last run. The company summary also reports closed_jobs_since_last_run, closed_job_urls and net_change_since_last_run, so you can see roles being filled or pulled as well as roles opening.
  • Seniority and work model on every row. Each job gets seniority (intern, entry, mid, senior, lead, manager, director, executive) from its title, and work_model (remote / hybrid / onsite, or null when Workday doesn't say). Filter with Seniority levels, for example only director and executive for decision-maker roles. The company summary adds seniority_mix.
  • Hiring signals. One row per company: open jobs, jobs posted in the last 7 and 30 days, top locations and countries, remote share, and a 0–100 score. Use it to rank target accounts.
  • Optional details. Full description, country plus ISO code, exact posting date, time type, and the hiring legal entity (for example India: Mastercard Technology Private Limited).
  • Paste any Workday URL: a job link, a search link, or a link with a locale (/en-US/) all work. A company careers page that links to Workday works too.

Who uses this

  • Recruiters and staffing-agency BD (primary). Watch Workday employers in one market (GCC, India, APAC…) without LinkedIn lag. Deduped rows, long-open / repost flags, "JD names an internal recruiter", and company_domain for outreach. Example: GCC firms hiring under Emiratisation / Saudisation quotas.
  • B2B sales. A company opening 20 roles in Riyadh this month is expanding there. Sort by posted_last_30_days or hiring_signal_score.
  • Job boards and aggregators. Normalized rows from any Workday tenant.
  • Job seekers. Filter by country, keyword, recency or remote.

Input

FieldExample
Workday career siteshttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite
Search text (server-side)sales
Countries / citiesUAE, GCC, Japan, Bangalore
Keywords / exclude (title)manager / intern
Posted within N days7
Seniority levelsdirector, executive
Monitor mode + state keyon / gcc-weekly
Include detailson (adds description, country, legal entity)
Change tracking / Signal scoringon / on (optional, off by default)
Score functionssales, customer_success

Run it with no input and it runs a free 5-job sample.

Output

Job rows (type: "job"): company, company_domain, site, job_id, title, location, country, country_code, seniority, remote, work_model, time_type, posted_on_text, posted_days_ago, days_open, is_long_open, is_repost, fingerprint, names_internal_recruiter, recruiter_contact, duplicate_count, duplicate_urls, posted_date, hiring_entity, url, description (optional), is_new

Company summary rows (type: "company_summary"): company_domain, careers_url, total_open_jobs, total_capped_by_workday, jobs_scanned, matched_jobs, new_jobs_since_last_run, closed_jobs_since_last_run, closed_job_urls, net_change_since_last_run, long_open_jobs, repost_jobs_in_output, jobs_naming_recruiter, posted_last_7_days, posted_last_30_days, seniority_mix, remote_share, top_locations, top_countries, sample_matched_titles, hiring_signal_score, location_facets_applied

Error rows (type: "error", never charged): an input that is not a readable Workday site.

Example (real run, Oct 29 2026, locations: ["GCC"]):

{"type":"company_summary","company":"mastercard","total_open_jobs":25,"posted_last_7_days":8,"location_facets_applied":["Dubai, United Arab Emirates","Riyadh, Saudi Arabia","Vendor - Kuwait City, Kuwait (Mercans)"]}
{"type":"job","company":"mastercard","title":"Director, Finance Business Partner","country":"Saudi Arabia","country_code":"SA","posted_on_text":"Posted Yesterday","hiring_entity":"...","url":"https://mastercard.wd1.myworkdayjobs.com/CorporateCareers/job/..."}

Change tracking: new, changed and closed jobs (optional)

Turn on Change tracking (changeTracking: true) and schedule the Actor. The first run is a baseline: every matching job is output as change_type: "new". Later runs output only new jobs, changed jobs (title, location, work model, remote, time type or country changed; changed_fields and previous_values show what changed) and closed jobs (type: "job_closed", free). New and changed rows are charged as normal job rows. State is kept per site in the named key-value store workday-hiring-signals-state. If a scan is incomplete (Workday reports 2,000+ or Max scan per company cut it short), the results are merged into the saved state and nothing is reported as closed. Every job scanned is saved as seen, including jobs cut by Max jobs per company. The cap only limits how many rows a run outputs; capped-out jobs are not sent or charged on a later run, and closures are judged against the full list. If you need every matching job, set the cap to 0 (no limit) on the baseline run. The only rows carried to the next run are rows your max charge per run stopped, so no row is charged twice. (The older Only new jobs since last run mode keeps its own behavior.) Off by default.

Explainable signal score (optional)

Turn on Signal scoring (signalScoring: true) to add signal_score (0-100), signal_tier (hot ≥70, warm ≥45, cool ≥20, cold) and score_reasons to each summary. Job rows get job_function, company_signal_score, company_signal_tier and score_reasons. The components are new demand (25), velocity (20: growth of open roles once tracking spans 7+ days, before that this week's posting pace), seniority (15), department fit to your scoreFunctions (15), hard-to-fill share open 30+ days (10), volume (10) and remote share (5).

Example from a real run (Oct 30 2026, NVIDIA, searchText: "sales", scoreFunctions: ["sales"], second tracked run with no changes):

{"type":"company_summary","company":"nvidia","total_open_jobs":331,"new_jobs_since_last_run":0,"changed_jobs_since_last_run":0,"closed_jobs_since_last_run":0,"is_baseline_run":false,"scan_complete":true,"signal_score":93,"signal_tier":"hot",
"score_reasons":["+25 new demand: 131 roles posted in the last 30 days (59 in the last 7); 0 new since the last run",
"+19 velocity: 59 postings this week vs 30.5/week 30-day average (1.9x pace)",
"+15 seniority: 87 manager/director/executive roles (26%), 79% senior-or-above",
"+15 department: 89 open roles in target functions (sales)",
"+9 hard-to-fill: 200 roles open 30+ days (60%)","+9 volume: 331 open roles","+1 remote: 11% of roles are remote"]}

For investors and equity research (alternative data)

Job postings are one of the most-used alternative datasets on the buy side: in Exabel's 2026 buy-side survey, 57% of fund managers named employment data as the category most likely to give an informational edge. This Actor gives you the raw, first-party version of that signal at pay-per-event prices:

  • ticker, cik, sec_title on every company summary (and ticker on every job), matched against SEC's public company_tickers.json. Matching is conservative: exact normalized name only; ambiguous or private companies stay null. Use tickerMap to set your own mapping.
  • Monitor mode gives new jobs, closed jobs and net change per run - schedule it daily to build your own point-in-time hiring series for a watchlist.
  • Typical uses: hiring momentum vs. peers before earnings, expansion into new countries (e.g. GCC hiring), AI/engineering hiring mix, hiring freezes (net change turning negative).

Data comes only from employers' own public career sites. No personal data about candidates is collected. Not investment advice.

Built for recruiter BD

Same BD fields as the sister ATS Jobs Monitor: fingerprint + optional merge of duplicate title+location rows, is_long_open / is_repost (monitor mode), names_internal_recruiter when Include details is on, and company_domain from a non-Workday careers URL or companyDomainMap (never invented from the tenant name). Demand evidence: recruitment-agency BD threads on duplicate/repost/recruiter-in-JD pain, plus GTM engineers asking for daily company + job + domain feeds.

Pricing (pay per event)

  • Job row: charged per job pushed.
  • Company summary: charged per site.
  • Error rows and the sample run are free. Set Max charge per run in Apify to cap spend. The Actor stops cleanly at the cap.

Notes and limits

  • posted_date comes from Workday's "Posted N Days Ago" (30 means 30+) unless Include details is on, which gives the exact start date.
  • total_open_jobs is Workday's own count. total_capped_by_workday: true means Workday reports 2,000+. Add countries or search text to get everything.
  • Polite by design: 20 jobs per request, short pauses, retries on 429/5xx, at most 10 sites in parallel.
  • seniority is a rule on the title. It is free and fast, but it is not AI. Titles with no level word come out as mid. work_model comes from Workday's remote type when the site sets it, otherwise from the location and title text.
  • Closed jobs are reported from the second monitor run on, and only when the run saw the whole list: not cut by Max scan per company and under Workday's 2,000 cap. Otherwise the field is null, never a guess. It counts postings seen on a previous run that are gone now. Keep the same search and countries for each state key.
  • Only public job postings are read. No candidate or personal data.

Integrations

Also tracking Greenhouse, Lever, Ashby, Workable or SmartRecruiters boards? Use the sister Actor ATS Jobs & Hiring Signals. It has the same seniority, work_model and summary fields, so the outputs join cleanly.

Schedule the Actor and send new jobs to Google Sheets, Slack, n8n, Make, Zapier or a webhook through Apify integrations, or call it from the Apify API.