Как я считаю воронку найма: 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 сходятся на одном наборе. Я считаю его и на своей базе, и в постановке задач на работе.

  1. Поэтапная и сквозная конверсия. Две колонки, не одна.
  2. Time-to-hire / time-to-fill и time-in-stage. Сколько дней висит этап. Медиана важнее среднего: хвост молчания раздувает среднее.
  3. Cost-per-hire и CPL. Стоимость найма и стоимость отклика — соседние, но не одно и то же. CPL я разбираю в статье про отклик на Авито и hh. В своей кандидатской воронке бюджета размещения нет, поэтому CPL здесь не считаю и не выдумываю.
  4. Offer acceptance rate. Доля принятых офферов. В моих hh_events этого этапа нет — пропускаю, а не «оцениваю на глаз».
  5. Причины отказа по этапам и тегам. Иначе воронка показывает «где отвалились», но не «почему».

На работе к этому набору добавляется сравнение каналов и городов: один и тот же профиль на 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-exec39 дней (в 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 875100%
Инвайты (invite)3148.1%
Отказы (reject)1 87948.5%
Без ответа (pending)~1 68243.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СреднееМедиана
Отклик → инвайт1911.9 дня0 дней
Отклик → отказ1 1404.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Шаблон ATS24%
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 — повод чинить момент отклика, не семнадцатое ключевое слово.

Что открыть дальше

Демо свода по воронке и срезам: Открыть демо воронки найма.

Соседние статьи цикла:

Воронка найма начинается с определения этапа и знаменателя. Дальше — таблица, медиана и честный дисклеймер, чьи это цифры. Остальное — прилагательные.

Ещё из цикла