Entretiens

Gérez les entretiens vocaux IA — listez, consultez et créez des sessions d'entretien.

Scope requis : interviews:read pour la lecture, interviews:write pour la création.

Lister les entretiens

GET/api/v1/interviews

Retourne la liste paginée des entretiens de l'organisation.

Query Parameters

ParamètreTypeRequisDescription
pageintegerNonNuméro de page (défaut : 1).
pageSizeintegerNonRésultats par page — max 100 (défaut : 20).
statusstringNonFiltrer par statut : DRAFT | INVITED | IN_PROGRESS | COMPLETED | CANCELLED | EXPIRED.
jobIdstringNonFiltrer par offre d'emploi.
campaignIdstringNonFiltrer par processus de recrutement.
Requête
Réponse 200

Obtenir un entretien

GET/api/v1/interviews/:id

Retourne le détail complet d'un entretien, incluant l'évaluation et la transcription.

Path Parameters

ParamètreTypeRequisDescription
idstringOuiIdentifiant unique de l'entretien.
Requête
Réponse 200

Créer un entretien

POST/api/v1/interviews

Crée un nouvel entretien et envoie l'invitation au candidat.

Body Parameters

ParamètreTypeRequisDescription
candidateIdstringOuiIdentifiant du candidat.
jobIdstringOuiIdentifiant de l'offre d'emploi.
campaignIdstringNonProcessus de recrutement associé.
stageIdstringNonÉtape du pipeline à laquelle rattacher l'entretien.
configIdstringNonIdentifiant de la configuration d'entretien à utiliser.
expiresAtstring (ISO 8601)NonDate d'expiration du lien d'invitation (défaut : 7 jours).
sendInvitebooleanNonEnvoyer l'email d'invitation au candidat (défaut : true).
bash
Réponse 201

Workflow de l'agent IA

L'agent vocal Python utilise une série d'endpoints internes pour conduire un entretien en temps réel. Ces routes ne font pas partie de l'API v1 publique mais sont documentées ici pour les intégrations avancées et la compréhension du flux de données.

Ces endpoints requièrent le header interne X-Agent-Secret ou un token LiveKit valide. Ils ne sont pas accessibles avec une clé API standard.

Tours de parole

POST/api/interviews/:id/turns

Enregistre un tour de parole de l'agent ou du candidat. Utilisé par l'agent en temps réel à chaque échange vocal.

Body — Créer un tour

ParamètreTypeRequisDescription
turnNumberintegerOuiNuméro séquentiel du tour (1, 2, 3…).
rolestringOuiLocuteur : 'agent' | 'candidate'.
contentstringNonTranscription textuelle du tour (peut être vide si en cours).
audioUrlstringNonURL de l'enregistrement audio du tour.
isPendingQuestionbooleanNonMarque ce tour comme question pendante (l'agent attend la réponse).
evaluationobjectNonRésultat de l'évaluation GPT-4o pour ce tour (scores par critère, flags).
Exemple — question agent
Exemple — réponse candidat
PATCH/api/interviews/:id/turns/:turnNumber

Met à jour un tour existant — typiquement pour ajouter la transcription finale et l'évaluation après que le candidat a fini de répondre.

Body

ParamètreTypeRequisDescription
contentstringNonTranscription finale corrigée.
audioUrlstringNonURL audio définitive (post-processing).
evaluationobjectNonRésultat d'évaluation GPT-4o mis à jour.
GET/api/interviews/:id/history

Retourne l'historique complet des tours de parole pour un entretien. Utilisé par l'agent au redémarrage et par les clients pour afficher la transcription.

Réponse 200

Finaliser un entretien

POST/api/interviews/:id/finalize

Clôture l'entretien, génère le rapport IA et la scorecard. Déclenché automatiquement par l'agent à la fin de la conversation.

Body Parameters

ParamètreTypeRequisDescription
endedAtstring (ISO 8601)NonHeure de fin effective de l'entretien.
audioUrlstringNonURL de l'enregistrement audio complet.
generateReportbooleanNonDéclencher la génération du rapport IA (défaut : basé sur la config de l'étape).
Requête
Réponse 200
Après finalisation, le recruteur peut accéder au rapport via GET /api/v1/reports/:reportId et au rapport enrichi via la page de résultats de l'entretien dans l'interface recruteur.

Questions fréquentes

Non. Un entretien avec le statut COMPLETED est définitif. Créez un nouvel entretien pour le même candidat si nécessaire.

Le champ audioUrl dans la réponse de GET /api/v1/interviews/:id contient le lien vers l'enregistrement complet.

Oui, utilisez le champ expiresAt (ISO 8601) lors de la création. L'invitation est envoyée immédiatement mais le candidat peut rejoindre jusqu'à la date d'expiration.

Ces endpoints sont utilisés en interne par l'agent IA vocal. Ils ne sont pas exposés via l'API v1 publique. Pour accéder à la transcription et aux évaluations, utilisez GET /api/v1/interviews/:id qui inclut les champs transcript et evaluation.