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_templatemusi 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_descriptionna 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.