Jobs and Salary Bands Available
Summary
Two new resources are now available through the Personio API:
- Jobs —
GET /v2/jobsandGET /v2/jobs/{id} - Salary Bands —
GET /v2/salary-bandsandGET /v2/salary-bands/{id}
Both resources are exposed as first-class endpoints, with filtering and sorting capabilities, and integrate with the existing Employment object through the job.id.
Details
What is a "Job"?
A Job in Personio is a composite entity that bundles together several attributes that historically lived as separate fields on an employment:
| Attribute | Description |
|---|---|
name | The human-readable title of the job (e.g. "Senior Software Engineer"). |
job_family | The functional grouping the job belongs to (e.g. "Engineering", "Product"). |
level | The seniority / career-step indicator associated with the job (e.g. "L4", "Senior"). |
job_track | The career track the job's level belongs to (e.g. "Management", "Individual Contributor"). |
global_grade | The global rank the job's level belongs to. A single global grade can span multiple levels — for example, levels L3.1 and L3.2 both belong to the same global grade. |
salary_band_ids | References to the salary bands associated with the job. |
Jobs
GET /v2/jobs returns a paginated list of jobs. GET /v2/jobs/{id} returns a single job by ID. Each job exposes a salary_band_ids array linking it to the salary bands it is associated with (population of the array requires the personio:salary-bands:read scope; otherwise the array will be empty).
Filtering by id and name and sorting by name are supported.
Required scope: personio:jobs:read
List jobs
curl -X GET "https://api.personio.de/v2/jobs" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Filter jobs by name
curl -X GET "https://api.personio.de/v2/jobs?name=Software%20Engineer" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Retrieve a single job
curl -X GET "https://api.personio.de/v2/jobs/a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Salary Bands
GET /v2/salary-bands returns a paginated list of salary bands. GET /v2/salary-bands/{id} returns a single salary band by ID. Salary bands expose minimum, midpoint (optional), and maximum values along with currency and metadata.
Filtering by id is supported.
Required scope: personio:salary-bands:read
List salary bands
curl -X GET "https://api.personio.de/v2/salary-bands" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Filter salary bands by ID
curl -X GET "https://api.personio.de/v2/salary-bands?id=e1f2a3b4-c5d6-7890-abcd-ef1234567890,a2b3c4d5-e6f7-8901-bcde-f23456789012" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Retrieve a single salary band
curl -X GET "https://api.personio.de/v2/salary-bands/e1f2a3b4-c5d6-7890-abcd-ef1234567890" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"