Logo StartupKit
FR

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_template doit ê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.

Tapez pour rechercher...