Skip to main content

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 :

ChampObligatoire / FacultatifDéfinition
applicationId (query param)ObligatoireIdentifiant de la candidature côté HelloWork ATS Partner.
statusObligatoireLibellé 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.
eventDateObligatoireDate de l'évènement ayant causé la requête de mise à jour.
createdObligatoireDate de création de la candidature dans l'ATS.
jobIdObligatoireIdentifiant 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.
sourceFacultatifString ou structure de champs représentant la source à l'origine de la candidature. La structure peut dépendre d'un ATS à l'autre.
info

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

StatutDescription
sendingLa candidature est en cours de traitement par ATS Connect, elle n'est pas encore parvenue à l'ATS
sentLa candidature a bien été envoyée à l'ATS
errorErreur lors de l'envoi à l'ATS, pas de nouvelle tentative en attente
not_foundLa candidature n'a pas été trouvée dans l'ATS
seen_by_recruiterLa candidature a été consultée par un recruteur dans l'ATS
interview_by_recruiterUn entretien a été planifié avec le candidat
to_finalizeLa candidature est en cours de finalisation
hiredLe candidat a été recruté
poolVivier
offredProposition faite
whithdrawnDésistement candadidat
outdatedCandidature abandonnée
rejected_and_contacted_by_recruiterLe candidat n'a pas été retenu et a été contacté.
Il faut ajouter dans le payload un délais de communication si connu.
Si inconnu, ne pas mettre de délais
rejectedLe candidat n'a pas été retenu
rejected_candidateLe candidat a refusé l'offre
unknownLe statut retourné par l'ATS est inconnu

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}"
}