Recruitment Processes
Processes (campaigns) bring together the candidates, jobs, and stages of a recruitment pipeline. Each stage can be an AI interview, a technical test, or a human review.
campaigns:read for reading, campaigns:write for creation and management.List processes
/api/campaignsReturns the organization's list of recruitment processes, along with their stages and configuration.
Query Parameters
| Paramètre | Type | Requis | Description |
|---|---|---|---|
page | integer | Non | Page number (default: 1). |
pageSize | integer | Non | Results per page (default: 20). |
jobId | string | Non | Filter by job posting. |
status | string | Non | Filter by status: DRAFT | ACTIVE | PAUSED | COMPLETED | ARCHIVED. |
Get a process
/api/campaigns/:idReturns the details of a process with its stages, candidates, and recent interviews.
Path Parameters
| Paramètre | Type | Requis | Description |
|---|---|---|---|
id | string | Oui | Unique identifier of the process. |
Create a process
/api/campaignsCreates a new recruitment process linked to a job posting.
Body Parameters
| Paramètre | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Name of the process. |
jobId | string | Oui | Identifier of the linked job posting. |
description | string | Non | Description of the process. |
status | string | Non | Initial status: DRAFT (default) | ACTIVE. |
startDate | string (ISO 8601) | Non | Start date of the process. |
endDate | string (ISO 8601) | Non | Planned end date. |
targetCount | integer | Non | Target number of candidates to recruit. |
interviewConfigId | string | Non | Default interview configuration (InterviewConfig.id). Shared by the campaign's AI_INTERVIEW stages unless overridden at the stage level. |
Pipeline: stage management
Each process is structured into ordered stages (PipelineStage). A stage can be an AI voice interview (AI_INTERVIEW), a technical test (TEST), a pre-qualification (AI_PREQUALIFICATION) or a human review (HUMAN_REVIEW).
/api/campaigns/:id/pipelineReturns the pipeline stages with each candidate's progress, scores, and associated interviews.
Add a stage to the pipeline
/api/campaigns/:id/pipelineAdds a new stage at the end of the pipeline. The order is assigned automatically.
Body Parameters
| Paramètre | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Display name of the stage. |
type | string | Oui | Type: AI_INTERVIEW | AI_PREQUALIFICATION | TEST | HUMAN_REVIEW. |
description | string | Non | Description of the stage. |
order | integer | Non | Position in the pipeline (auto if omitted). |
isRequired | boolean | Non | Stage required to advance (default: true). |
config | object | Non | Initial configuration (see the Configure a stage section). |
Configure a stage
A stage's configuration is a JSON object that defines its behavior. Its contents vary depending on the stage's type type.
/api/stages/:stageId/configUpdates a pipeline stage's configuration. For TEST stages, it also updates the testTemplateId relation.
Common fields (all types)
| Paramètre | Type | Requis | Description |
|---|---|---|---|
evaluatorType | string | Non | AI (default) | HUMAN. |
minimumScore | integer | Non | Minimum score (0-100) required to move to the next stage. |
autoAdvance | boolean | Non | Automatically advance to the next stage if score ≥ minimumScore. |
notifyRecruiterAfter | boolean | Non | Notify the recruiter on each completion. |
generateReport | boolean | Non | Generate an AI report after completion. |
AI_INTERVIEW / AI_PREQUALIFICATION fields
| Paramètre | Type | Requis | Description |
|---|---|---|---|
agentId | string | Non | AI agent to use. Overrides the InterviewConfig agent. |
duration | integer | Non | Interview duration in minutes (5-180). |
interviewType | string | Non | online | inperson. |
agentTone | string | Non | professional | friendly | formal | casual | empathetic. |
agentLanguage | string | Non | Language: fr | en | es | de | it. |
agentInstructions | string | Non | Additional instructions for the AI agent. |
topicsToAvoid | string | Non | Topics to avoid. |
suspicionLevel | integer | Non | Anti-cheating vigilance level: 0 (disabled) to 3 (maximum). |
evaluationCriteria | object[] | Non | Evaluation criteria: [{ id, name, weight, enabled }]. |
scoringThresholds | object | Non | Thresholds: { exceptional, excellent, good, average }. |
showLiveTranscription | boolean | Non | Show the live transcription to the candidate. |
TEST fields
| Paramètre | Type | Requis | Description |
|---|---|---|---|
technicalTestId | string | Non | ID of the TestTemplate to assign (null to unassign). |
testTimeLimit | integer | Non | Time limit in minutes (overrides the test's duration). |
testShuffleQuestions | boolean | Non | Shuffle the question order. |
testAllowBackNavigation | boolean | Non | Allow backward navigation between questions. |
HUMAN_REVIEW fields
| Paramètre | Type | Requis | Description |
|---|---|---|---|
recruiterId | string | Non | Identifier of the recruiter assigned to this stage. |
recruiterInstructions | string | Non | Scorecard instructions for the recruiter. |
AI_INTERVIEW, stage, you can either provide an agentId in the stage's config , or link an interviewConfigId to the campaign (campaign-level field). The stage config takes priority over the campaign config.Reorder stages
/api/stages/reorderReorders all the stages of a pipeline. Not possible while the campaign has the ACTIVE status.
Body Parameters
| Paramètre | Type | Requis | Description |
|---|---|---|---|
campaignId | string | Oui | Identifier of the campaign. |
stageIds | string[] | Oui | Array of stage IDs in the new order. |
ACTIVE status and candidates have already progressed. First switch the campaign to PAUSED.