Le point de terminaison Créer une candidature permet à une intégration externe de soumettre
la candidature d’un candidat à un poste Nextal précis. Il accepte une seule charge utile
canonique, de sorte que n’importe quelle source
d’intégration peut transmettre la même structure de corps.
Chemin de la ressource
Propriété
Valeur
url
{source}/{tenant}/{jobId}
method
POST
En-têtes
Champ
Description
Content-Type
Type de média du corps de la requête. Doit être application/json.
Accept-Language
Langue du résultat; si aucune (ou une langue non configurée) n’est fournie, la langue par défaut sera utilisée
Paramètres
Champ
Description
source
la clé de la source/du fournisseur d’intégration attribuée à votre intégration; elle identifie l’origine de la candidature et ne modifie pas le schéma du corps de la requête
tenant
le tenant Nextal auquel appartient le poste
jobId
le poste ciblé; le serveur injecte cette valeur dans job.jobId de la candidature, remplaçant tout jobId placé dans le corps
Fonctionnement de source
Le segment de chemin source sert uniquement à identifier l’intégration qui soumet la
candidature — il est enregistré à des fins de suivi et de routage. Il ne modifie pas le
schéma du corps de la requête : chaque source transmet la même charge utile canonique
décrite ci-dessous. Transmettez la clé de fournisseur attribuée à votre intégration, le
tenant ciblé et le jobId du poste visé par la candidature.
Consentement du candidat et renseignements personnels
Une candidature contient les renseignements personnels du candidat — nom, coordonnées, curriculum vitæ et réponses de présélection. Avant de soumettre une candidature, vous devez avoir obtenu le consentement éclairé du candidat pour recueillir ces renseignements et les transmettre à l’employeur par l’intermédiaire de Nextal, conformément aux lois applicables en matière de protection des renseignements personnels, dont la Loi 25 du Québec.
Ne transmettez que les renseignements personnels nécessaires à la candidature et conservez vos propres registres de consentement. L’employeur destinataire (le tenant) est responsable des renseignements personnels une fois la candidature soumise.
Corps de la requête
Le corps est un seul objet de candidature canonique. Tous les champs sont facultatifs sauf
indication contraire; les champs inconnus ou null sont omis. La structure de premier niveau
est la suivante :
Champ
Type
Requis
Description
locale
String
Non
Locale de la candidature (par exemple en, fr_CA).
appliedOnMillis
Long
Non
Horodatage epoch (en millisecondes) du moment où la candidature a été soumise.
job
Object (Job)
Non
Le poste auquel le candidat a postulé. Voir Objet Job.
Chaque collection à l’intérieur de resume.json (positions, educations, links, awards,
certifications, associations, patents, publications, militaryServices) utilise la
même structure de wrapper :
Champ
Type
Requis
Description
_total
Long
Non
Nombre d’entrées dans values.
values
List of objects
Non
Les entrées; le type d’élément dépend de la collection (voir ci-dessous).
La réponse du candidat. Pour les questions à texte libre/nombre/date, il s’agit d’une chaîne; pour une sélection unique, il s’agit d’un objet { "label": ..., "value": ... }; pour une sélection multiple, il s’agit d’une liste de tels objets.
Objet Question
Champ
Type
Requis
Description
id
String
Non
Identifiant de la question.
question
String
Non
Le texte de la question.
type
String
Non
Type de question (par exemple text, number, date, select, multiselect).
"skills": "Java, Spring Boot, MongoDB, Kubernetes",
"positions": {
"_total": 1,
"values": [
{
"title": "Senior Software Engineer",
"company": "Globex",
"location": "Montréal, QC",
"startDateMonth": "01",
"startDateYear": "2019",
"endCurrent": true,
"description": "Lead backend engineer."
}
]
},
"educations": {
"_total": 1,
"values": [
{
"degree": "B.Sc. Computer Science",
"field": "Computer Science",
"school": "McGill University",
"location": "Montréal, QC",
"startDate": "2011",
"endDate": "2015",
"endCurrent": false
}
]
},
"links": {
"_total": 1,
"values": [
{ "url": "https://github.com/janedoe" }
]
}
},
"file": {
"contentType": "application/pdf",
"fileName": "jane-doe-resume.pdf",
"data": "JVBERi0xLjQKJ..."
}
}
},
"screenerQuestionsAndAnswers": {
"url": "https://example.com/jobs/123/questions",
"retrievedOnMillis": 1718380000000,
"questionsAndAnswers": [
{
"question": {
"id": "q1",
"question": "Are you legally authorized to work in Canada?",
"type": "select",
"required": true,
"options": [
{ "label": "Yes", "value": "yes" },
{ "label": "No", "value": "no" }
]
},
"answer": { "label": "Yes", "value": "yes" }
},
{
"question": {
"id": "q2",
"question": "Years of experience with Java?",
"type": "number",
"required": true
},
"answer": "10"
}
]
},
"demographicQuestionsAndAnswers": {
"questionsAndAnswers": [
{
"question": {
"id": "d1",
"question": "How did you hear about us?",
"type": "text",
"required": false
},
"answer": "Online job board"
}
]
},
"analytics": {
"device": "desktop",
"ip": "203.0.113.7",
"referer": "https://www.example.com",
"userAgent": "Mozilla/5.0",
"sponsored": "false",
"targetedApplyAd": "ad_55"
}
}
Réponses et erreurs
En cas de succès, le point de terminaison retourne HTTP 200 OK avec un corps vide — la
candidature est acceptée et mise en file pour traitement dans le tenant ciblé. Il n’y a aucune
charge utile de réponse.
Statut
Signification
200 OK
Candidature acceptée.
400 Bad Request
Le corps est mal formé ou échoue à la validation (par exemple données de candidat manquantes, JSON non analysable).
404 Not Found
Le source, le tenant ou le jobId n’a pas pu être résolu.