This article explains what a public Application Programming Interface (API) is and what can you use the Recruiting API for.
APIs allow data to be exchanged between Personio and another service or tool. This way, you can build connections between Personio and your own databases, or set up integrations with third-party providers that are available in the Personio Marketplace. Learn more about Personio public APIs.
In addition to the API, you can retrieve information about your published jobs from your XML feed and integrate this information into your website. Learn more about integrating jobs from Personio into your company website via XML.
Before you start
- To use the Marketplace and set up integrations, you need to have edit rights for Marketplace Integration and API.
- To integrate the Recruiting API, we recommend you consult an IT expert.
Transmit candidate data to Personio
You will need to use the Recruiting API if you already have a corporate career page and want your candidates to fill out an application form directly on it, without being redirected to Personio.
In this case, the API will transmit the candidate information to Personio. Learn more about transmitting candidate data to your Personio account.
Retrieve recruiting data from Personio
Personio offers a Recruiting GET endpoint. This allows you to retrieve your recruiting data and perform data analysis outside Personio.
The table below shows the available functionalities and the relevant links to the Developer Hub. Note that you can only retrieve the information outlined in this section from the v2 Recruiting endpoints.
| Functionality | Link to Developer Hub |
| Candidates | |
| Applications | |
| Jobs |
Note:
The API is a standard REST API. This type of interface is different from webhooks. Webhooks would automatically notify you about changes to an application, candidate, or job. REST APIs do not have this functionality. To detect changes when interfacing through a REST API, you need to check the returned results for differences. Personio can’t check this for you.
Key data points available
From the endpoints outlined above, you can retrieve the following data points:
Applications data
- Application ID, created_at, updated_at
- Current stage/status
- Job position ID and name
- Candidate ID and info
- Recruiting channel ID (if captured)
- Application date
- Hiring team
Stage transitions data (critical for time-based metrics)
- Transition history for each application
- From stage → To stage
- Transition timestamps
These data points enable all time-based calculations.
Jobs data
- Job ID and title
- Department and company
- Category ID
- Created/updated dates
- Hiring team
Candidate data
- Candidate ID
- Basic candidate info
- Created/updated dates
Categories data
- Category names and IDs
- Stages in the category
Use cases
You can retrieve useful recruiting data using the Recruiting API. The use cases in the tables below show you what’s possible.
Time-based metrics
| Use case | Data points needed |
| Time to hire | Possible using application-date and stage-transitions endpoints to track when candidates move to the Hired stage. |
| Time to offer | Possible by tracking stage transitions to the Offer stage. |
| Time to fill | Possible by comparing the job created_at date with the final hire date from applications. |
| Time in each stage | Possible via the stage-transitions endpoint. |
Application flow and conversion metrics
| Use case | Data points needed |
| Applications per stage | Available from the current stage status in the Applications endpoint. |
| Stage conversion rates | Calculate these rates using stage transition data. For example, the percentage of candidates that move from “Screening” to “Interview” to “Offer.” |
| Application volume over time | Track using created_at and updated_at timestamps. |
| Applications per job | Available via the job_id field in the Applications endpoint. |
Source and channel metrics
| Use case | Data points needed |
| Applications by hiring channel | Available if recruiting_channel_id is captured in the Applications endpoint. |
| Conversion rates by channel | Calculate these rates by combining channel data with stage transitions. |
Rejection and outcome metrics
| Use case | Data points needed |
| Offer acceptance rate | Possible by tracking applications that reach the Hired stage |
| Rejections by stage | Track using stage transitions to the Rejected system stage. |
| Declined offers | Possible by tracking applications that move from the Offer to Rejected stage. |
Job and category metrics
| Use case | Data points needed |
| Applications by job category | Available via the Jobs and Categories endpoints. |
| Applications by department, workplace, or location | Available from the job details in the Jobs endpoint. |
| Time to fill (by category) | Combine job category data with time metrics. |
Candidate metrics
| Use case | Data points needed |
| Candidate quality | Track how far candidates from each channel progress |
| Applications per candidate | Available via the Candidates endpoint (one candidate can have multiple applications). |
Next steps
- To get started, read our article on generating and managing API credentials.
- You will find a list of all parameters and further relevant information in our Developer Hub.