Greenhouse / Lever / Ashby Jobs Scraper - Personio & more
Pricing
from $1.00 / 1,000 jobs
Greenhouse / Lever / Ashby Jobs Scraper - Personio & more
Scrape all open jobs from Greenhouse, Lever, Ashby, Personio, Teamtailor and Recruitee career pages via official ATS feeds. Auto-detects the ATS from a company website. Pay per job.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
TinyRex
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
ATS Jobs Scraper – Greenhouse, Lever, Ashby, Personio, Teamtailor & Recruitee
Get every open job from company career pages in one clean, normalized dataset. Give it company websites, careers page URLs or job board links. The actor auto-detects which applicant tracking system (ATS) each company uses and pulls the jobs from the ATS's official public job-board feed. No browser, no login, no fragile HTML scraping.
Why this one: $1 per 1,000 jobs, while popular Greenhouse and ATS job APIs on the Store charge about $1.50–4 per 1,000. Companies without a supported ATS and jobs removed by your filters are free.
Supported ATS: Greenhouse · Lever (incl. EU) · Ashby · Personio · Teamtailor · Recruitee. The last three are the most popular in Europe and rarely covered by other scrapers.
- 🔎 Auto-detection. Just enter
stripe.comorpolestar.com. The actor scans the website and careers pages for ATS links, and checks the company name on each ATS when needed. - 🧩 One schema for all ATS. Title, department, team, locations, country, remote/hybrid/on-site, salary (where published), posting date, URLs and description.
- 🔔 Monitoring mode. Schedule the actor and get only new jobs since the last run.
- 🎯 Filters. Title keywords (include/exclude), location, department, workplace type, posted within N days, max jobs per company.
- 💸 Pay only for jobs. Companies without a supported ATS cost nothing.
- 🤖 API, MCP and AI-agent friendly. Fast, structured JSON.
Use cases
- Job boards and aggregators. Keep niche job boards (remote, EU tech, climate, fintech…) fresh from the source.
- Sales intelligence. Hiring signals. A company hiring 5 data engineers or its first salesperson in Germany is a lead.
- Recruiting and talent intelligence. Track competitors' openings, team growth and locations.
- Market research. Salary ranges (Ashby, Lever, Recruitee), remote share and hiring trends by company or department.
- Job seekers and communities. Monitor dream companies and get alerts for new roles.
Input
| Field | Description |
|---|---|
companies | One per line. Accepted formats: a website (stripe.com), a careers page or ATS URL (https://jobs.lever.co/palantir, https://acme.jobs.personio.de, https://careers.acme.com), an explicit board (greenhouse:stripe, lever:palantir, lever-eu:qonto, ashby:ramp, personio:acme, teamtailor:acme, recruitee:acme), or a company name (Ramp). |
titleKeywords / excludeTitleKeywords | Include or exclude jobs by words in the title. |
locationKeywords | E.g. Berlin, Germany, DE, Remote. |
workplaceTypes | remote, hybrid, onsite. |
departmentKeywords | E.g. Engineering, Sales. |
postedWithinDays | Only recent jobs. 0 means all. |
maxJobsPerCompany | Newest first. 0 means all. |
descriptionFormat | text (default), html, both or none. |
onlyNewJobs + stateKey | Monitoring mode: output only jobs not seen in previous runs. Use a separate stateKey per monitor, and a new key if you change filters. |
allowSlugGuess | Look the company name up directly on each ATS if the website has no ATS link (default on). |
includeUnverifiedGuesses | Also keep guessed boards whose company name cannot be verified (default off). |
Example:
{"companies": ["stripe.com", "polestar.com", "https://jobs.ashbyhq.com/ramp", "personio:kb1", "bunq.com"],"titleKeywords": ["engineer", "developer"],"locationKeywords": ["Germany", "Remote", "Amsterdam"],"postedWithinDays": 30,"descriptionFormat": "text"}
Output
One item per job:
{"company": "Ramp","companyInput": "ramp.com","ats": "ashby","atsBoard": "ramp","jobId": "baf0a4d2-e07e-4f76-af85-d85c91f479a4","title": "Senior Manager, Account Manager | Mid-Market","department": "Sales","team": "Account Manager","employmentType": "FullTime","locations": ["New York, NY (HQ)", "San Francisco, CA"],"location": "New York, NY (HQ)","country": "USA","workplaceType": "hybrid","salary": { "min": 290000, "max": 350000, "currency": "USD", "period": "1 YEAR", "text": "$290K - $350K" },"postedAt": "2026-09-23T16:31:53.863Z","url": "https://jobs.ashbyhq.com/ramp/baf0a4d2-…","applyUrl": "https://jobs.ashbyhq.com/ramp/baf0a4d2-…/application","descriptionText": "About Ramp\nRamp is building…","scrapedAt": "2026-10-04T07:15:18.313Z"}
The key-value store also contains:
COMPANIES: for every input, which ATS board was detected and how (direct URL, website scan or verified name guess), plus jobs found, filtered and saved, and notes for companies that were not found.SUMMARY: totals for the run.
Fields depend on what each ATS publishes. For example, salary is mostly available on Ashby, Lever and Recruitee, and the workplace type on Ashby, Lever, Recruitee and Teamtailor. Missing values are null.
Pricing
Pay per event:
- Job (
job): charged once per job saved to your dataset. - Free: companies without a supported ATS, and jobs removed by your filters.
See the Pricing tab for the current price. Set a maximum cost per run and the actor stops gracefully when it is reached.
How detection works
- Direct links. ATS URLs and
ats:sluginputs are used as they are. - Website scan. The homepage and up to 3 careers pages are scanned for Greenhouse, Lever, Ashby, Personio, Teamtailor or Recruitee links and embeds. Custom careers domains hosted on Teamtailor or Recruitee are recognized too.
- Verified name guess. The company name (e.g.
datadogfromdatadoghq.com) is tried on each ATS. A guessed board is accepted only if the company name published by the ATS matches, to avoid "same name, different company" mistakes.
Limitations
- Only the six supported ATS. Companies on Workday, SmartRecruiters, Workable, SuccessFactors or their own systems are reported as "not found" and are free. More ATS are on the roadmap.
- Results reflect what the company publishes in its public job feed. Some companies hide postings from feeds or post only in their local language. For Personio, English is preferred, with German as fallback.
- Monitoring mode compares jobs by ATS job ID for the same set of companies and boards.
Use with AI agents (MCP)
This Actor works as a tool for AI agents through the Apify MCP server at https://mcp.apify.com. Connect Claude, Cursor, VS Code, n8n or any other MCP client to https://mcp.apify.com?tools=tinyrex/ats-jobs-scraper and the agent can run it from a plain-language request, for example: "Get all open engineering jobs in Germany at stripe.com, n26.com and personio.com". Results come back as clean, structured JSON at the same pay-per-result price, and failed inputs stay free.
📘 Step-by-step guide with Python, JavaScript, curl and MCP examples: How to scrape Greenhouse, Lever and Ashby jobs (plus Personio, Teamtailor, Recruitee)
Related actors
- Arbeitsagentur & EURES Jobs Scraper: Jobs from Germany's Bundesagentur für Arbeit and EURES (Austria, Switzerland, EU) with salary and full descriptions.
- Workday Jobs Scraper: Companies that hire on Workday (myworkdayjobs.com) instead: all jobs with full descriptions.
- Remote Jobs Scraper: Remote jobs from Himalayas, Remote OK, We Work Remotely, Working Nomads and Arbeitnow in one run, with salary, location rules and full descriptions.
- Tech Stack Detector: Enrich hiring companies with their tech stack, email provider and DMARC for sales outreach.
- Shopify Products Scraper: Export products and prices from Shopify stores.
- WooCommerce Products Scraper: Export products and prices from WooCommerce stores.
FAQ
Is this legal? The actor reads the official public job-board feeds that the ATS vendors provide so companies can show their jobs on websites and job boards. It does not log in, does not bypass protections, and does not collect candidate data. Job postings may contain recruiter contact details written by the employer. Handle them according to your local data protection law.
How fast is it? Typically 50 companies and 4,000+ jobs in under a minute.
Can I schedule it? Yes. Use Apify Schedules with onlyNewJobs: true to get a daily feed of new jobs. Connect it to Slack, email, Google Sheets, Make, Zapier or n8n.
My company isn't detected. Pass the careers page URL or the job board URL directly, or open an issue with the company name and we will take a look.