ATS Jobs Scraper: Workable, Personio, SmartRecruiters & More avatar

ATS Jobs Scraper: Workable, Personio, SmartRecruiters & More

Pricing

Pay per event

Go to Apify Store
ATS Jobs Scraper: Workable, Personio, SmartRecruiters & More

ATS Jobs Scraper: Workable, Personio, SmartRecruiters & More

Job postings scraper for company career sites on SmartRecruiters, Recruitee, Personio, Teamtailor, Workable and BambooHR via their official public job feeds. One normalized schema: title, location, remote flag, department, posted date, apply URL and full description. Build job boards, track hiring.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Ryan Sofranko

Ryan Sofranko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

What does ATS Jobs Scraper do?

Job postings scraper for company career sites on SmartRecruiters, Recruitee, Personio, Teamtailor, Workable and BambooHR via their official public job feeds. One normalized schema: title, location, remote flag, department, posted date, apply URL and full description. Build job boards, track hiring.

📖 Step-by-step tutorial: https://dev.to/scrape-smith/how-to-scrape-job-postings-from-workable-personio-smartrecruiters-and-more-one-clean-feed-25mh

Popular searches this actor answers: jobs scraper, Workable jobs API, Personio XML feed, SmartRecruiters jobs, Recruitee jobs, Teamtailor jobs, BambooHR careers, job board aggregator.

Try it free: the input is prefilled, so just click Start and you get real results in seconds for a fraction of a cent.

What data does it return?

Real rows from a test run with the example input (truncated):

atscompanytitlelocationremotepostedAt
teamtailorPolestarHead of Customer Engagement BeneluxBeesd, NetherlandsFalse2026-10-15T11:14:55.000Z
teamtailorPolestarHead of Customer Engagement BeneluxBrussels, BelgiumFalse2026-10-15T09:09:19.000Z
personioPersonio SE & Co. KGStaff Software Engineer, Data PlatformMunich; BerlinFalse2024-11-13T14:10:41+00:00

Full JSON for one row:

[
{
"ats": "teamtailor",
"companySlug": "polestar",
"id": "a775edab-0c00-4863-bc99-eba96799d7f8",
"title": "Head of Customer Engagement Benelux",
"company": "Polestar",
"location": "Beesd, Netherlands",
"city": "Beesd",
"country": "Netherlands",
"remote": false,
"department": "Customer Experience",
"postedAt": "2026-10-15T11:14:55.000Z",
"url": "https://polestar.teamtailor.com/jobs/8551558-head-of-customer-engagement-benelux",
"description": "Let us describe the challenge we offer We are looking for an experienced Head of Customer Engagement to lead and elevate the customer journey across the Benelux…",
"scrapedAt": "2026-10-22T15:56:43.703Z"
}
]

Download results as JSON, CSV, Excel, XML or HTML, call it via the Apify API, or connect it to Zapier, Make, n8n, Google Sheets and AI agents (Apify MCP server).

Use cases

  • Build niche job boards from hundreds of company career pages
  • Monitor competitors' hiring daily with onlyNewSince
  • Sales intelligence: find companies hiring for specific roles
  • Recruiting research and labor-market analytics

How to use ATS Jobs Scraper

  1. Open the actor and keep the prefilled example, or replace it with your own input.
  2. Click Start and wait for the run to finish.
  3. Export the dataset or fetch it via API.

Input

FieldDescription
companiesCompanies to scrape, one per line, as ats:slug or a careers URL. ats = smartrecruiters, recruitee, personio, teamtailor, workable or bamboohr. Examples: workable:huggingface, https://bunq.recruitee.com, https://acme.jobs.personio.de, https://polestar.teamtailor.com, https://bitly.bamboohr.com/careers, https://jobs.smartrecruiters.com/Ubisoft2.
maxJobsPerCompanyMaximum jobs returned per company (each job is one billed row). Example: 50.
includeDescriptionInclude the full job description text. Costs an extra request per job on SmartRecruiters and BambooHR (not billed extra, just slower).
onlyNewSinceFor daily monitoring: skip jobs posted before this date (YYYY-MM-DD), where the ATS exposes a posted date.
keywordOptional case-insensitive text the job title must contain, e.g. engineer or sales.

Example input:

{
"companies": [
"workable:huggingface",
"teamtailor:polestar"
],
"maxJobsPerCompany": 20
}

Supported ATS & feeds

ATSInput exampleOfficial public feed
SmartRecruiterssmartrecruiters:Ubisoft2Posting API api.smartrecruiters.com/v1/companies/{id}/postings
Recruiteerecruitee:bunq or https://bunq.recruitee.com{co}.recruitee.com/api/offers
Personiopersonio:acme or https://acme.jobs.personio.de{co}.jobs.personio.de/xml
Teamtailorteamtailor:polestar{co}.teamtailor.com/jobs.rss
Workableworkable:huggingfaceapply.workable.com/api/v1/widget/accounts/{co}
BambooHRbamboohr:bitly{co}.bamboohr.com/careers/list

All rows share one normalized schema (ats, companySlug, company, id, title, location, city, country, remote, department, employmentType, experienceLevel, postedAt, url, applyUrl, description). Fields an ATS does not expose are null. Companies that fail (wrong slug, feed disabled) return a free error row and are not charged.

Pricing

Pay per event: $0.005 per company feed fetched + $0.001 per job. 1,000 jobs from 20 companies = $1.10. Apify platform usage is included. Charged events: company (per company feed fetched) and job (per job row). Error rows are free. Set a max charge per run to cap cost; the actor stops cleanly when the limit is reached.

Example jobApprox. cost
20 jobs from 2 companies$0.03
1,000 jobs from 20 companies$1.10

FAQ

How do I find a company's slug?

Open its careers page. The slug is in the URL, e.g. apply.workable.com/huggingface or bunq.recruitee.com. You can also paste the URL directly.

Are Greenhouse or Lever supported?

Not in this actor; it covers the six ATS listed.

What if a slug is wrong?

You get a free error row for that company; others continue.

The actor only reads public, official endpoints. You are responsible for using the data in line with the source's terms and applicable laws (e.g. GDPR for personal data).

API example

curl -X POST "https://api.apify.com/v2/acts/scrape-smith~multi-ats-jobs-feed/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' -d '{"companies": ["workable:huggingface", "teamtailor:polestar"], "maxJobsPerCompany": 20}'

More Scrape-Smith actors