How to integrate Personio jobs
Personio doesn't publish a list of their customers. We find and monitor their job boards for you every day.
Company job feeds
4,593
Jobs
37,070
New feeds (30 days)
+78
Obtain verified {account} slugs and XML feed_url values from our catalog.
HTTP GET each company's /xml feed and parse position elements into your schema. Plan a separate XML parser — Personio doesn't share JSON shapes with Greenhouse or Lever.
Monitor for new and retired feed URLs as employers adopt or leave Personio. There is no pagination on the XML feed; large employers return one document per request.
New to the catalog workflow? Start with Getting started.
Fetch jobs from the public API
Replace {account} with the subdomain from our catalog. Feeds may be served from jobs.personio.com or jobs.personio.de and can redirect between TLDs.
https://{account}.jobs.personio.com/xmlcurl "https://{account}.jobs.personio.com/xml"The XML root is workzag-jobs with one position element per open role. Parse id, name (title), office, department, jobDescriptions blocks (HTML in CDATA), and createdAt. Additional fields include employmentType, seniority, and schedule.
<?xml version="1.0" encoding="UTF-8"?>
<workzag-jobs>
<position>
<id>1001</id>
<name>Marketing Manager</name>
<office>Berlin</office>
<department>Marketing</department>
<jobDescriptions>
<jobDescription>
<name>Your tasks</name>
<value><![CDATA[Lead regional marketing programs.]]></value>
</jobDescription>
</jobDescriptions>
<createdAt>2026-02-10T12:00:00+00:00</createdAt>
</position>
</workzag-jobs>Normalize jobDescriptions HTML carefully for search indexes. Personio does not expose a posted-date field separate from createdAt on every feed.
API reference: Personio open positions.
Pricing
Get the full Personio feed catalog
Get access to 4,593 validated job feeds with 37,070 jobs on Personio and other ATS platforms in our catalog via API or CSV export.