Personio Job Scraper — Personio Jobs XML API | $3/1K
Pricing
from $3.00 / 1,000 job listings
Personio Job Scraper — Personio Jobs XML API | $3/1K
Unofficial — not affiliated with Personio. Personio jobs API: give company names or jobs.personio.de subdomains and get every open role in one schema — title, department, office, employment type, seniority, apply link. One request per company.
Pricing
from $3.00 / 1,000 job listings
Rating
0.0
(0)
Developer
KENKO
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Personio Job Scraper — Personio Jobs XML API
Unofficial — not affiliated with Personio. Personio jobs API: give company names or jobs.personio.de subdomains and get every open role in one schema — title, department, office, employment type, seniority, apply link. One request per company.
Input
{"companies": ["holidu","https://ottonova.jobs.personio.de"],"keywords": ["engineer","developer","manager"],"maxJobsTotal": 200}
Every filter is optional; companies is the only required field. maxJobsTotal
is what caps spend — you are billed per row delivered.
Output
One row per open role, the same schema for every company:
| field | notes |
|---|---|
title, department, team | as the board publishes them |
location, locations, country | locations is every place the role is open; location is the first of them and country its ISO-2 code, resolved from the feed where the feed has one and otherwise computed from the location text |
workplaceType, isRemote | the board's own field where it publishes one, otherwise inferred from the location text — remote if any published location reads remote; null when neither says, and isRemote follows workplaceType. It is a heuristic over free text and it is sometimes wrong: "Remote, OR" reads as remote work, not Oregon |
seniority | the level Personio publishes on the posting — entry-level, experienced, student, executive. Never guessed from the title, where "Senior" is as often the subject as the level |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | the Personio feed this reads carries no pay field, so these and salaryText are always null. They are in the schema because the multi-ATS build fills them from boards that do publish pay |
postedAt | ISO 8601, only where the board publishes a date. An open-ended age ("30+ days ago") is null, not a guess |
url, jobId, company, companySlug, provider |
Fields the board does not publish are null rather than guessed — except the ones
the table above marks as computed or inferred, which are derived from another field
on the same row and ship beside the field they came from.
Pricing
$3 per 1,000 rows. You are charged for rows delivered — filters are applied before anything is pushed, so a run that matches nothing costs nothing beyond the platform's start event.
Scope
Reads Personio's public job feed only, and only where the host's own robots.txt permits it. No logins, no candidate data, no applications, no personal data of any kind — job postings are the only thing it touches.
Need more than one ATS? The multi-ATS build detects Greenhouse, Lever, Ashby, Rippling, Workable and Personio from a bare company name, and reads Workday from a career-site URL.
Unofficial. Not affiliated with, endorsed by, or sponsored by Personio.