European Jobs API: Personio, Teamtailor, Recruitee, Greenhouse
Pricing
from $1.50 / 1,000 job returneds
European Jobs API: Personio, Teamtailor, Recruitee, Greenhouse
Search open jobs across 490+ European companies' own career sites (Personio, Teamtailor, Recruitee, Greenhouse, Lever, Ashby) by keyword and country, or scan your own list of boards. One clean schema, new-jobs-only monitoring, no personal data.
Pricing
from $1.50 / 1,000 job returneds
Rating
0.0
(0)
Developer
Clearfeed Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Security
Limited permissionsShare
EU Company Jobs Feed: Personio, Teamtailor, Recruitee, Greenhouse, Lever & Ashby
Get open jobs straight from the career sites of 490+ European employers, in one clean table. Search by keyword and country across the whole built-in directory, or paste your own list of career pages. No login, no browser, no personal data.
What it does
European companies mostly hire through Personio (Germany, Austria, Switzerland), Teamtailor (Nordics), Recruitee (Benelux) and Greenhouse, Lever and Ashby (scale-ups everywhere). This Actor reads the official public job feed of each of those systems and returns every posting in the same format.
- Search without knowing company names. Type "data engineer", pick France and Germany, and the Actor scans its built-in directory of 490+ European company boards (11,000+ open jobs at the last refresh).
- Or bring your own companies. Paste any career page URL from the 6 systems. Mix them freely.
- Only new jobs. Turn on monitoring, schedule the Actor daily, and each run returns only the postings that appeared since the last run. You only pay for those.
- One schema for all 6 systems. Country codes, remote/hybrid/on-site, full-time/part-time/internship, salary when the employer publishes it, publish date, direct apply link.
- GDPR-safe. No recruiter names, emails or phone numbers. Contact details that appear inside descriptions are replaced with
[removed]. - Reliable. It uses the systems' official public endpoints, not fragile HTML scraping, so it keeps working when websites are redesigned.
Use cases
- Job boards and newsletters that need a fresh feed of European tech, product or sales jobs
- Recruiting and staffing agencies watching which companies are hiring for a role
- Sales teams using hiring as a buying signal ("companies hiring a Head of Data in Germany")
- Market and salary research on the European job market
- AI agents and LLM apps that need structured, current job data
Input
| Field | What it does |
|---|---|
| Keywords | Jobs whose title contains any of these words. Whole-word match, so java doesn't match javascript. Accents and case are ignored. |
| Countries | Only jobs located in these countries. |
| Search the built-in directory | On by default when you don't give your own career pages. |
| Your own career pages | URLs like https://acme.jobs.personio.de, https://acme.teamtailor.com, https://acme.recruitee.com, https://boards.greenhouse.io/acme, https://jobs.lever.co/acme, https://jobs.ashbyhq.com/acme, or personio:acme. |
| Systems to include | Limit the directory to some of the 6 systems. |
| Exclude keywords | Drop titles containing e.g. intern or senior. |
| Workplace type / Employment type | Remote, hybrid, on-site; full-time, part-time, contract, internship... |
| Posted within N days | Only recent postings. |
| Europe only | Drop the US/Asia jobs of global companies. |
| Only return new jobs + Monitor name | Monitoring mode (see below). |
| Include full description | Text and HTML description. Off for a lighter dataset. |
| Maximum jobs | Hard cap per run. |
Example input:
{"keywords": ["data engineer", "analytics engineer"],"countries": ["FR", "DE", "NL"],"workplaceTypes": ["remote", "hybrid"],"postedWithinDays": 14}
Output
One row per job:
{"id": "recruitee:bunq:2783543","ats": "recruitee","companySlug": "bunq","companyName": "bunq","title": "Head of Product","department": "Product","location": "Amsterdam, Netherlands","locations": ["Amsterdam, Netherlands", "Sofia, Bulgaria"],"city": "Amsterdam","countryCode": "NL","country": "Netherlands","countryCodes": ["NL", "BG"],"isEurope": true,"workplaceType": "hybrid","isRemote": false,"employmentType": "full_time","seniority": "manager","salaryMin": null,"salaryMax": null,"salaryCurrency": null,"salaryPeriod": null,"publishedAt": "2026-10-15T09:31:36Z","url": "https://careers.bunq.com/o/head-of-product-6","applyUrl": "https://careers.bunq.com/o/head-of-product-6/c/new","descriptionText": "As Head of Product, your mission is to lead...","isNew": null,"scrapedAt": "2026-10-24T04:37:29Z"}
Download as JSON, CSV, Excel or XML, or read it through the Apify API. Each run also saves a RUN_SUMMARY record (boards scanned, boards not found, jobs returned) in its key-value store.
Monitoring: only new jobs
- Set Only return jobs not seen in earlier runs to on, and give your search a Monitor name (e.g.
data-jobs-fr). - Create a Schedule in Apify Console (e.g. every morning).
- Each run returns only postings that appeared since the previous run (
isNew: true). Connect a webhook, Make, Zapier or n8n to push them to Slack, a sheet or your database.
Jobs are remembered for 90 days. Use a different monitor name for each separate search.
Pricing
$1.50 per 1,000 jobs returned (pay per result), plus Apify's small per-run start fee. You never pay for boards that return nothing, and in monitoring mode you only pay for new jobs. Set a maximum cost per run in the run options if you want a hard ceiling.
Typical costs: a keyword search across the whole directory returning 300 jobs costs about $0.45. Monitoring 100 companies daily typically returns 20 to 100 new jobs a day, about $1 to $4.50 a month.
FAQ
Is this legal? The Actor reads public job postings that employers publish on purpose, through the endpoints the job systems provide for that. It collects no personal data.
A company I need isn't in the directory. Paste its career page URL in "Your own career pages". Any company on the 6 systems works, not just the ones in the directory. You can also open an issue with the URL and it will be added to the directory at the next refresh.
Why is a field empty? Fields are only filled when the employer publishes them. Salary, for example, is published by a minority of employers.
Workday, SmartRecruiters, Workable? Not yet. Open an issue if you need one, and it will be prioritised by demand.
Other Actors by Clearfeed Data
- Shopify Product Scraper & Search: 290+ European Stores: products, prices and stock across European Shopify stores
- European Startup Funding Rounds (Crunchbase Alternative): every European startup funding round as data
- Google News Scraper & Monitor (Multi-Country): Google News in 60+ countries with real URLs and only-new alerts
- App Store & Google Play Reviews Scraper (Multi-Country): iOS and Android reviews in 60+ countries with only-new alerts