API pour partenaires ATS
Cette API permet aux partenaires ATS (Applicant Tracking Systems) d'intégrer Omogen comme service tiers pour gérer les entretiens de préqualification et de réactivation de leurs candidats. Elle fournit des endpoints pour synchroniser les offres d'emploi, créer des processus d'entretien, et des webhooks pour recevoir les rapports d'évaluation.
Télécharger la spec OpenAPI
Cette page est générée depuis une spec OpenAPI 3.0 disponible au téléchargement : 📄 JSON · 📄 YAML
Omogen automatise les entretiens téléphoniques avec les candidats via son agent conversationnel Alex, évalue leur adéquation avec les critères de sélection et génère des rapports détaillés pour aider les recruteurs dans leur prise de décision.
Configuration en self-serve
L'intégration se crée et se configure directement depuis l'application Omogen, sans passer par le support. Voir Créer l'intégration. En cas de question, vous pouvez tout de même nous contacter : gillian@omogen.ai.
Créer l'intégration
L'intégration « API personnalisée » se crée en quelques clics depuis l'application Omogen :
- Ouvrez le menu Intégrations.
- Cliquez sur Nouvelle intégration (
+). - Choisissez Custom (l'intégration API personnalisée) dans la liste des connecteurs disponibles.
- Renseignez les paramètres (voir ci-dessous), puis validez.
Dès la création, Omogen génère automatiquement vos deux clés (clé API et clé partenaire) : elles s'affichent dans la fiche de l'intégration, prêtes à copier. Vous n'avez plus à les demander au support.
Vous pouvez à tout moment rouvrir la fiche pour copier vos clés, modifier la configuration, ou désactiver l'intégration (la désactivation remplace la suppression : la configuration et l'historique sont conservés).
Paramètres de configuration
Les paramètres sont regroupés en trois sections.
Connexion
| Paramètre | Éditable | Description |
|---|---|---|
| Clé API | ❌ (généré) | Clé Bearer générée par Omogen — affichage et copie seulement. |
| Clé partenaire | ❌ (généré) | Clé envoyée dans le header OM-PARTNER — affichage et copie seulement. |
Identifiant d'agence (agency_id) | ✅ | Optionnel. Permet de distinguer plusieurs bridges qui partagent les mêmes clés (laisser vide si non utilisé). |
URL de base (base_url) | ✅ | URL de votre endpoint qui recevra les webhooks (rapports, callbacks). Requise si les webhooks sont activés. |
Webhooks
| Paramètre | Description |
|---|---|
Envoyer le webhook de rapport (send_report_created_webhook) | Active l'envoi d'un webhook vers votre endpoint à la génération d'un rapport (activé par défaut). |
Format du rapport (report_format) | V2 (format API Partenaires, recommandé) ou default. |
Méthode HTTP (webhook_http_method) | PUT (défaut) ou POST. |
Headers du webhook (webhook_headers) | Paires clé/valeur ajoutées à chaque envoi (typiquement votre header d'authentification, ex. x-api-key). |
Envoyer le webhook call_booked (send_call_booked_webhook) | Optionnel. Envoie aussi un webhook quand un candidat réserve un créneau. |
URL call_booked dédiée (call_booked_webhook_url) | Optionnel. URL séparée pour les callbacks call_booked (par défaut, l'URL de base est utilisée). |
Avancé
| Paramètre | Description |
|---|---|
URL de récupération des offres (job_fetch_url) | Pull flow uniquement. Template d'URL de votre endpoint, doit contenir le placeholder {job_id} (ex. https://api.partner.com/v1/jobs/{job_id}). |
Headers de récupération (job_fetch_headers) | Pull flow. Paires clé/valeur ajoutées aux requêtes de récupération des offres (ex. Authorization). |
Secret de signature (job_fetch_secret) | Pull flow. Secret partagé pour signer les requêtes en HMAC-SHA256 (voir Signature des requêtes). |
Config de triage par défaut (default_triage_config_id) | Optionnel. UUID d'une configuration de triage pour router les candidats vers les offres via analyse du CV. |
Quel flow choisir ?
Les paramètres « Avancé » ne concernent que le Flow 2 (Pull). Pour le Flow 1 (Push) et le Flow 3 (Direct), seules les sections Connexion et Webhooks sont nécessaires. Voir le comparatif des trois flows.
Authentification
L'authentification se fait via deux clés distinctes :
- Une clé API Omogen transmise dans le header
Authorizationavec le format Bearer token - Une clé partenaire transmise dans le header
OM-PARTNERpour identifier le partenaire ATS
Headers requis
Authorization: Bearer <API_KEY>
OM-PARTNER: <PARTNER_KEY>Exemple
curl -X GET https://api.omogen.ai/api/v1/integration-partner/interview-params \
-H "Authorization: Bearer sk_partner_abc123xyz..." \
-H "OM-PARTNER: partner_xyz" \
-H "Content-Type: application/json"Gestion des clés
Les deux clés sont générées automatiquement lors de la création de l'intégration dans l'application Omogen. Chaque paire de clés est liée à une organisation spécifique. Vous les retrouvez à tout moment dans la fiche de l'intégration (menu Intégrations) — affichage et copie seulement, sans intervention du support.
- Clé partenaire : transmise dans le header
OM-PARTNER, elle identifie l'origine des requêtes. - Clé API : transmise dans le header
Authorizationau format Bearer token.
Flows d'intégration
Omogen propose trois modes d'intégration. Le choix dépend de qui détient le référentiel des offres et de la quantité d'informations que le partenaire peut envoyer en amont.
Comparatif des trois flows
| Aspect | Flow 1 : Push | Flow 2 : Pull | Flow 3 : Direct |
|---|---|---|---|
| Qui détient les jobs ? | Le partenaire (ATS) | Le partenaire (ATS) | Omogen — jobs créées dans l'interface Omogen |
| Que faut-il envoyer dans la candidature ? | external_job_id + (optionnel) job_title / job_description | external_job_id uniquement (Omogen va chercher les détails) | job_opportunity_id (UUID Omogen) |
| Complexité côté partenaire | Faible (appels API sortants uniquement) | Moyenne (endpoint à implémenter) | Faible — pas de gestion de jobs côté partenaire |
| Pré-requis | Aucun endpoint à développer | Endpoint de lecture des jobs requis | Les jobs sont créées par les recruteurs dans l'interface Omogen |
| Configuration Omogen | Clés API uniquement | Clés API + URL endpoint + credentials partenaire | Clés API uniquement |
Choix mutuellement exclusifs
Un appel à POST /applications (ou /applications/cv-only) ne peut utiliser qu'un seul mode de résolution de la job : soit external_job_id (Flows 1 & 2), soit job_opportunity_id (Flow 3), soit aucun des deux pour le mode triage. Envoyer external_job_id ET job_opportunity_id retourne 400 INVALID_PAYLOAD.
Flow 1 : Push (synchronisation par le partenaire)
Le partenaire ATS synchronise les offres d'emploi avant d'envoyer les candidatures.
Flow 2 : Pull (récupération par Omogen)
Le partenaire envoie directement les candidatures. Omogen récupère automatiquement les informations de l'offre d'emploi via un endpoint exposé par le partenaire.
Configuration du Flow 2 dans Omogen
Pour activer le Flow 2 (Pull), configurez les paramètres suivants dans la section Avancé de la fiche d'intégration (menu Intégrations → votre intégration → Modifier) :
| Paramètre | Description |
|---|---|
job_fetch_url | URL template de l'endpoint partenaire. Doit contenir le placeholder {job_id}, qu'Omogen remplace par l'external_job_id au moment de l'appel (ex : https://api.partner.com/v1/jobs/{job_id}) |
job_fetch_headers | Headers statiques injectés sur chaque requête (ex : {"Authorization": "Bearer <partner_api_key>"}). Utilisé pour l'authentification standard côté partenaire. |
job_fetch_secret | Secret partagé utilisé pour signer chaque requête en HMAC-SHA256 (optionnel mais recommandé). Voir la section « Signature des requêtes » ci-dessous. |
Endpoint à implémenter (Flow 2)
Endpoint : GET <job_fetch_url> où le placeholder {job_id} est remplacé par l'external_job_id envoyé dans POST /applications.
Headers envoyés par Omogen :
<headers configurés dans job_fetch_headers>
Content-Type: application/json
OM-OMOGEN-TIMESTAMP: <unix_timestamp>
OM-OMOGEN-REQUEST: <hmac_sha256_signature>Signature des requêtes (recommandé)
Lorsque job_fetch_secret est configuré, Omogen signe chaque requête afin que le partenaire puisse vérifier l'origine de l'appel. Le partenaire doit recomposer la même signature de son côté et la comparer au header OM-OMOGEN-REQUEST.
timestamp = str(int(unix_time_seconds))
payload = f"{timestamp}.{external_job_id}"
signature = HMAC_SHA256(secret=job_fetch_secret, message=payload).hexdigest()Anti-rejeu
Le timestamp est en secondes Unix. Il est recommandé de rejeter les requêtes dont le timestamp s'écarte de plus de 5 minutes de l'heure serveur du partenaire afin de limiter les attaques par rejeu.
Réponse attendue (200 OK)
{
"job_title": "Développeur Full Stack Python/React",
"job_description": "Nous recherchons un développeur full stack expérimenté...",
"metadata": {
"department": "Engineering",
"location": "Paris",
"contract_type": "CDI"
}
}| Champ | Type | Requis | Description |
|---|---|---|---|
job_title | string | ✅ | Titre du poste |
job_description | string | ✅ | Description complète du poste (min. 100 caractères recommandé) |
metadata | object | ❌ | Champs additionnels libres (stockés comme metadata dans Omogen) |
Codes d'erreur attendus côté partenaire
| Code partenaire | Description | Code Omogen renvoyé au partenaire |
|---|---|---|
200 | Succès | Création/mise à jour de la job |
404 | Job non trouvée | 400 JOB_FETCH_NOT_FOUND |
4xx/5xx | Erreur serveur partenaire | 502 JOB_FETCH_HTTP_ERROR |
| timeout/réseau | Erreur réseau | 502 JOB_FETCH_NETWORK_ERROR |
| JSON invalide | Réponse non parsable | 502 JOB_FETCH_INVALID_RESPONSE |
200 sans job_title | Champ obligatoire manquant | 502 JOB_FETCH_MISSING_TITLE |
Flow 3 : Direct (jobs créées dans Omogen)
Pour les partenaires qui n'ont pas d'ATS et créent leurs offres directement dans l'interface Omogen, l'API accepte un job_opportunity_id (UUID Omogen) au lieu d'un external_job_id. Aucun mapping côté Omogen n'est créé — la candidature pointe directement sur la job existante.
Le job_opportunity_id est scopé à l'organisation : envoyer un UUID qui pointe sur une job appartenant à une autre organisation retourne 400 JOB_OPPORTUNITY_NOT_FOUND.
Lien d'invitation candidat
Pour les modes de déploiement où le candidat se planifie lui-même (pas d'appel sortant immédiat), Omogen génère un lien d'invitation au format https://agent.omogen.ai/invitation/{process_id}. Le candidat clique sur ce lien pour choisir un créneau d'entretien.
Modes de déploiement avec lien d'invitation
| Mode | Comportement |
|---|---|
email-invitation | Omogen envoie un email au candidat avec le lien |
sms-invitation | Omogen envoie un SMS au candidat avec le lien |
whatsapp-invitation | Omogen envoie un WhatsApp au candidat avec le lien |
invitation-link-only | Omogen n'envoie rien — le partenaire affiche le lien dans sa propre interface |
Quand utiliser invitation-link-only
Choisissez ce mode si vous voulez contrôler totalement la communication avec le candidat (par ex. l'afficher dans votre propre portail candidat ou votre dashboard de recruteur). Le processus est créé en statut active et expire automatiquement après 10 jours sans réservation, comme les autres modes invitation.
Récupérer le lien dans la réponse
POST /applications (et /applications/cv-only) renvoient le lien dans le champ data.invitation_link dès lors que le mode de déploiement résolu est un mode invitation :
{
"success": true,
"message": "Application synchronized and process created successfully",
"data": {
"process_id": "9b6e81e0-5736-4106-ba8b-86df6a43b663",
"status": "in_progress",
"invitation_link": "https://agent.omogen.ai/invitation/9b6e81e0-5736-4106-ba8b-86df6a43b663",
"..." : "..."
}
}Pour les modes orientés appel (single-call, sms-then-call, 3-days, reactivation, whatsapp-then-call, cv-only), invitation_link vaut null : la page d'invitation existe mais le formulaire de réservation n'est pas activé pour ces processus, donc afficher le lien mènerait le candidat vers une page non fonctionnelle.
Référence des endpoints
La section suivante est générée automatiquement à partir de la spécification OpenAPI openapi-partenaires.yaml.
Get Interview Params
Get Interview Params
Récupère les paramètres de configuration disponibles pour les entretiens.
Permet aux utilisateurs de choisir d'activer Omogen et de sélectionner un mode de déploiement.
⚠️ Les paramètres exacts peuvent être personnalisés pour améliorer l'expérience utilisateur dans l'ATS.
Authorizations
Clé API Omogen envoyée dans le header Authorization: Bearer <API_KEY>. Fournie par le support Omogen.
Clé partenaire unique envoyée dans le header OM-PARTNER: <PARTNER_KEY>. Identifie l'ATS source.
Parameters
Query Parameters
Code langue des libellés retournés
"fr""en""fr"Responses
Paramètres récupérés avec succès
Sync a Job Offer
Sync a Job Offer
Synchronise une offre d'emploi dans Omogen. Le endpoint retourne immédiatement
(201 Created) avec l'id de la job et un edit_url. L'extraction des critères
de sélection et la génération du plan d'entretien se font de manière asynchrone
en arrière-plan.
ℹ️ Cet endpoint est utilisé uniquement dans le Flow 1 (Push). Dans le Flow 2,
les jobs sont créées automatiquement lors de la réception d'une candidature.
Idempotence : si external_job_id est fourni et qu'une job avec cet identifiant
existe déjà pour l'organisation, l'endpoint retourne 200 OK au lieu de 201 et
ne recrée pas la job.
Authorizations
Clé API Omogen envoyée dans le header Authorization: Bearer <API_KEY>. Fournie par le support Omogen.
Clé partenaire unique envoyée dans le header OM-PARTNER: <PARTNER_KEY>. Identifie l'ATS source.
Request Body
Responses
Job déjà existante (idempotence sur external_job_id)
Sync an Application
Sync an Application (Create Interview Process)
Crée ou met à jour un candidat et crée un processus d'entretien (process) pour celui-ci.
Le candidat sera contacté selon le mode de déploiement spécifié.
Comportement selon le flow
- Flow 1 (Push) : l'
external_job_iddoit correspondre à une job déjà synchronisée viaPOST /jobs. - Flow 2 (Pull) : Omogen récupère automatiquement les infos de l'offre via l'endpoint du partenaire.
- Flow 3 (Direct) : envoyer
job_opportunity_id(UUID Omogen) au lieu d'external_job_idquand la job a été créée dans l'interface Omogen. - Mode triage : si aucun des deux IDs n'est fourni et que le mode triage est activé, Omogen utilise le CV pour déterminer automatiquement la job cible.
external_job_id et job_opportunity_id sont mutuellement exclusifs.
Pour un appel à cet endpoint qui n'inclut que le CV (sans données candidat),
utiliser plutôt POST /applications/cv-only.
CV du candidat (optionnel)
Le CV est facultatif sur cet endpoint. S'il est fourni, deux moyens sont
acceptés, exclusifs :
cv_url: une URL publique vers le fichier ;cv_file: le contenu du fichier encodé en base64 (auquel cas
cv_filenameest requis).
Si les deux sont envoyés, cv_file (base64) est prioritaire.
Authorizations
Clé API Omogen envoyée dans le header Authorization: Bearer <API_KEY>. Fournie par le support Omogen.
Clé partenaire unique envoyée dans le header OM-PARTNER: <PARTNER_KEY>. Identifie l'ATS source.
Request Body
Responses
Application déjà existante (idempotence)
Sync a CV-only Application
Sync an Application from CV only
Crée un processus d'entretien à partir d'un CV seul. Omogen extrait automatiquement
les informations candidat (nom, prénom, email, téléphone) depuis le CV via un service
d'extraction. Si l'extraction échoue pour certains champs, les valeurs de secours
fournies dans la requête sont utilisées.
Format de la requête : multipart/form-data ou application/json.
Le CV peut être fourni soit en base64 via cv_file, soit via une URL publique via
cv_url. L'un des deux est obligatoire.
Extensions supportées : .pdf, .doc, .docx, .txt, .rtf.
Authorizations
Clé API Omogen envoyée dans le header Authorization: Bearer <API_KEY>. Fournie par le support Omogen.
Clé partenaire unique envoyée dans le header OM-PARTNER: <PARTNER_KEY>. Identifie l'ATS source.
Request Body
Contenu du CV encodé en base64. Exclusif avec cv_url — au moins l'un des deux est requis.
"byte"URL publique vers le CV. Exclusif avec cv_file — au moins l'un des deux est requis.
"uri"Nom du fichier avec extension (.pdf, .doc, .docx, .txt, .rtf)
Prénom de secours si l'extraction depuis le CV échoue
Nom de secours si l'extraction depuis le CV échoue
Email de secours si l'extraction depuis le CV échoue
"email"Téléphone de secours si l'extraction depuis le CV échoue
ID de l'offre dans le système partenaire. Mutuellement exclusif avec
job_opportunity_id. Optionnel si mode triage ou si
job_opportunity_id est fourni.
UUID Omogen de la job (Flow 3 Direct). Mutuellement exclusif avec
external_job_id. Voir le schéma SyncApplicationRequest pour le détail.
"uuid""prequalification""reactivation""prequalification"Mode de déploiement (mêmes valeurs que SyncApplicationRequest.deployment_template,
y compris invitation-link-only).
Responses
Application déjà existante (idempotence)
Codes d'erreur
Tous les endpoints retournent un payload d'erreur au format ErrorResponse :
{
"success": false,
"error": "Message lisible",
"code": "MACHINE_READABLE_CODE"
}Le endpoint POST /applications/cv-only peut aussi retourner un champ details avec des informations de diagnostic (URL, status HTTP, raison technique).
Codes transversaux
| Code | Statut HTTP | Description |
|---|---|---|
AUTHENTICATION_FAILED | 401 | Clé API invalide ou absente, partenaire non reconnu |
INVALID_PAYLOAD | 400 | Payload mal formé (champs manquants, format invalide) |
VALIDATION_ERROR | 400 | Erreur de validation métier générique |
INTERNAL_ERROR | 500 | Erreur serveur inattendue |
Codes spécifiques à POST /applications
| Code | Statut HTTP | Description |
|---|---|---|
JOB_OPPORTUNITY_NOT_FOUND | 400 | Direct flow — le job_opportunity_id ne correspond à aucune job de l'organisation tied à votre bridge |
JOB_FETCH_NOT_FOUND | 400 | Pull flow — l'ATS partenaire a retourné 404 pour l'external_job_id |
PULL_FLOW_CONFIG_ERROR | 400 | Pull flow — job_fetch_url mal configuré (placeholder {job_id} manquant) |
CV_DOWNLOAD_FAILED | 400 | Échec du téléchargement du CV depuis cv_url |
CV_DECODE_FAILED | 400 | cv_file n'est pas un base64 valide |
CV_TOO_LARGE | 400 | Le CV décodé dépasse la taille maximale (10 Mo) |
JOB_FETCH_NETWORK_ERROR | 502 | Pull flow — erreur réseau en contactant l'ATS partenaire |
JOB_FETCH_HTTP_ERROR | 502 | Pull flow — l'ATS partenaire a retourné un statut 4xx/5xx |
JOB_FETCH_INVALID_RESPONSE | 502 | Pull flow — réponse non parsable (JSON invalide) |
JOB_FETCH_MISSING_TITLE | 502 | Pull flow — la réponse ne contient pas job_title |
Codes spécifiques à POST /applications/cv-only
| Code | Statut HTTP | Description |
|---|---|---|
CV_DOWNLOAD_FAILED | 400 | Échec du téléchargement du CV (cv_url injoignable ou cv_file base64 invalide) |
CV_INVALID_INPUT | 400 | Le contenu du CV n'est pas un document valide |
CV_EXTRACTION_FAILED | 400 | Échec du parsing du CV (format non reconnu, contenu illisible) |
CV_PROCESSING_ERROR | 400 | Erreur interne pendant l'extraction |
CV_EXTRACTION_UNEXPECTED_ERROR | 400 | Erreur inattendue pendant l'extraction |
Webhooks
Les webhooks sont envoyés par Omogen vers un endpoint HTTP configuré côté partenaire. Le partenaire doit répondre avec un statut 2xx pour acquitter la réception.
Configuration
L'URL du webhook et les headers d'authentification se configurent directement dans la fiche d'intégration (menu Intégrations → votre intégration → Modifier, section Webhooks). Voir Paramètres de configuration.
Paramètres configurables par organisation :
| Paramètre | Description |
|---|---|
URL de webhook (base_url) | Endpoint HTTP à appeler (utilisé pour report_generated et process_rejected) |
Méthode HTTP (webhook_http_method) | PUT (défaut) ou POST |
Headers custom (webhook_headers) | Headers d'authentification fournis par le partenaire (ex : x-api-key, Authorization) |
| Mode d'authentification | Headers statiques (défaut) ou OAuth 2.0 (client credentials) — voir Authentification des webhooks |
URL call_booked (optionnel) | Endpoint dédié aux événements call_booked (si séparé de l'URL principale) |
Timeout : 30 secondes. Aucun retry automatique — si l'endpoint partenaire échoue, le webhook est perdu (mais l'incident est loggé côté Omogen).
Authentification des webhooks
Par défaut, Omogen authentifie ses webhooks sortants à l'aide des headers statiques que vous fournissez (typiquement un x-api-key). Si votre endpoint est protégé par OAuth 2.0, Omogen peut à la place obtenir un bearer token et l'envoyer sur chaque appel.
Headers statiques (défaut)
Aucune configuration particulière : les headers custom configurés pour votre organisation sont envoyés tels quels sur chaque webhook. C'est le comportement de toutes les intégrations existantes.
OAuth 2.0 (Client Credentials)
Option opt-in, à activer par intégration. Vous fournissez à Omogen les paramètres suivants (via les settings d'intégration ou le support Omogen) :
| Paramètre | Requis | Description |
|---|---|---|
token_url | ✅ | URL du token endpoint OAuth 2.0 de votre fournisseur d'identité (ex : https://idp.partner.com/oauth/token) |
client_id | ✅ | Identifiant client OAuth 2.0 |
client_secret | ✅ | Secret client OAuth 2.0 (stocké chiffré côté Omogen, jamais réaffiché) |
scope | ❌ | Scope(s) à demander, séparés par des espaces (si votre IdP en exige) |
audience | ❌ | Paramètre audience (requis par certains IdP, ex : Auth0) |
Fonctionnement :
Avant d'envoyer un webhook, Omogen demande un token au
token_urlen Client Credentials :POST <token_url> Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>(avec
scopeet/ouaudiencesi configurés). La réponse attendue est un JSON{ "access_token": "...", "expires_in": 3600 }.Omogen ajoute le header
Authorization: Bearer <access_token>sur chaque webhook. Vos headers statiques (ex :x-api-key) restent envoyés en plus — les deux coexistent.Le token est mis en cache jusqu'à un peu avant son expiration (
expires_in− 60 s) ; Omogen n'appelle donc pas votretoken_urlà chaque webhook.Si votre endpoint répond
401ou403, Omogen invalide le token en cache et réessaie une fois avec un token frais.
Restriction d'IP
Si votre token_url ou votre endpoint webhook filtre par IP, contactez le support pour obtenir la liste des IP sortantes d'Omogen à autoriser.
report_generated
Envoyé lorsqu'un processus atteint un état terminal. C'est l'événement principal à implémenter côté partenaire.
Webhook - Report Generated
Webhook envoyé par Omogen lorsqu'un processus atteint un état terminal
(completed, failed, expired, canceled, incomplete). C'est l'événement
principal à implémenter côté partenaire.
À implémenter côté partenaire : un endpoint HTTP qui accepte ce payload
et répond avec un statut 2xx. L'URL de destination, la méthode (POST ou PUT)
et les headers d'authentification sont configurés dans Omogen.
Request Body
Responses
Webhook reçu (le partenaire doit répondre 2xx)
Quand le webhook est-il envoyé ?
| Statut du processus | interview_report présent ? | Quand ? |
|---|---|---|
completed | Oui (complet) | Après génération du rapport, tous critères évalués |
incomplete | Oui (partiel) | Après génération du rapport, certains critères manquants |
failed | Non (null) | Échec technique, raccrochage précoce, tentatives épuisées |
expired | Non (null) | Processus expiré (délai dépassé) |
canceled | Non (null) | Processus annulé manuellement |
INFO
Il est possible (rare) qu'un candidat rappelle après qu'un état terminal a été atteint. Dans ce cas, le processus repasse en in_progress, un nouvel entretien se déroule et un nouveau webhook est envoyé. Il est donc recommandé de toujours traiter les webhooks reçus, même si vous avez déjà reçu un état terminal pour ce process_id.
Tags d'appel
Liste de signaux détectés automatiquement lors de l'analyse de la conversation. La liste est vide ([]) si aucun signal n'a été détecté.
| Tag | Description |
|---|---|
early_hang_up | Le candidat a raccroché avant que des informations utiles aient pu être collectées |
prefers_recruiter | Le candidat a demandé à parler à un recruteur humain |
not_interested | Le candidat a explicitement indiqué ne pas être intéressé par le poste |
not_available | Le candidat a indiqué ne pas être disponible pour l'appel |
to_review | La conversation est incohérente et nécessite une vérification manuelle |
Codes de failure_reason
| Code | Description |
|---|---|
cv_required | CV requis mais non fourni |
cv_screening_failed | Le screening CV a échoué (erreur technique) |
cv_requirements_not_configured | Aucun critère CV configuré pour cette offre |
technical_error | Erreur technique interne |
all_attempts_failed | Toutes les tentatives d'appel ont échoué (non-réponse) |
early_hang_up | Le candidat a raccroché trop tôt pour collecter des informations |
call_booked
Envoyé lorsqu'un candidat a réservé un créneau d'appel via auto-planification (SMS ou email). Activé uniquement si la fonctionnalité est configurée pour l'organisation.
Webhook - Call Booked
Webhook envoyé par Omogen lorsqu'un candidat a réservé un rendez-vous
d'appel (auto-planification via SMS ou email). Activé uniquement si la
fonctionnalité est configurée pour l'organisation.
Request Body
Responses
Webhook reçu (le partenaire doit répondre 2xx)
process_rejected
Envoyé lorsqu'un candidat est rejeté avant la création d'un processus (échec de l'eligibility check, triage rejeté). Aucun appel n'est passé, aucun rapport n'est généré.
Webhook - Process Rejected
Webhook envoyé par Omogen lorsqu'un candidat est rejeté avant même la
création d'un processus (échec de l'eligibility check, job inéligible, etc.).
Utile pour informer l'ATS que la candidature ne sera pas traitée.
Contrairement à report-generated, aucun processus n'est créé — le champ
process_id peut être null.
Request Body
Responses
Webhook reçu (le partenaire doit répondre 2xx)
Statuts et fonctionnement
Statuts de processus
in_progress: Le processus est en cours d'exécution (appels, SMS, etc.)active: Le processus est actif et attend une action (ex : invitation SMS en attente de réservation)completed: Le processus est terminé avec succèsincomplete: Le processus n'a pas pu être complété (par ex. aucun appel n'a abouti)failed: Le processus a échoué (erreur technique, problème de connexion)expired: Le processus a expiré (délai dépassé)canceled: Le processus a été annulé manuellement
Statuts de rapport d'entretien
match: Le candidat correspond aux critères de sélectionno_match: Le candidat ne correspond pas aux critères de sélectionna: L'entretien n'a pas permis de déterminer le statut du candidat
Le rapport d'entretien inclut également :
report_status:in_progress,completed, oufailedoverall_score: Score global entre 0 et 1 (1 = parfait match)is_complete: Indique si le rapport est complet (tous les critères évalués)
Statuts de rapport CV
match: Le CV correspond aux critères (score >= seuil de matching)no_match: Le CV ne correspond pas aux critères (score < seuil de matching)
Comportement important
Si le rapport CV indique no_match, le processus s'arrête automatiquement avec le statut completed et aucun rapport d'entretien n'est généré. Cela permet d'économiser des crédits en évitant d'appeler des candidats qui ne correspondent pas aux critères de base.
Fonctionnement d'Omogen
Notes importantes
Validation des données
phone: accepte les formats internationaux (+33…) et nationaux (06…) — normalisé en E.164email: validation stricte du format emailcv_filename(CV-only) : extensions acceptées.pdf,.doc,.docx,.txt,.rtf
Modes de déploiement
| Mode | Description |
|---|---|
single-call | Un appel immédiat |
sms-then-call | Envoi d'un SMS puis appel 5 minutes plus tard |
sms-invitation | Envoi d'un SMS avec lien d'invitation pour auto-planification |
email-invitation | Envoi d'un email avec lien d'invitation pour auto-planification |
3-days | Tentatives réparties sur 3 jours |
reactivation | Appel → SMS (2 min) → Appel (1 heure) → Appel (le lendemain, 13h) |
Support et contact
Vos clés API se génèrent en self-serve à la création de l'intégration. Pour toute autre question sur l'API :
- Email : gillian@omogen.ai