Configuration des modèles de processus
Référence complète pour configurer les modèles de processus de recrutement en YAML — types d'étapes, options de configuration, évaluateurs et exemples.
Vue d’ensemble
Un modèle de processus définit les étapes que traverse un candidat tout au long de votre pipeline de recrutement. Les modèles sont rédigés en YAML et se composent d’une liste ordonnée d’étapes, chacune dotée d’un type, d’un nom et d’une configuration facultative.
Lorsque vous créez une offre d’emploi et que vous sélectionnez un modèle, les étapes sont instanciées dans l’ordre. Les candidats progressent séquentiellement à travers chaque étape — de la candidature à l’offre.
Structure de base
name: My Hiring Process
description: |
A short description of this template.
Supports **Markdown** formatting.
tags:
- engineering
- remote
stages:
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself."
- type: live_interview
name: "Interview"
config:
duration_minutes: 60
- type: offer
name: "Offer"
Clés de niveau supérieur
| Clé | Obligatoire | Description |
|---|---|---|
stages |
Oui | Liste ordonnée de définitions d’étapes (au moins une) |
name |
Non | Nom du modèle (peut aussi être défini dans le champ du formulaire) |
description |
Non | Description du processus au format Markdown |
tags |
Non | Liste d’étiquettes textuelles pour la catégorisation |
quick_fields |
Non | Champs rapides pour saisir les informations du candidat (voir Champs rapides ci-dessous) |
Clés d’étape
Chaque étape nécessite name et type. Le hash facultatif config et la liste reviewers varient selon le type d’étape.
| Clé | Obligatoire | Description |
|---|---|---|
name |
Oui | Nom d’affichage de l’étape |
type |
Oui | L’un des 10 types d’étapes listés ci-dessous |
config |
Non | Options de configuration spécifiques au type |
reviewers |
Non | Liste d’affectations d’évaluateurs |
Référence des types d’étapes
application_form
Le point d’entrée des candidats. Collecte des informations structurées via des champs de formulaire personnalisés. Peut, en option, maintenir les candidats en état de présélection avant de les faire avancer.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
screening_enabled |
boolean | true | Retient les soumissions pour une revue manuelle avant de les faire avancer. Activé par défaut — définissez explicitement la valeur sur false pour désactiver la présélection |
screening_message |
string | — | Message affiché aux candidats tant que la présélection est active |
fields |
array | — | Liste de définitions de champs de formulaire (voir ci-dessous) |
Options des champs de formulaire :
| Clé | Obligatoire | Type | Description |
|---|---|---|---|
name |
Oui | string | Identifiant du champ |
type |
Oui | string |
text, textarea, file, url, select, checkbox, email, phone
|
required |
Non | boolean | Indique si le champ doit être rempli |
label |
Non | string | Libellé d’affichage (par défaut : le nom) |
placeholder |
Non | string | Texte indicatif |
max_length |
Non | integer | Nombre maximum de caractères (min : 1) |
options |
Non | array | Choix pour les champs select
|
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself."
screening_enabled: true
screening_message: "We'll review your application shortly."
fields:
- name: resume
type: file
required: true
- name: experience_level
type: select
required: true
options:
- "Junior (0-2 years)"
- "Mid (2-5 years)"
- "Senior (5+ years)"
- name: cover_letter
type: textarea
required: false
max_length: 500
code_assignment
Un exercice de code à réaliser chez soi. Lorsque GitHub est connecté, un dépôt privé est créé à partir d’un modèle pour chaque candidat. Inclut la gestion des délais.
Important : le dépôt indiqué dans
github_templatedoit être marqué comme modèle (« template ») sur GitHub. Consultez Configuration d’un dépôt modèle GitHub pour les prérequis et les instructions de configuration.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
github_template |
string | — | Dépôt modèle GitHub (par ex. org/hiring-assignment) |
duration_days |
integer | — | Jours accordés pour terminer (min : 1) |
estimated_hours |
string | — | Effort estimé sous forme de texte libre (par ex. "4-6 hours") |
Rémunération : les paiements se configurent par étape dans l’interface des paramètres de l’étape, et non dans le YAML du modèle. Tout type d’étape peut offrir une rémunération. Consultez Paiements aux candidats pour plus de détails.
- type: code_assignment
name: "Take-Home Assignment"
config:
candidate_description: "Complete a practical coding exercise."
github_template: "mycompany/hiring-challenge"
duration_days: 7
estimated_hours: "4-6 hours"
portfolio_upload
Les candidats téléversent des échantillons de leur travail (fichiers de design, exemples de rédaction, etc.). Prend en charge les restrictions de types de fichiers et les limites de téléversement.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
accept |
array | — | Extensions de fichiers autorisées (par ex. pdf, png, figma) |
max_files |
integer | — | Nombre maximum de fichiers (min : 1) |
- type: portfolio_upload
name: "Portfolio Review"
config:
candidate_description: "Share 3-5 examples of your best work."
accept:
- pdf
- png
- jpg
- figma
max_files: 5
questionnaire
Questions écrites auxquelles les candidats répondent de manière asynchrone. Utile pour une présélection fondée sur des scénarios dans les postes de support, de vente ou de rédaction.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
questions |
array | — | Liste de définitions de questions |
Options des questions :
| Clé | Obligatoire | Type | Description |
|---|---|---|---|
type |
Oui | string | Catégorie de la question (par ex. scenario) |
prompt |
Oui | string | Le texte de la question |
- type: questionnaire
name: "Written Scenarios"
config:
candidate_description: "Respond to these real-world scenarios."
questions:
- type: scenario
prompt: "A customer reports a billing error. Walk us through your response."
- type: scenario
prompt: "You discover a bug affecting 10% of users. What do you do?"
video
Présente une vidéo aux candidats. Prend en charge les vidéos téléversées (via Mux) ou les vidéos intégrées depuis des plateformes externes.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
video_source_type |
string | — |
mux (téléversée) ou oembed (intégration externe) |
video_oembed_url |
string | — | URL de la vidéo intégrée (quand la source est oembed) |
video_description |
string | — | Description ou contexte de la vidéo |
video_min_watch_percentage |
integer | — | Pourcentage minimum de visionnage requis (1-100) |
- type: video
name: "Company Introduction"
config:
candidate_description: "Watch this video about our team and culture."
video_source_type: oembed
video_oembed_url: "https://www.youtube.com/watch?v=example"
video_description: "A 5-minute overview of our engineering team."
video_min_watch_percentage: 80
video_recording
Les candidats enregistrent ou téléversent une réponse vidéo à une consigne. Utile pour les introductions vidéo, les lettres de motivation vidéo ou les entretiens vidéo asynchrones. Nécessite l’intégration Mux.
Les paramètres d’enregistrement sont regroupés sous une clé imbriquée video_recording au sein de config.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
video_recording |
hash | — | Paramètres d’enregistrement (voir ci-dessous) |
Options de video_recording :
| Clé | Type | Défaut | Description |
|---|---|---|---|
max_duration_seconds |
integer | 120 | Durée maximale d’enregistrement en secondes |
allow_upload |
boolean | true | Permet aux candidats de téléverser un fichier vidéo préenregistré |
max_retakes |
integer | — | Nombre de réenregistrements autorisés (vide = illimité) |
- type: video_recording
name: "Video Introduction"
config:
candidate_description: "Record a 2-minute video introducing yourself."
video_recording:
max_duration_seconds: 120
allow_upload: true
max_retakes: 3
team_review
Une étape de revue interne où votre équipe évalue un candidat. Prend en charge les seuils de vote et les règles de véto.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Message affiché au candidat durant cette étape |
voting |
hash | — | Configuration du vote (voir ci-dessous) |
Options de vote :
| Clé | Type | Défaut | Description |
|---|---|---|---|
threshold |
integer | — | Nombre minimum de votes favorables pour avancer (1-10) |
require_all_reviewers |
boolean | false | Tous les évaluateurs assignés doivent voter |
veto_auto_rejects |
boolean | false | Un seul véto rejette automatiquement le candidat |
- type: team_review
name: "Code Review"
config:
candidate_description: "Our team is reviewing your submission."
voting:
threshold: 2
require_all_reviewers: true
veto_auto_rejects: true
live_interview
Un entretien synchrone mené par visioconférence ou en personne. S’intègre à la planification de calendrier.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
duration_minutes |
integer | — | Durée de l’entretien en minutes (min : 15) |
interviewers_required |
integer | — | Nombre d’intervieweurs nécessaires (min : 1) |
includes_roleplay |
boolean | false | Indique si l’entretien inclut un exercice de jeu de rôle |
- type: live_interview
name: "Technical Interview"
config:
candidate_description: "A conversation about your technical skills."
duration_minutes: 60
interviewers_required: 2
reference_check
Collectez et vérifiez les références des candidats.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
references_required |
integer | — | Nombre de références nécessaires (min : 1) |
- type: reference_check
name: "References"
config:
candidate_description: "Provide contact details for your references."
references_required: 2
offer
L’étape finale où vous présentez une offre au candidat. Ne nécessite généralement que peu de configuration.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Message affiché au candidat |
- type: offer
name: "Offer"
config:
candidate_description: "We'd love to have you join the team."
Évaluateurs
Vous pouvez assigner des évaluateurs à n’importe quelle étape. Chaque évaluateur nécessite une adresse e-mail et un rôle.
| Clé | Obligatoire | Description |
|---|---|---|
email |
Oui | Adresse e-mail de l’évaluateur (doit correspondre à un membre de l’équipe) |
role |
Oui |
reviewer (standard) ou lead (décideur principal) |
- type: team_review
name: "Code Review"
config:
voting:
threshold: 2
reviewers:
- email: [email protected]
role: lead
- email: [email protected]
role: reviewer
- email: [email protected]
role: reviewer
Champs rapides
Les champs rapides définissent des métadonnées structurées que votre équipe enregistre pour chaque candidature — par exemple les prétentions salariales, la disponibilité, la préférence de localisation ou tout autre signal personnalisé pertinent pour votre poste. Les champs apparaissent dans la barre latérale du candidat.
Pour gérer les définitions de champs directement dans l’interface, consultez Champs de données candidat.
Schéma
| Clé | Obligatoire | Type | Description |
|---|---|---|---|
key |
Oui | string | Identifiant unique (minuscules et underscores uniquement, par ex. salary_expectation) |
label |
Oui | string | Libellé d’affichage présenté à votre équipe |
field_type |
Non | string | L’un des 4 types de champs ci-dessous (défaut : text) |
placeholder |
Non | string | Texte indicatif pour le champ de saisie |
options |
Non | array | Choix pour les champs select
|
Remarque : les types de champs et options plus riches — comme les nombres, les notes, l’extraction par IA et les règles de visibilité — se configurent sous
metafield_definitions, une clé de niveau supérieur distincte. Consultez Champs de données candidat.
Types de champs
| Type | Description |
|---|---|
text |
Saisie de texte sur une seule ligne |
textarea |
Saisie de texte sur plusieurs lignes |
select |
Liste déroulante à partir d’une liste fixe de choix |
date |
Sélecteur de date |
Exemples
quick_fields:
- key: salary_expectation
label: "Salary Expectation"
field_type: text
placeholder: "$80,000 - $100,000"
- key: start_date
label: "Earliest Start Date"
field_type: date
- key: work_authorization
label: "Work Authorization"
field_type: select
options:
- "US Citizen"
- "Permanent Resident"
- "Requires Sponsorship"
- key: source
label: "Source / Referral"
field_type: text
placeholder: "e.g. LinkedIn, referral from..."
Exemple complet
Un modèle complet pour recruter un ingénieur logiciel, incluant la présélection, un exercice de code, une revue d’équipe, deux tours d’entretiens, des références et une offre. Pour ajouter une rémunération à l’étape d’exercice, configurez les paiements dans l’interface des paramètres de l’étape — consultez Paiements aux candidats.
name: Software Engineer - Standard
description: |
Comprehensive process for mid-to-senior software engineers.
Includes a take-home assignment with team code review.
tags:
- engineering
- technical
- assignment
quick_fields:
- key: salary_expectation
label: "Salary Expectation"
field_type: text
placeholder: "e.g. $120k - $150k"
- key: notice_period
label: "Notice Period"
field_type: text
- key: location_preference
label: "Location Preference"
field_type: text
stages:
- type: application_form
name: "Application"
config:
candidate_description: "Tell us about yourself and your experience."
screening_enabled: true
screening_message: "We're reviewing your application."
fields:
- name: resume
type: file
required: true
- name: github_url
type: url
required: false
- name: motivation
type: textarea
required: true
max_length: 500
- type: code_assignment
name: "Take-Home Assignment"
config:
candidate_description: "Complete a practical coding exercise at your own pace."
github_template: "mycompany/hiring-assignment"
duration_days: 8
estimated_hours: "5-7 hours"
reviewers:
- email: [email protected]
role: lead
- type: team_review
name: "Code Review"
config:
candidate_description: "Our team reviews your code submission."
voting:
threshold: 2
require_all_reviewers: true
veto_auto_rejects: true
reviewers:
- email: [email protected]
role: lead
- email: [email protected]
role: reviewer
- type: live_interview
name: "Technical Interview"
config:
candidate_description: "A conversation about your technical skills."
duration_minutes: 75
interviewers_required: 2
- type: live_interview
name: "Culture & Values"
config:
candidate_description: "Get to know the team and learn about our culture."
duration_minutes: 45
interviewers_required: 1
- type: reference_check
name: "References"
config:
references_required: 2
- type: offer
name: "Offer"
config:
candidate_description: "We'll present you with an offer to join the team."
Conseils
-
Commencez par
application_form— c’est le point d’entrée naturel, qui vous permet de collecter les CV et les informations de base. -
Terminez par
offer— cela garde le pipeline propre et vous offre une étape finale pour le suivi. - Activez la présélection sur le formulaire de candidature afin d’examiner manuellement les candidats avant qu’ils n’avancent. Cela évite que des candidats non qualifiés reçoivent des exercices.
- Rémunérez les exercices à réaliser chez soi — configurez les paiements dans les paramètres de l’étape pour indemniser les candidats. Consultez Paiements aux candidats.
- Limitez les processus à moins de 7 étapes — les pipelines trop longs entraînent l’abandon des candidats.
- Assignez des évaluateurs aux étapes team_review et code_assignment afin que les bonnes personnes soient notifiées automatiquement.
-
Utilisez
candidate_descriptionà chaque étape — les candidats voient ce message ; une communication claire réduit donc la confusion et les demandes de support. -
Capturez les signaux courants avec
quick_fields— ajoutez des champs comme la prétention salariale, la disponibilité et la localisation pour que votre équipe les enregistre de façon cohérente dans la barre latérale du candidat. -
Besoin de types plus riches ou d’extraction par IA ? — les nombres, les notes, le pré-remplissage automatique par IA et les règles de visibilité se trouvent sous
metafield_definitions. Consultez Champs de données candidat.