Logo StartupKit
PL

Konfiguracja szablonów procesu rekrutacyjnego

Kompletna dokumentacja konfiguracji szablonów procesu rekrutacyjnego w YAML — typy etapów, opcje konfiguracji, recenzenci i przykłady.

To tłumaczenie może być nieaktualne. Wersja angielska została zaktualizowana od czasu ostatniego tłumaczenia tej strony. Zobacz po angielsku →

Przegląd

Szablon procesu definiuje etapy, przez które przechodzi kandydat w Twoim pipelinie rekrutacyjnym. Szablony pisze się w YAML i składają się z uporządkowanej listy etapów, z których każdy ma typ, nazwę i opcjonalną konfigurację.

Gdy tworzysz ogłoszenie o pracę i wybierasz szablon, etapy są tworzone w kolejności. Kandydaci przechodzą przez kolejne etapy po kolei — od aplikacji do oferty.

Podstawowa struktura

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"

Klucze najwyższego poziomu

Klucz Wymagany Opis
stages Tak Uporządkowana lista definicji etapów (co najmniej jeden)
name Nie Nazwa szablonu (można ją też ustawić w polu formularza)
description Nie Opis procesu w formacie Markdown
tags Nie Lista tagów tekstowych do kategoryzacji
quick_fields Nie Szybkie pola do zbierania informacji o kandydacie (patrz sekcja Szybkie pola poniżej)

Klucze etapu

Każdy etap wymaga kluczy name i type. Opcjonalny słownik config oraz lista reviewers różnią się w zależności od typu etapu.

Klucz Wymagany Opis
name Tak Wyświetlana nazwa etapu
type Tak Jeden z 10 typów etapów wymienionych poniżej
config Nie Opcje konfiguracji specyficzne dla danego typu
reviewers Nie Lista przypisanych recenzentów

Dokumentacja typów etapów

application_form

Punkt wejścia dla kandydatów. Zbiera ustrukturyzowane informacje za pomocą niestandardowych pól formularza. Opcjonalnie wstrzymuje kandydatów na etapie przeglądu wstępnego przed przekazaniem dalej.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
screening_enabled boolean true Wstrzymuje zgłoszenia do ręcznej weryfikacji przed przekazaniem dalej. Włączone domyślnie — ustaw wprost na false, żeby wyłączyć przegląd wstępny
screening_message string Wiadomość wyświetlana kandydatom, gdy przegląd wstępny jest aktywny
fields array Lista definicji pól formularza (patrz poniżej)

Opcje pól formularza:

Klucz Wymagany Typ Opis
name Tak string Identyfikator pola
type Tak string text, textarea, file, url, select, checkbox, email, phone
required Nie boolean Czy pole musi być wypełnione
label Nie string Wyświetlana etykieta (domyślnie nazwa pola)
placeholder Nie string Tekst zastępczy
max_length Nie integer Maksymalna liczba znaków (min: 1)
options Nie array Opcje wyboru dla pól typu 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

Zadanie programistyczne do wykonania w domu. Gdy GitHub jest podłączony, dla każdego kandydata tworzone jest prywatne repozytorium na podstawie szablonu. Obejmuje zarządzanie terminami.

Ważne: Repozytorium podane w github_template musi być oznaczone na GitHubie jako szablon. Wymagania i instrukcje konfiguracji znajdziesz w artykule GitHub Template Repository Setup.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
github_template string Repozytorium szablonu GitHub (np. org/hiring-assignment)
duration_days integer Liczba dni na wykonanie (min: 1)
estimated_hours integer Szacowany nakład pracy jako pojedyncza liczba godzin (np. 4)

Wynagrodzenie: Wypłaty konfiguruje się dla każdego etapu osobno w interfejsie ustawień etapu, a nie w szablonie YAML. Każdy typ etapu może oferować wynagrodzenie. Szczegóły w artykule Candidate Payouts.

- 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

portfolio_upload

Kandydaci przesyłają próbki prac (pliki projektowe, przykładowe teksty itp.). Obsługuje ograniczenia typów plików i limity przesyłania.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
accept array Dozwolone rozszerzenia plików (np. pdf, png, figma)
max_files integer Maksymalna liczba plików (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

Pytania pisemne, na które kandydaci odpowiadają asynchronicznie. Przydatne do przeglądu wstępnego opartego na scenariuszach na stanowiskach w dziale wsparcia, sprzedaży lub na stanowiskach wymagających umiejętności pisarskich.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
questions array Lista definicji pytań

Opcje pytań:

Klucz Wymagany Typ Opis
type Tak string Kategoria pytania (np. scenario)
prompt Tak string Treść pytania
- 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

Prezentuje kandydatowi materiał wideo. Obsługuje przesłane filmy (przez Mux) lub osadzone filmy z zewnętrznych platform.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
video_source_type string mux (przesłany) lub oembed (osadzenie zewnętrzne)
video_oembed_url string URL osadzonego filmu (gdy źródłem jest oembed)
video_description string Opis lub kontekst filmu
video_min_watch_percentage integer Minimalny wymagany procent obejrzenia (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

Kandydaci nagrywają lub przesyłają odpowiedź wideo na podany temat. Przydatne do przedstawienia się, wideo listów motywacyjnych lub asynchronicznych rozmów wideo. Wymaga integracji z Mux.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
max_duration_seconds integer 120 Maksymalna długość nagrania w sekundach
allow_upload boolean true Pozwala kandydatom przesłać wcześniej nagrany plik wideo
max_retakes integer Liczba dozwolonych ponownych nagrań (puste = bez limitu)
- 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

Wewnętrzny etap oceny, na którym Twój zespół ocenia kandydata. Obsługuje progi głosowania i zasady weta.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Wiadomość wyświetlana kandydatowi na tym etapie
voting hash Konfiguracja głosowania (patrz poniżej)

Opcje głosowania:

Klucz Typ Domyślnie Opis
threshold integer Minimalna liczba głosów „tak”, żeby przejść dalej (1-10)
require_all_reviewers boolean false Wszyscy przypisani recenzenci muszą zagłosować
veto_auto_rejects boolean false Pojedyncze weto automatycznie odrzuca kandydata
- 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

Synchroniczna rozmowa kwalifikacyjna prowadzona przez wideokonferencję lub osobiście. Integruje się z planowaniem w kalendarzu.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
duration_minutes integer Czas trwania rozmowy w minutach (min: 15)
interviewers_required integer Wymagana liczba prowadzących rozmowę (min: 1)
includes_roleplay boolean false Czy rozmowa obejmuje ćwiczenie z odgrywaniem ról
- type: live_interview
  name: "Technical Interview"
  config:
    candidate_description: "A conversation about your technical skills."
    duration_minutes: 60
    interviewers_required: 2

reference_check

Zbieranie i weryfikacja referencji kandydata.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Instrukcje wyświetlane kandydatowi
references_required integer Wymagana liczba referencji (min: 1)
- type: reference_check
  name: "References"
  config:
    candidate_description: "Provide contact details for your references."
    references_required: 2

offer

Ostatni etap, na którym składasz kandydatowi ofertę. Zazwyczaj wymaga minimalnej konfiguracji.

Klucz konfiguracji Typ Domyślnie Opis
candidate_description string Wiadomość wyświetlana kandydatowi
- type: offer
  name: "Offer"
  config:
    candidate_description: "We'd love to have you join the team."

Recenzenci

Do każdego etapu możesz przypisać recenzentów. Każdy recenzent wymaga adresu e-mail i roli.

Klucz Wymagany Opis
email Tak Adres e-mail recenzenta (musi odpowiadać członkowi zespołu)
role Tak reviewer (standardowy) lub lead (główny decydent)
- 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

Szybkie pola

Szybkie pola definiują ustrukturyzowane metadane, które Twój zespół zbiera dla każdego aplikującego — takie jak oczekiwania płacowe, dostępność, preferencje lokalizacyjne czy dowolny inny sygnał istotny dla danej roli. Pola pojawiają się w panelu bocznym kandydata.

Jak zarządzać definicjami pól bezpośrednio w interfejsie — zobacz Pola danych kandydata.

Schemat

Klucz Wymagany Typ Opis
key Tak string Unikalny identyfikator (małe litery, tylko podkreślenia, np. salary_expectation)
label Tak string Wyświetlana etykieta widoczna dla zespołu
field_type Nie string Jeden z 4 typów pól wymienionych poniżej (domyślnie: text)
placeholder Nie string Tekst zastępczy dla pola
options Nie array Opcje wyboru dla pól typu select

Uwaga: Bogatsze typy pól i opcje — takie jak liczby, oceny, ekstrakcja AI i reguły widoczności — konfiguruje się w metafield_definitions, osobnym kluczu najwyższego poziomu. Zobacz Pola danych kandydata.

Typy pól

Typ Opis
text Jednowierszowe pole tekstowe
textarea Wielowierszowe pole tekstowe
select Lista rozwijana z ustalonego zbioru opcji
date Wybór daty

Przykłady

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..."

Kompletny przykład

Pełny szablon do rekrutacji inżyniera oprogramowania, obejmujący przegląd wstępny, zadanie programistyczne, ocenę zespołu, dwie rundy rozmów kwalifikacyjnych, referencje i ofertę. Żeby dodać wynagrodzenie do etapu z zadaniem, skonfiguruj wypłaty w interfejsie ustawień etapu — zobacz Candidate Payouts.

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: 6
    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."

Wskazówki

  • Zaczynaj od application_form — to naturalny punkt wejścia, który pozwala zebrać CV i podstawowe informacje.
  • Kończ etapem offer — utrzymuje porządek w pipelinie i daje końcowy etap do śledzenia postępów.
  • Korzystaj z przeglądu wstępnego w formularzu aplikacyjnym, żeby ręcznie przeglądać kandydatów przed przekazaniem dalej. Zapobiega to otrzymywaniu zadań przez nieodpowiednich kandydatów.
  • Płać za zadania do wykonania w domu — skonfiguruj wypłaty w ustawieniach etapu, żeby wynagrodzić kandydatów. Zobacz Candidate Payouts.
  • Ogranicz proces do maksymalnie 7 etapów — zbyt długie pipeline’y prowadzą do rezygnacji kandydatów.
  • Przypisuj recenzentów do etapów team_review i code_assignment, żeby odpowiednie osoby były powiadamiane automatycznie.
  • Używaj candidate_description na każdym etapie — kandydaci widzą tę wiadomość, więc jasna komunikacja zmniejsza liczbę nieporozumień i zgłoszeń do działu wsparcia.
  • Rejestruj typowe sygnały za pomocą quick_fields — dodaj pola takie jak oczekiwania płacowe, dostępność i lokalizacja, żeby zespół spójnie zapisywał je w panelu bocznym kandydata.
  • Potrzebujesz bogatszych typów lub ekstrakcji AI? — liczby, oceny, automatyczne uzupełnianie przez AI i reguły widoczności znajdują się w metafield_definitions. Zobacz Pola danych kandydata.

Wpisz, aby wyszukać...