Workday, SmartRecruiters & Personio Jobs Scraper avatar

Workday, SmartRecruiters & Personio Jobs Scraper

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Workday, SmartRecruiters & Personio Jobs Scraper

Workday, SmartRecruiters & Personio Jobs Scraper

Scrape open jobs from Workday, SmartRecruiters and Personio career sites in one run, same job schema as our ATS Jobs Scraper. Filter by keyword, location, remote and posted date. No personal data.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

Scrapify

Scrapify

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Workday, SmartRecruiters & Personio Jobs Scraper: open jobs from three career-site systems in one run

Scrape open jobs from company career sites that run on Workday, SmartRecruiters or Personio and get one clean, normalised dataset: title, company, department, location(s), remote flag, employment type, posted date, job URL, requisition ID and the job description as plain text. Paste a list of career-site addresses, press Start and get all of them in one run; the ATS is detected from each address. Filter by keyword, location, remote and posted-since before you pay. Export to JSON, CSV or Excel, or call it from the API.

Use it for job-market and hiring-trend research, lead lists for recruiters and staffing firms, competitor hiring signals, job aggregators and alerts, salary and skills datasets, and LLM/RAG pipelines. Works with AI agents through the Apify MCP server. It reads the public JSON/XML endpoints the career pages themselves use; no login, no cookies, no proxy.

Same schema as our ATS Jobs Scraper, which covers Greenhouse, Lever and Ashby. Use both and merge the datasets: the field names are identical. For Greenhouse, Lever or Ashby boards, use that actor.

Why this one

  • Three systems, one run. Workday (large employers), SmartRecruiters and Personio (European SMEs) together, one schema, one price.
  • Filters that work before charging. Keywords (all words of a line must match), locations, remote only and posted in the last N days. Jobs that do not match are not returned and not charged.
  • Auto-detect from a careers URL. Paste https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://jobs.smartrecruiters.com/ServiceNow or https://mobimeo.jobs.personio.de; tenant, server and site are parsed for you.
  • Optional full description as plain text (HTML removed, length-capped).
  • Keeps running when a site does not cooperate. A wrong address, unknown company, blocked or empty site gets one error row with the reason; every other site continues. A site that keeps answering 429 is stopped politely.
  • No personal data. Job fields only. No recruiter or hiring-manager names, emails or phone numbers.
  • Cheap and predictable. $0.0015 per job; Max jobs per company and Max jobs in total cap every run.
  • Run summary. A RUN_SUMMARY record lists jobs and requests per career site, errors, HTTP statuses and charged events.

Input

FieldMeaning
Career site URLsCareer-site addresses, one per line (Workday, SmartRecruiters, Personio). Custom company domains cannot be auto-detected: copy the myworkdayjobs / smartrecruiters / personio address from the careers page
Workday sites / SmartRecruiters IDs / Personio namesOptional short forms (adobe/wd5/external_experienced, Sodexo, mobimeo)
KeywordsOptional. All words of at least one line must appear in title, department or (with descriptions on) description
LocationsOptional location texts (india, london)
Remote jobs onlyDefault off
Posted in the last N daysOptional
Include job description / Max description lengthDefault off / 4,000 characters
Max jobs per company / Max jobs in totalDefault 200 / 500
Remove duplicatesDefault on

Output

Job row (same names as ATS Jobs Scraper): company, platform (workday|smartrecruiters|personio), companyName, jobId, title, department, team, location, locations[], workplaceType, employmentType, postedAt, updatedAt, jobUrl, applyUrl, requisitionId, isRemote, salaryMin, salaryMax, salaryCurrency, salaryInterval, salarySummary, descriptionText (when requested), scrapedAt, plus careerSite for Workday.

Error row: type: "error", input, platform, company, error, httpStatus. See sample-output.json for real rows.

Notes on the data:

  • Workday shows only a relative age in its list ("Posted 3 Days Ago", "30+" for older), so postedAt is the day (midnight UTC) derived from it, or null for 30+ days; with descriptions on, the exact start date is used. Multi-location jobs show "3 Locations" in location unless the detail page is read (descriptions, location filter or remote filter on).
  • SmartRecruiters gives release date, department, function and a remote/hybrid flag.
  • Personio feeds contain the description text, office list, department, category, schedule and created date.
  • Salary fields are part of the shared schema; these three systems do not publish structured pay, so they are null.
  • Workday jobId is the requisition ID; SmartRecruiters jobId is the posting ID.

Pricing

Pay per event: $0.0015 per job ($1.50 per 1,000 jobs) plus a $0.00005 start event per run. Error rows, filtered-out jobs and duplicates are not charged. A run returning 200 jobs costs about 30 cents. See PRICING.md for the benchmark.

Public career-site data only, no personal data

The actor reads only public career-site endpoints (Workday /wday/cxs/.../jobs, SmartRecruiters /v1/companies/<id>/postings, Personio /xml) that are served to every visitor of a careers page. It returns job posting fields only: no recruiter or candidate data, no names, emails or phone numbers, no login, and it does not bypass anything. Job postings belong to the employers: you are responsible for using them in line with applicable law and each site's terms.

Notes and limits

  • Not an official Workday, SmartRecruiters or Personio product. Endpoints can change without notice.
  • Workday returns 20 jobs per request, paced about one request per second; a 1,000-job company takes about a minute without descriptions, and descriptions need one more request per job.
  • SmartRecruiters answers 200 with an empty list for an unknown company ID; the actor turns that into an error row. IDs are case-sensitive.
  • A company that moved to another system, or uses a custom domain, cannot be found from the name alone.

FAQ

How much does it cost? $0.0015 per job plus $0.00005 per run. 1,000 jobs = $1.50. Error rows are free.

Do I need an API key, account or proxy? No.

Can I scrape LinkedIn or Indeed with it? No. Only Workday, SmartRecruiters and Personio career sites. For Greenhouse, Lever and Ashby use our ATS Jobs Scraper.

Can I get recruiter emails? No. Job data only.

Which export formats are available? JSON, CSV, Excel, XML, HTML or RSS from the Console or API, or integrations such as Make, Zapier, n8n and Google Sheets.

Something broke or a field is missing? Open an issue on the Actor's Issues tab with the run link.

Use with AI agents / MCP

Agents can call this Actor through the Apify MCP server. Let the agent find it with the search-actors tool ("workday jobs scraper") and call it by name:

  • Actor: santis_hermes/workday-jobs-scraper
  • Example prompt: "List the data engineer jobs posted in the last 7 days at NVIDIA and ServiceNow."
  • Minimal input:
{
"careerSiteUrls": ["https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite", "https://jobs.smartrecruiters.com/ServiceNow"],
"keywords": ["data engineer"],
"postedSinceDays": 7,
"maxJobsPerCompany": 50
}

Feedback

If this saved you time, a rating on the Store page helps others find it. If it did not work for you, please open an issue on the Issues tab with the run link and I will look at it.