Как я считаю воронку найма: 3875 откликов и рыночные бенчмарки
Воронка найма — это не картинка из презентации «сколько человек дошло до оффера». Это последовательность этапов, на каждом из которых считается конверсия перехода. Без знаменателя и без времени в статусе это просто список.
Меня зовут Артём Стельмахов, я HR-аналитик из Беларуси, работаю только удалённо. На работе я смотрю воронку со стороны работодателя: медиаплан и CPL на HR Rocket, рынок — на HR Stats. В этой статье я разбираю другую воронку — свою, со стороны кандидата. Резюме: hh.ru.
Два дисклеймера, без которых цифры ниже нельзя класть в чужой отчёт. Рыночные проценты (HrPanda, mokahr.io, imast.ai, SHRM через noon.ai) — публичные бенчмарки 2026 года, не выгрузка моего ATS и не клиентский прод. Мои 3875 заявок — воронка поиска работы автора из Postgres hh_events на 2026-09-09, не воронка клиента и не дашборд HR Rocket.
Кто считает такие таблицы на стороне компании и чем роль отличается от рекрутера — в статье «HR-аналитик кто это». Живое демо механики свода — открыть демо воронки найма; там синтетика, повторяющая логику экрана, не чужие строки.
Что такое воронка найма
Типовая цепочка на стороне работодателя:
Показ / охват вакансии → отклик → скрининг → интервью → оффер → принятие оффера → выход на работу.
На стороне кандидата, которым я располагаю в своей базе, цепочка короче и честнее по данным: отклик → инвайт / отказ / тишина. Интервью, оффер и выход в hh_events я не размечаю так же жёстко, поэтому не достраиваю эти этапы из головы.
Формула перехода одна и та же, её повторяют открытые разборы huntflow.media, kontur.ru, hirehi.ru:
Конверсия этапа = (число людей на следующем этапе / число людей на текущем) × 100%.
Отдельно считают сквозную конверсию: отклик → выход, или в моём случае отклик → инвайт. Это разные числа. Если смешать «8% с отклика на скрининг» и «0.8% с отклика в найм», получится спор о том, «нормальная ли воронка», в котором обе стороны правы и обе смотрят мимо.
Узкое горло — этап, где падение не объясняется объёмом входа. Мало откликов — вопрос канала и вилки. Много откликов и мало интервью — вопрос скрининга и текста вакансии. Много интервью и мало офферов — вопрос оценки или калибровки заказчика. Я не подставляю чужой ATS под свою воронку: у меня узкое горло видно на отрезке «отклик → решение».
Пять метрик, без которых воронка декоративная
Открытые чек-листы potok.io и hirehi.ru сходятся на одном наборе. Я считаю его и на своей базе, и в постановке задач на работе.
- Поэтапная и сквозная конверсия. Две колонки, не одна.
- Time-to-hire / time-to-fill и time-in-stage. Сколько дней висит этап. Медиана важнее среднего: хвост молчания раздувает среднее.
- Cost-per-hire и CPL. Стоимость найма и стоимость отклика — соседние, но не одно и то же. CPL я разбираю в статье про отклик на Авито и hh. В своей кандидатской воронке бюджета размещения нет, поэтому CPL здесь не считаю и не выдумываю.
- Offer acceptance rate. Доля принятых офферов. В моих
hh_eventsэтого этапа нет — пропускаю, а не «оцениваю на глаз». - Причины отказа по этапам и тегам. Иначе воронка показывает «где отвалились», но не «почему».
На работе к этому набору добавляется сравнение каналов и городов: один и тот же профиль на hh и на Авито даёт разный CPL и разную скорость отклика. Это уже медиаплан, не кандидатский бот.
Рыночные бенчмарки 2026 — чужие, публичные
Цифры ниже я не снимал со своего бота. Это ориентиры из открытых обзоров. Их нельзя приравнивать к конверсии «отклик → инвайт» в моей таблице и нельзя класть в слайд клиенту как «наш ATS так и должен выглядеть».
| Переход | Конверсия | Источник |
|---|---|---|
| Клик по вакансии → отклик | ~6% | HrPanda, 2026 |
| Отклик → скрининг пройден | ~8% | HrPanda, 2026 |
| Скрининг → интервью | ~37% | HrPanda, 2026 |
| Интервью → оффер | ~47.5% | HrPanda / imast.ai, 2026 |
| Оффер → принятие | 69.3–80.8% (в tech выше) | HrPanda / imast.ai, 2026 |
| Отклик → найм | 0.5–2% (профессиональные роли) | mokahr.io / HrPanda, 2026 |
| Медианный time-to-fill, non-exec | 39 дней (в 2025 было 44) | SHRM 2026, обзор noon.ai |
| Интервью : оффер выше 7:1 | сигнал, что скрининг разбалансирован | imast.ai, 2026 |
Сквозные 0.5–2% «отклик → найм» нельзя сравнивать один в один с моими 8.1% «отклик → инвайт». Инвайт — более ранний этап, ближе к связке «скрининг / первое касание», чем к выходу на работу. Если кто-то скажет «у тебя конверсия выше рынка в четыре раза», он сложил разные знаменатели.
Моя воронка: срез 2026-09-09
Источник: Postgres, таблица событий бота автоотклика, все apply / invite / reject. Повторю: это воронка поиска работы автора, не клиентский ATS.
| Этап | Число | Доля от заявок |
|---|---|---|
| Заявки (apply) | 3 875 | 100% |
| Инвайты (invite) | 314 | 8.1% |
| Отказы (reject) | 1 879 | 48.5% |
| Без ответа (pending) | ~1 682 | 43.4% |
Почти половина воронки — тишина. Это тоже метрика. «На рассмотрении» в интерфейсе hh часто означает «события больше не будет». Для HR-аналитика на стороне работодателя отсюда простой вывод: если в ATS нет срока автоотказа, отчёт по воронке будет врать в пользу «ещё думаем».
Отдельный срез по вакансиям (hh_vacancies, дедуп, последняя тысяча): applied 577 / invitation 38 / rejected 385. Конверсия в инвайт — 3.8%, доля отказов — 38.5%. Это не противоречие с 8.1% по событиям: другая единица учёта и другое окно. Я оставляю оба числа, чтобы не выбирать удобное.
По месяцам 2026 года конверсия скачет. Март — 9.1% (569 заявок / 52 инвайта), апрель — 8.7% (505 / 44), май — 5.1% (1 204 / 61), июнь — 4.3% (233 / 10), июль — 4.7% (215 / 10), август — 5.9% (255 / 15). Май раздул объём и уронил конверсию. Это не «рынок умер»: это я сам расширил фильтр и получил больше пустых откликов. Обратный ход — ужесточение фильтров и писем — виден в восстановлении 4.3% → 5.9% за три месяца. Тот же цикл, что я ставлю заказчику: гипотеза, изменение, повторный замер.
Время решения: медиана важнее среднего
Стыкую событие отклика с первым инвайтом или отказом по той же вакансии.
| Переход | N | Среднее | Медиана |
|---|---|---|---|
| Отклик → инвайт | 191 | 1.9 дня | 0 дней |
| Отклик → отказ | 1 140 | 4.6 дня | 1.2 дня |
Если зовут — часто в тот же день. Если отказывают текстом или статусом — чаще на следующие сутки, но хвост тянет среднее до 4.6. Ожидание дольше недели почти никогда не заканчивается «мы всё ещё читаем резюме». Оно заканчивается pending.
Для работодателя это зеркало time-in-stage. Если кандидат висит в «скрининг» десять дней, воронка уже потеряла его на рынке, даже если статус зелёный. Медианный time-to-fill 39 дней из публичного обзора SHRM — про закрытие ставки целиком, не про первый ответ. Сравнивать 0 дней до инвайта с 39 днями до выхода снова значит сложить разные этапы.
Почему отказывают — и почему текста почти нет
Из 1 377 отказов текст от рекрутера пришёл только в 193 случаях (14%). Остальное — автостатус без фразы. Это отдельный HR-инсайт: рынок не даёт обратную связь, и любая модель «причин отказа» строится на тонком хвосте сообщений.
На этих 193 я тегирую причину (несколько тегов на одно письмо, сумма долей больше 100%).
| Тег | Смысл | Доля от 193 |
|---|---|---|
competition_timing | Конкуренция, не успел, вакансию закрыли | 94% |
polite_no_reason | Вежливый отказ без причины | 91% |
salary_unknown | В вакансии нет вилки — риск разъехаться в деньгах | 89% |
fit_stack | Не совпал стек | 24% |
auto_template | Шаблон ATS | 24% |
fit_product_ba | Вакансия ближе к продуктовому BA, чем к той роли, под которую я писал | 19% |
geo_format | Офис, гибрид, география | 16% |
letter_wrong_proof | В письме не тот кейс под роль | 12% |
human_recruiter | Живой ответ, не бот | 3% |
fit_domain | Не тот домен | 2% |
Главный вывод, который я тащу в работу: узкое горло не в навыках. Стек как причина — 24% размеченного хвоста. Конкуренция и тайминг — 94%. Непрозрачная вилка — 89%. Если HRD говорит «нам не хватает сильных кандидатов», а в вакансии нет денег и отклик висит сутки, аналитик должен сначала проверить вилку и скорость ответа, а не заказывать ещё один курс для рекрутеров.
Разбор «почему навыки не дают инвайт» — соседняя статья цикла: почему не приглашают.
Match-score 49 против 49
На выборке глубокой аналитики средний балл совпадения резюме с вакансией у инвайтов — 49, у отказов — 49. Ключевые слова в резюме не разделяют исход.
Это не значит, что навыки не нужны. Это значит, что простой скоринг «есть слово / нет слова» не объясняет, кого позовут. На истории бота (долго SA/BA-вакансии до пивота в HR-аналитика) в отказах чаще дыры вроде системного анализа, Kafka, User Story — но те же дыры встречаются и там, куда звали. Исход лучше объясняется моментом отклика, вилкой и конкуренцией, чем чек-листом skills.
Отсюда правило, которое я ставлю и себе, и в продукт: не путать скоринг резюме с аналитикой воронки. HR Rocket резюме не считает. Он считает отклик, бюджет и CPL. Мой бот считает свою кандидатскую воронку. Смешивать эти два объекта в одном слайде нельзя.
Что из этого переносится в чужой ATS
Метод переносится целиком.
- Зафиксировать этапы и не прыгать между «событие» и «вакансия» в одной таблице без пометки.
- Считать шаг и сквозную конверсию отдельно.
- Смотреть медиану времени, не только среднее.
- Тегировать отказы, даже если текста 14%.
- Не сравнивать свой «отклик → инвайт» с чужим «отклик → выход» без оговорки.
- Не делать вывод «кандидаты слабые», пока не проверены вилка, скорость ответа и канал.
На стороне работодателя добавляется цена этапа: CPL и cost-per-hire. В демо воронки найма как раз эта логика свода — сравнение срезов, не галерея резюме. Данные на демо синтетические. Механика как в рабочем экране.
Что не переносится: мои 8.1% нельзя ставить целевым KPI рекрутеру. Другая сторона стола, другой набор этапов, другая единица. Бенчмарк 0.5–2% «отклик → найм» тоже не цель «на всех». Это публичный коридор по профессиональным ролям, со своими выборками и своими авторами обзоров.
Как я читаю чужую воронку за один проход
Когда мне присылают выгрузку, я иду по одному маршруту.
Сначала единицы: люди, вакансии или события. Потом окно дат и неполные месяцы. Потом знаменатель каждого процента. Потом медиана времени по этапам. Потом доля отказов без текста — если её нет в отчёте, причины «по словам рекрутера» я не принимаю за полную базу. Только после этого смотрю, совпадает ли узкое горло с той историей, которую рассказывает заказчик.
Если заказчик говорит «мало откликов», сначала вилка и канал. Если «много откликов, мало найма» — скрининг и отношение интервью к офферу. Ориентир imast.ai «выше 7 интервью на оффер» держу как флаг, не как норму каждой функции. Свою воронку читаю так же: 43.4% pending — не «ещё думают»; 8.1% и 3.8% — разные единицы, не повод выбрать красивое; 49 = 49 — повод чинить момент отклика, не семнадцатое ключевое слово.
Что открыть дальше
Демо свода по воронке и срезам: Открыть демо воронки найма.
Соседние статьи цикла:
- HR-аналитик кто это — чем роль отличается от рекрутера и кадровика
- Почему навыки не дают инвайт — про 49 против 49
- CPL отклика на Авито и hh — цена этапа, которого нет в кандидатском боте
Воронка найма начинается с определения этапа и знаменателя. Дальше — таблица, медиана и честный дисклеймер, чьи это цифры. Остальное — прилагательные.
Дальше по теме
Открыть демо воронки найма