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 durant votre pipeline de recrutement. Les modèles sont rédigés en YAML et consistent en une liste ordonnée d’étapes, chacune ayant un type, un nom et une configuration optionnelle.
Lorsque vous créez une offre d’emploi et sélectionnez un modèle, les étapes sont instanciées dans l’ordre. Les candidats progressent à travers chaque étape séquentiellement – 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 également ê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 de métadonnées du candidat (voir Champs rapides ci-dessous) |
Clés d’étape
Chaque étape nécessite name et type. Le hash optionnel 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 pour les candidats. Collecte des informations structurées via des champs de formulaire personnalisés. Peut optionnellement maintenir les candidats en état de filtrage avant de les faire avancer.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
screening_enabled |
boolean | false | Maintenir les soumissions pour revue manuelle avant de les faire avancer |
screening_message |
string | — | Message affiché aux candidats pendant le filtrage actif |
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 | 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 programmation à 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.
| 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é (par ex., "3-8") |
Rémunération : Les paiements sont configurés par étape dans l’interface des paramètres de l’étape, pas 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: "3-6"
portfolio_upload
Les candidats téléchargent des échantillons de travail (fichiers de design, exemples d’écriture, etc.). Prend en charge les restrictions de types de fichiers et les limites de téléchargement.
| 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 le filtrage basé 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échargé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échargé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échargent une réponse vidéo à une consigne. Utile pour les présentations vidéo, les lettres de motivation vidéo ou les entretiens vidéo asynchrones. Nécessite l’intégration Mux.
| Clé de configuration | Type | Défaut | Description |
|---|---|---|---|
candidate_description |
string | — | Instructions affichées au candidat |
max_duration_seconds |
integer | 120 | Durée maximale d’enregistrement en secondes |
allow_upload |
boolean | true | Permettre aux candidats de télécharger 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."
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 avec 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 | 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. Nécessite généralement 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 capturent les métadonnées du candidat au niveau supérieur du modèle. Ils sont affichés dans la barre latérale du candidat pour une consultation rapide.
| Clé | Obligatoire | Type | Description |
|---|---|---|---|
key |
Oui | string | Identifiant unique |
label |
Oui | string | Libellé d’affichage |
field_type |
Non | string | text (défaut), textarea, select, date |
placeholder |
Non | string | Texte indicatif |
options |
Non | array | Choix pour les champs select |
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"
Exemple complet
Un modèle complet pour recruter un ingénieur logiciel, incluant le filtrage, 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
- key: notice_period
label: "Notice Period"
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: "3-8"
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 maintient le pipeline propre et vous offre une étape finale pour le suivi. - Utilisez le filtrage sur le formulaire de candidature pour examiner manuellement les candidats avant qu’ils n’avancent. Cela empêche les candidats non qualifiés de recevoir des exercices.
- Rémunérez les exercices à domicile – configurez les paiements dans les paramètres de l’étape pour indemniser les candidats. Consultez Paiements aux candidats.
- Maintenez 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, donc une communication claire réduit la confusion et les demandes de support.