Envoi changements de statut
HelloWork met à disposition une API qui permet de mettre à jour le statut des candidatures envoyées aux ATS.
L'objectif de cette API est de garantir une meilleure réactivité et fraicheur des données aux produits à l'origine des candidatures.
Pour cela, il faut que les ATS utilisent cette API via un webhook pour notifier HelloWork dès que le statut d'une candidature évolue (changement de statut, changement d'offre, candidat recruté, candidature supprimée...)
Endpoint
Pour mettre à jour le statut d'une candidature, il faut réaliser un appel POST sur l'API HelloWork :
- L'url à appeler est fournie lors de la soumission de la candidature à l'ATS dans le champ
statusApiUrl, plus d'infos ici - Cette url peut aussi être reconstruite à partir de l'id de la candidature envoyée (champ
applicationId, voir ici) :
https://ats-partner.hellowork.com/v1/applications/{applicationId}/status
Format
Dans le body de la requête, le format à utiliser est le suivant :
{
status: string
eventDate: Date
created: Date
jobId: string
source: string | object
}
La définition des champs est la suivante :
| Champ | Obligatoire / Facultatif | Définition |
|---|---|---|
applicationId (query param) | Obligatoire | Identifiant de la candidature côté HelloWork ATS Partner. |
status | Obligatoire | Libellé du nouveau statut dans l'ATS. Dans la mesure où chaque ATS et chaque client peut avoir des besoins différents, il n'y a pas de norme ni d'énumération prédéfinie pour cette valeur. |
eventDate | Obligatoire | Date de l'évènement ayant causé la requête de mise à jour. |
created | Obligatoire | Date de création de la candidature dans l'ATS. |
jobId | Obligatoire | Identifiant de l'offre dans l'ATS. Obligatoire afin de notifier le produit à l'origine de la candidature en cas de changement d'offre dans l'ATS. |
source | Facultatif | String ou structure de champs représentant la source à l'origine de la candidature. La structure peut dépendre d'un ATS à l'autre. |
Plus d'informations sur le format de la requête à envoyer ici.
Exemple avec une source sur un champ
{
"status": "NEW_STATUS",
"eventDate": "2023-01-10T09:00:00.000Z",
"created": "2023-01-01T09:00:00.000Z",
"jobId": "2022-001-developer",
"source": "hellowork.com"
}
Exemple avec une source sur plusieurs champs
{
"status": "NEW_STATUS",
"eventDate": "2023-01-10T09:00:00.000Z",
"created": "2023-01-01T09:00:00.000Z",
"jobId": "2022-001-developer",
"source": {
"sourceTypeId": "DIRECT_SOURCING",
"sourceSubTypeId": "ClientId",
"sourceId": "CVCatcherWebsite"
}
}
Mapping des statuts
| Statut | Description |
|---|---|
NEW | Nouvelle candidature reçue par l’ATS |
SCREEN | Phase de présélection (ex. entretien téléphonique, tri initial) |
CONTACTED | Candidat contacté par le recruteur (e-mail, téléphone, etc.) |
REVIEW | Candidature en cours de révision ou d’évaluation interne |
LIKED | Candidature ajoutée à une shortlist ou marquée comme intéressante |
ASSESS_QUALIFICATIONS | Évaluation des qualifications (test, projet, épreuve technique, etc.) |
VERIFY_ELIGIBILITY | Vérification d’éligibilité (documents, licences, références, autorisations, etc.) |
POSITIVELY_SCREENED | Candidat ayant passé avec succès la phase de présélection |
INTERVIEW | Candidat en entretien (tous types confondus) |
OFFER_MADE | Offre d’emploi formulée au candidat |
OFFER_DECLINED | Candidat ayant décliné l’offre |
HIRED | Candidat embauché |
ONBOARDED | Candidat intégré / en poste |
POOL | Candidat ajouté à un vivier de profils |
WITHDRAWN | Candidat s’est désisté volontairement |
INCOMPLETE | Candidature incomplète ou abandonnée |
REJECT_INCOMING | Candidat refusé, notification non encore envoyée |
REJECT_SENT | Candidat refusé et notifié |
REJECTED | Candidat refusé — statut générique sans précision sur la notification |
FORWARDED_OTHER_JOB_POSITION | Candidature transférée vers une autre offre par le recruteur |
JOB_CLOSED | Offre d’emploi clôturée |
JOB_INACTIVE | Offre d’emploi rendue inactive ou suspendue |
UNKNOWN | Anomalie technique : statut manquant, vide, incohérent ou non reconnu |
Réponse
En cas de succès, l'API renvoie un statut 200 avec la réponse suivante :
{
"result": "Status was updated successfully"
}
Si la candidature n'a pas été trouvée, l'API renvoie un statut 404 avec la réponse suivante :
{
"statusCode": 404,
"error": "Not Found",
"message": "Could not find applicationInfo with id {applicationId} for ATS {ats_name}"
}