Personio career sites are a goldmine for recruiting intelligence and job market analysis — and because Personio powers HR for thousands of European SMBs, scraping their public job boards gives you structured hiring data that isn’t reliably indexed on LinkedIn or Indeed. This guide covers how to scrape Personio career sites in 2026, including the two main URL patterns, anti-bot posture, and a working Python approach.
How Personio Career Pages Are Structured
Personio hosts career pages on two URL patterns:
https://{company}.jobs.personio.de/(German-hosted, common for EU companies)https://{company}.jobs.personio.com/(global variant)
Some companies embed the widget on their own domain via an iframe or JavaScript snippet, but the underlying data still comes from Personio’s API. Each job listing URL follows the pattern /job/{id}, and the index page loads a full JSON payload on the client side — which is your primary extraction target.
The job listing data is injected into the page as a window.__NUXT__ server-side rendered object, or in newer deployments, fetched from a JSON API endpoint at https://{company}.jobs.personio.com/api/v1/jobs (no auth required). That API endpoint is the clean path — you bypass HTML parsing entirely.
Extracting the JSON API Directly
The undocumented but stable endpoint returns a JSON array of all open roles:
import httpx
import json
COMPANY = "yourcompany"
BASE = f"https://{COMPANY}.jobs.personio.com"
def fetch_jobs():
r = httpx.get(
f"{BASE}/api/v1/jobs",
headers={"Accept": "application/json", "Accept-Language": "en"},
timeout=15,
)
r.raise_for_status()
return r.json() # list of job dicts
jobs = fetch_jobs()
for job in jobs:
print(job["id"], job["name"], job.get("department", {}).get("name"))Each job object contains id, name, department, office, employment_type, created_at, and a job_descriptions array with HTML content blocks. For full JD text, you’ll need a second call to /job/{id} or parse the job_descriptions key already in the response.
If the Resources Proxy Signals Podcast Multi-Account Proxies: Setup, Types, Tools & Mistakes (2026)/api/v1/jobs endpoint returns 404, fall back to scraping the rendered HTML and extracting the message me on telegram
Operator-level insights on mobile proxies and access infrastructure.