Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more avatar

Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more

Pricing

Pay per usage

Go to Apify Store
Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more

Career Site Jobs Scraper: Greenhouse, Lever, Ashby & more

Scrape job postings straight from company career sites on 6 ATS platforms incl. EU-favourite Personio & Recruitee. One clean schema, salary when published, only-new-jobs mode for daily feeds. No login, no proxies, GDPR-minded.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Augmented Human

Augmented Human

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Share

Career Site Jobs Scraper – Greenhouse, Lever, Ashby, Workable, Recruitee & Personio jobs API

Scrape job postings directly from company career sites – the original source, before they reach LinkedIn or Indeed. One Actor covers 6 applicant-tracking systems (ATS) used by tens of thousands of startups and scale-ups, including the European favourites Personio and Recruitee. You get clean, normalised JSON / CSV / Excel, salary ranges when the company publishes them, and an only-new-jobs mode for daily job feeds and job alerts.

Built and maintained by Augmented Human.

✅ No login, no cookies, no proxies · ✅ Official public job-board endpoints · ✅ Fast (≈1,000 jobs in ~10 s) · ✅ GDPR-minded: recruiter names, e-mails and phone numbers are removed · ✅ Ready for AI agents (MCP / API)

What does the Career Site Jobs Scraper do?

  • 🔎 Extracts every open job from a company's Greenhouse, Lever, Ashby, Workable, Recruitee or Personio careers page
  • 🧭 Auto-detects the ATS from a bare company slug or a careers URL (https://jobs.lever.co/spotify, https://job-boards.greenhouse.io/figma…)
  • 🧹 One unified schema across all ATS: title, department, team, location, city, country, remote / hybrid, employment type, seniority, salary min/max/currency, posted date, job & apply URLs, description (text or HTML)
  • 🎯 Filters by title keywords, excluded keywords, locations, remote-only and "posted within N days"
  • 🔔 Only new jobs since the previous run – schedule it daily and receive only fresh postings
  • 🤖 Plain-text descriptions ready for LLM / RAG / AI agents and job-matching pipelines

Use cases

WhoHow they use it
Job boards & aggregatorsDaily feed of new jobs from hundreds of target companies
Recruiters & staffing agenciesSee which companies are hiring for your niche as soon as the role is posted
Sales / RevOps (hiring signals, lead generation)"Company X opened 5 data-engineering roles" = buying intent for your product
VC & market researchTrack headcount plans and team growth of portfolio or competitor companies
Job seekers & career coachesAlerts for "remote + backend + Europe" across a list of dream companies
AI agentsFetch structured, current openings for a company on demand

How to scrape career sites (step by step)

  1. Click Try for free.
  2. In Companies, add one company per line: greenhouse:stripe, lever:spotify, ashby:linear, workable:huggingface, recruitee:bunq, personio:personio, or simply paste the careers URL.
  3. (Optional) Add title keywords such as engineer, data, and locations such as Paris, Germany, Remote.
  4. Click Start and download your jobs as JSON, CSV, Excel or via the API.
  5. For a daily feed: turn on Only new jobs since previous run, then create a Schedule in Apify Console.

Where do I find the slug? It is the company part of the careers URL: jobs.lever.co/spotify, boards.greenhouse.io/stripe, jobs.ashbyhq.com/linear, apply.workable.com/huggingface, bunq.recruitee.com, personio.jobs.personio.de.

Input example

{
"companies": ["greenhouse:stripe", "lever:spotify", "ashby:linear", "https://apply.workable.com/huggingface"],
"titleKeywords": ["engineer", "data"],
"locations": ["France", "Germany", "Remote"],
"onlyNewJobs": true,
"stateKey": "eu-engineering"
}

Output example

Real row from a test run (description shortened):

{
"id": "workable:huggingface:81B46579FE",
"ats": "workable",
"company": "Hugging Face",
"companySlug": "huggingface",
"title": "Open-Source Machine Learning Engineer - EMEA Remote",
"department": "Open Source",
"location": "Paris, Île-de-France, France",
"city": "Paris", "country": "France", "countryCode": "FR",
"remote": true,
"employmentType": "Full-time",
"salaryMin": null, "salaryMax": null, "salaryCurrency": null,
"postedAt": "2026-05-29T00:00:00+00:00",
"jobUrl": "https://apply.workable.com/j/81B46579FE",
"applyUrl": "https://apply.workable.com/j/81B46579FE/apply",
"descriptionText": "At Hugging Face, we're on a journey to democratize good AI. …",
"isNew": true
}

Run statistics (companies found / not found, errors) are saved as RUN_STATS in the key-value store.

Supported ATS & tips

ATSInputSalaryNotes
Greenhousegreenhouse:slug–US/EU tech companies
Leverlever:slug✅ when publishedEU-hosted boards supported
Ashbyashby:slug✅ when publishedFast-growing startups
Workableworkable:slug–SMEs worldwide
Recruiteerecruitee:slug✅ when publishedPopular in NL/BE/FR/DE
Personiopersonio:slug–#1 HR suite in DACH

SmartRecruiters is not supported because its API's robots.txt disallows automated access – we respect it.

How much does it cost?

See the Pricing tab for the current price. The Actor is HTTP-only and very light: a cloud test fetched 864 jobs from 6 companies in ~50 seconds using ~0.0035 compute units. With only new jobs on, a scheduled daily feed only returns (and only costs you for) fresh postings. Apify's free plan credits are enough to try it.

How an AI agent can call it

  • Apify MCP server: add augmentedhuman/career-site-jobs-scraper as a tool in any MCP client (Claude, Cursor, ChatGPT connectors, etc.) via https://mcp.apify.com. The agent passes companies and optional filters and gets jobs back as JSON.
  • One HTTP call (synchronous, returns the dataset):
curl -X POST "https://api.apify.com/v2/acts/augmentedhuman~career-site-jobs-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"companies":["ashby:linear"],"titleKeywords":["engineer"],"maxJobs":50}'
  • Python: ApifyClient(token).actor("augmentedhuman/career-site-jobs-scraper").call(run_input={...})
  • Also works from Make, Zapier, n8n and LangChain through the standard Apify integrations.

How does it compare to other job scrapers?

Honest note: Apify Store has strong alternatives. Single-ATS scrapers (e.g. Greenhouse-only or Lever-only) can go deeper on one platform, and aggregated job databases cover far more companies without you having to list them. Pick this Actor when you know which companies you care about and want one schema across 6 ATS, only-new-jobs daily feeds, and European ATS (Personio, Recruitee). If you need LinkedIn/Indeed search results or Workday/iCIMS/SmartRecruiters companies, use a different tool.

FAQ

Is scraping career sites legal? This Actor only reads public job-board endpoints that companies publish so their jobs can be syndicated. It does not log in or bypass any protection, honours robots.txt and rate limits, and strips personal data (recruiter names, e-mails, phone numbers). You remain responsible for how you use the data (GDPR, site terms). Not legal advice.

A company is "not found". Check the slug, or prefix the ATS (lever:acme). If the company uses another ATS (Workday, iCIMS, Teamtailor…), open an issue – new ATS are added based on demand.

Can I get only remote jobs, or only jobs posted this week? Yes: remoteOnly: true and postedWithinDays: 7.

Can I use it from Make, Zapier, n8n, Python or an AI agent? Yes – via the Apify API, integrations, or the Apify MCP server (see above).

Something broke? Open an issue on the Issues tab – the Actor is health-checked daily.