Added

Jobs and Salary Bands Available


Summary

Two new resources are now available through the Personio API:

  1. JobsGET /v2/jobs and GET /v2/jobs/{id}
  2. Salary BandsGET /v2/salary-bands and GET /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:

AttributeDescription
nameThe human-readable title of the job (e.g. "Senior Software Engineer").
job_familyThe functional grouping the job belongs to (e.g. "Engineering", "Product").
levelThe seniority / career-step indicator associated with the job (e.g. "L4", "Senior").
job_trackThe career track the job's level belongs to (e.g. "Management", "Individual Contributor").
global_gradeThe 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_idsReferences 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"