Personio Jobs API - Career Page Scraper, European Employers
Pricing
from $2.00 / 1,000 job results
Personio Jobs API - Career Page Scraper, European Employers
Personio jobs API and career page scraper. Read live postings from any Personio job board or careers page, or search thousands of known Personio ATS boards in one run. German, Austrian, Swiss and Dutch mid-market that US-built job tools do not reach.
Pricing
from $2.00 / 1,000 job results
Rating
0.0
(0)
Developer
Sulle H
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Personio Jobs Scraper — 5,172 European Career Sites
Personio is what small and mid-sized European companies run their hiring on — heavily German, Austrian, Swiss and Dutch, and almost entirely absent from job tools built around the US market. This Actor reads those boards: one company you name, or a bundled registry of 5,172 live Personio career sites carrying 41,685 open postings.
{ "keywords": ["entwickler", "developer"], "locations": ["berlin"], "maxJobs": 200 }
{ "companies": ["https://sennder.jobs.personio.de"] }
No login, no cookies, no proxies, no API key.
Why this coverage is hard to get elsewhere
Ask most job APIs for German mid-market hiring and you get whatever LinkedIn happened to syndicate.
Personio boards live on <company>.jobs.personio.de, one subdomain per employer, with no public
directory — the same shape that made Breezy invisible to path-based crawlers.
This registry was built by harvesting subdomains from the Wayback Machine index and validating each against the live endpoint. Entries returned real postings when they were checked, and a companion Actor re-validates the whole list on a schedule.
What you get
| Field | Description |
|---|---|
provider | Always personio — the same schema the multi-ATS Actors below emit |
company / companySlug | Employer subdomain |
jobId | Personio posting id — stable, so it works as a dedupe key across runs |
title | Job title, as published (usually German, often with (m/w/d)) |
location | Office name, e.g. Bremen Teerhof |
department | Department label |
employmentType | Festanstellung, Praktikum and so on, in the employer's own wording |
applyUrl | Direct link to the posting |
scrapedAt | When this row was read |
Measured across live boards: title, location and employment type are present on 100% of rows, department on 98%.
What Personio does not publish
No description text and no posting date. The search endpoint returns the fields above and
nothing more — descriptionText and postedAt are null on every row. Measured on 49 postings
across live boards, the description field exists in the payload and is empty on all of them.
Two consequences worth planning for:
- If you need body text, Greenhouse, Workable, Ashby and Pinpoint publish it. The Career Site Job Feed covers those in this same output schema.
- Because there is no date,
postedWithinDayskeeps Personio rows rather than dropping them — their age is unknown, not old. The same rule applies to Workday.
Input
| Option | What it does |
|---|---|
keywords | Keep only titles containing one of these. Case-insensitive. |
excludeKeywords | Drop titles containing any of these, e.g. praktikum, werkstudent. |
locations | Keep only locations containing one of these. |
remoteOnly | Keep postings whose office or schedule looks remote. |
postedWithinDays | Freshness filter. Personio rows have no date and are always kept. |
companies | Subdomains or board URLs. Leave empty to search all 5,172. |
maxBoards | How many boards to scan, largest-first. |
maxJobs | Hard cap on rows, so a run costs what you expect. |
Searching in German pays off here — entwickler, vertrieb, pflege, buchhaltung will match
more than their English equivalents on most of these boards.
Finding a company slug
The board lives at <slug>.jobs.personio.de, so the slug is the subdomain. Paste the whole URL if
you prefer — the Actor pulls the subdomain out. Some employers use the .com domain instead; both
are in the registry.
Or run without companies and read the companySlug column.
Recipes
Cover the German-speaking market properly. One run returns roles from hundreds of Mittelstand employers that no English-language aggregator lists.
Track a shortlist. Ten slugs in companies, run daily, diff the jobId set — new ids are
openings, missing ids are roles that closed.
Market research on EU hiring. Departments and offices across the registry show where European mid-market headcount is going.
Pricing
Pay per result — you are charged per job row delivered. A board that fails or returns nothing costs you nothing. Platform usage is included rather than billed on top.
Beyond Personio
Companies move between applicant tracking systems, and most job-data projects need more than one:
- Career Site Job Feed — the same engine across every platform in this family, in one run, with an identical output schema.
- New Job Alerts — the same coverage, but each run returns only what appeared since the previous run.
Notes
- A dead slug never aborts the run. Failures land in a
FAILED_BOARDSrecord in the key-value store, with the reason for each. companySlug:jobIdis a stable key, safe for detecting what opened and closed between runs.- No login, no proxies, no API key. Personio publishes this endpoint openly. Private boards are invisible to every scraper, including this one.