Workday, SmartRecruiters, Recruitee, Personio Jobs Scraper
Pricing
from $1.00 / 1,000 jobs
Workday, SmartRecruiters, Recruitee, Personio Jobs Scraper
Pull every open job from career sites on Workday, SmartRecruiters, Recruitee, Personio and Breezy HR into one clean schema. Paste career-site URLs, filter by keyword, location, remote or posting date, and pay only per job returned.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Nekruz Kasimov
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Workday, SmartRecruiters, Recruitee, Personio, Breezy Jobs Scraper
Get every open job from company career sites hosted on Workday, SmartRecruiters, Recruitee, Personio or Breezy HR, in one normalized dataset. Workday alone powers the career pages of thousands of large enterprises (NVIDIA, Salesforce, Adobe, banks, universities); SmartRecruiters, Recruitee, Personio and Breezy cover tens of thousands of European and mid-size companies.
Reads each platform's own public job-board endpoints, so no browser, no proxies, no CAPTCHAs. Pair it with the companion Actor for Greenhouse, Lever, Ashby and Workable to cover most of the market.
Use cases
- Enterprise job boards and alerts, refreshed daily.
- Account research: watch hiring at target companies.
- Structured job data for AI agents, RAG pipelines and market analysis.
Input
| Field | Description |
|---|---|
companies | Career-site URLs. Workday: https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. SmartRecruiters: https://jobs.smartrecruiters.com/Ubisoft2 or smartrecruiters:Ubisoft2. Recruitee: https://channable.recruitee.com or recruitee:channable. Personio: https://circus.jobs.personio.de or personio:circus. Breezy: https://acme.breezy.hr or breezy:acme. A bare slug is tried on all platforms except Workday. |
includeDescription | Full description as text and HTML. Recruitee and Personio include it for free; Workday and SmartRecruiters need one extra request per job. For Workday this also fills the posting date, requisition id, country and remote type. |
keywords, locations, remoteOnly, postedAfter, maxJobsPerCompany | Same filters as the companion Actor. On Workday, keywords are matched by Workday's search, which matches whole words and word beginnings, so use whole words or word beginnings (a fragment such as "gineer" will not match on Workday). |
Output
One item per job with platform, company, companySlug, jobId, title, url, applyUrl, location, locations, country, isRemote, workplaceType, department, team, employmentType, experienceLevel, salary, publishedAt, updatedAt, requisitionId, optional descriptionPlain and descriptionHtml, and scrapedAt (Workday items also carry postedOnText, the relative age Workday shows, such as "Posted 3 Days Ago"). Fields a platform does not expose are null. The OUTPUT record summarizes every board: jobs found, after filters, pushed, or why it failed. It contains:
boards: one entry per board or input entry, withinput,platform,slug,status,jobsOnBoard,jobsFetched(jobs downloaded, which can be fewer than on the board when paging stops at your cap or date filter),jobsAfterFilters,jobsPushed, plusdescriptionFailures,error,failedPageorduplicateOfwhen they apply. Aduplicateentry carries onlyinput,platform,slug,statusandduplicateOf.jobsPushed: jobs saved to the dataset.jobsCharged: jobs billed under pay-per-event pricing, otherwisenull.descriptionFailures: jobs saved without a description (see Pricing).descriptionsRecovered: descriptions that failed once and succeeded on the automatic retry.chargeLimitReached:trueif the run stopped at your maximum charge per run.
Each board's status is one of ok (board read), not_found (the URL or platform:slug entry points to no board), not_found_on_any_platform (a bare slug matched no board on SmartRecruiters, Recruitee, Personio or Breezy), unrecognized (not a supported career-site URL or slug), error (the board request failed after retries; error has the reason), partial (a Workday or SmartRecruiters list page after the first failed after retries or came back without a job list; the jobs from the earlier pages are kept and returned, failedPage is the page that failed and error says why, for example "page 2 failed (HTTP 404); kept 20 jobs from earlier pages"), or duplicate (the entry is the same board as an earlier one, so it was not requested; duplicateOf is the first input for it).
With includeDescription, a Workday or SmartRecruiters job whose description could not be fetched is still returned, with null descriptions and a descriptionError field (for example HTTP 503).
Pricing
Per job returned. Filtered-out jobs are free. Set a maximum charge per run to cap spend; the Actor stops cleanly when it is reached (chargeLimitReached is true in OUTPUT).
A board entered more than once is requested and charged once: repeat entries show as duplicate in OUTPUT and cost nothing. Jobs kept from a partial board are charged like any other job.
A Workday or SmartRecruiters job whose description could not be fetched is not charged. Failed detail requests are retried (rate limits and server errors get one more try after a short pause); if the description is still missing, the job is returned with descriptionError set and counted in descriptionFailures. jobsCharged shows what was actually billed. Such a job still counts toward maxJobsPerCompany.
Notes
- Workday career sites: copy the URL from the browser.
- Boards are compared by platform and slug, ignoring case, so
smartrecruiters:Ubisoft2,https://jobs.smartrecruiters.com/ubisoft2/andjobs.smartrecruiters.com/Ubisoft2are one board. The same bare slug entered twice is a repeat too. - Career-site URLs without
https://(for examplechannable.recruitee.com) are read as URLs, not as bare slugs. - Workday and SmartRecruiters are read page by page. If a later page fails, the run keeps the earlier jobs instead of dropping the board, and the final status message adds "(N incomplete, see OUTPUT)". Recruitee, Personio and Breezy are a single request each, so they are never
partial. - Breezy boards do not expose descriptions or posting text beyond the listing.
- Workday lists only a relative age ("Posted 3 Days Ago"), so
postedAfterworks at day precision for Workday boards; withincludeDescriptionthe exact date from the job page is re-checked. - Rate limits (HTTP 429), server errors (5xx) and network errors are tried up to 3 times. The Actor waits for the
Retry-Afterthe server sends (at most 60 s), otherwise 1.5 s, then 3 s.