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:
      candidate_description: "A conversation about your background."

  - type: offer
    name: "Offer"

Les modèles sont validés à l’enregistrement, et les clés de config sont vérifiées strictement — une clé mal orthographiée ou non prise en charge fait échouer la validation avec une erreur au lieu d’être ignorée en silence, si bien que les coquilles apparaissent immédiatement.

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émunérer les candidats

N’importe quelle étape peut rémunérer les candidats pour leur temps — le plus souvent un exercice à réaliser chez soi, mais un exercice de design rémunéré ou un entretien fonctionne de la même façon. Ajoutez un bloc imbriqué payout dans la config de l’étape ; lorsqu’un candidat termine l’étape, un paiement est créé pour le montant configuré. Consultez Paiements aux candidats pour savoir comment les paiements sont examinés et envoyés.

Clé Type Par défaut Description
enabled boolean false Active la rémunération pour cette étape
amount integer Montant à payer, dans la devise indiquée (par ex. 250)
currency string USD Code de devise à trois lettres
- type: code_assignment
  name: "Take-Home Assignment"
  config:
    candidate_description: "Complete a practical coding exercise."
    payout:
      enabled: true
      amount: 250
      currency: USD

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 Par 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
resume_required boolean false Exiger un CV — les candidats ne peuvent pas envoyer leur candidature sans joindre un document PDF ou Word (10 Mo max.)
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 — exigence appliquée au moment de la soumission, sur tous les canaux de candidature, y compris l’API publique
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

Important : pour rendre le CV obligatoire, définissez resume_required: true dans la configuration de l’étape. Un champ de formulaire nommé resume est ignoré — le CV dispose de son propre téléversement sur le formulaire de candidature et est joint indépendamment des champs personnalisés ; déclarer - name: resume avec type: file et required: true n’a donc aucun effet.

- type: application_form
  name: "Application"
  config:
    candidate_description: "Tell us about yourself."
    screening_enabled: true
    screening_message: "We'll review your application shortly."
    resume_required: true
    fields:
      - 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 Par 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 7 Jours accordés pour terminer (min : 1)
estimated_hours integer Effort estimé en heures (par ex. 5)
instructions string Instructions ajoutées par commit dans le dépôt du candidat
grace_period_hours integer 24 Heures acceptées après l’échéance avant qu’elle ne devienne définitive
allow_extension boolean true Les candidats peuvent demander une prolongation du délai

Pour rémunérer les candidats de cet exercice, ajoutez un bloc payout — voir Rémunérer les candidats ci-dessus. Les anciennes clés paid, payment_amount et payment_currency restent acceptées sur code_assignment et sont converties en un paiement équivalent, mais privilégiez payout dans les nouveaux modèles.

- 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: 5
    payout:
      enabled: true
      amount: 250
      currency: USD

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, les limites de téléversement et les liens externes.

Clé de configuration Type Par défaut Description
candidate_description string Instructions affichées au candidat
accept array pdf, png, jpg, jpeg, gif, webp Extensions de fichiers autorisées, sans le point initial
max_files integer 10 Nombre maximum de fichiers (min : 1)
max_file_size_mb integer 25 Taille maximale par fichier, en Mo
allow_links boolean true Les candidats peuvent aussi soumettre des liens externes (par ex. Figma, Behance)
- type: portfolio_upload
  name: "Portfolio Review"
  config:
    candidate_description: "Share 3-5 examples of your best work."
    accept:
      - pdf
      - png
      - jpg
    max_files: 5
    max_file_size_mb: 50
    allow_links: true

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 Par défaut Description
candidate_description string Instructions affichées au candidat
questions array Liste de définitions de questions
duration_days integer Jours suggérés pour répondre — affiché uniquement sur l’aperçu du modèle, non appliqué

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.

Les paramètres vidéo sont regroupés sous une clé imbriquée video à l’intérieur de config.

Clé de configuration Type Par défaut Description
candidate_description string Instructions affichées au candidat
video hash Paramètres vidéo (voir ci-dessous)

Options de video :

Clé Type Par défaut Description
source_type string mux mux (téléversée) ou oembed (intégration externe)
oembed_url string URL de la vidéo intégrée (quand la source est oembed)
description string Description ou contexte de la vidéo
min_watch_percentage integer 15 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
      oembed_url: "https://www.youtube.com/watch?v=example"
      description: "A 5-minute overview of our engineering team."
      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 Par 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 Par 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 Par 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 Par défaut Description
threshold integer 2 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 Par défaut Description
candidate_description string Instructions affichées au candidat
duration_minutes integer 60 Durée de l’entretien en minutes (min : 15)
interviewers_required integer 1 Nombre d’intervieweurs devant être présents
includes_roleplay boolean false L’entretien comprend un exercice de jeu de rôle
- type: live_interview
  name: "Technical Interview"
  config:
    candidate_description: "A conversation about your technical skills."
    duration_minutes: 90
    interviewers_required: 2

reference_check

Collectez et vérifiez les références des candidats. Il n’existe pas encore de parcours de soumission des références — les candidats voient la description de l’étape, et references_required apparaît sur l’aperçu du modèle sans être appliqué.

Clé de configuration Type Par 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 Par 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 candidat — 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 traits de soulignement 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 (par 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 rémunéré, une revue d’équipe, deux tours d’entretiens, des références et une offre.

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."
      resume_required: true
      fields:
        - 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: 6
      payout:
        enabled: true
        amount: 250
        currency: USD
    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: 90
      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

  - 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 — ajoutez un bloc payout à la config de l’étape pour indemniser les candidats pour leur temps (cela fonctionne sur n’importe quel type d’étape). 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...