Совпадение навыков не объясняет инвайт
Рекрутер пишет «выбран другой кандидат» — и мозг достраивает: не хватило стека. Я проверил это на своих заявках. Средний match-score у инвайтов и у отказов один и тот же: 49 против 49. Навыки в резюме почти не разделяют исход. Разделяют тайминг, конкуренция и вилка, которой нет в тексте вакансии.
Я — Артём Стельмахов, HR-аналитик. Цифры ниже — не рынок РФ и не бенчмарк hh. Это моя воронка: бот откликов, PostgreSQL, срез 2026-09-09. История бота в основном BA/SA, пивот в HR-аналитика свежий. Метод тот же, что я применяю к воронке найма: этапы, time-in-stage, причины отказа, скоринг «резюме vs вакансия». Резюме — на сайте и на HeadHunter.
Воронка, на которой я это увидел
События apply / invite / reject в hh_events, июнь 2024 — сентябрь 2026.
| Этап | Кол-во | Доля от заявок |
|---|---|---|
| Заявки | 3 875 | 100% |
| Инвайты | 314 | 8.1% |
| Отказы | 1 879 | 48.5% |
| Без ответа | ~1 682 | 43.4% |
Рыночный ориентир «отклик → найм» для профессиональных ролей — 0.5–2% (HrPanda 2026). Это другой этап. Мои 8.1% — «отклик → инвайт», ближе к переходу «скрининг → интервью», не к выходу на работу. Сравнивать эти два процента как одну конверсию нельзя.
Дедуп по вакансии, последняя тысяча в ATS-срезе hh_vacancies: applied 577 / invitation 38 / rejected 385. Конверсия 3.8%, доля отказов 38.5%. Это уже не все события бота, а срез по уникальным вакансиям. Обе цифры — мои, не рынок.
Инвайт в 8.1% не доказывает, что резюме «сильное». Он доказывает, что воронку можно посчитать на своих данных так же, как HR-аналитик считает её на данных компании.
Время решения: инвайт приходит в тот же день
Метрика time-in-stage — join заявки с первым инвайтом или отказом по той же вакансии.
| Переход | N | Среднее | Медиана |
|---|---|---|---|
| Отклик → инвайт | 191 | 1.9 дня | 0 дней |
| Отклик → отказ | 1 140 | 4.6 дня | 1.2 дня |
Если зовут — часто в тот же день. Если отказывают текстом — медиана чуть больше суток. Долгое «на рассмотрении» обычно не рассмотрение, а молчание: 43.4% заявок так и остаются без статуса. Это не гипотеза про рынок. Это распределение по моим событиям.
Для HR-аналитики внутри компании вывод тот же: среднее врёт, медиана показывает, где воронка живая. Кандидат, который ждёт неделю, уже не в процессе. Он в хвосте без ответа.
Теги отказа: навыки — не главное узкое место
Из 1 377 отказов текст от рекрутера пришёл только в 193 случаях (14%). Остальное — автостатус без сообщения. Это тоже инсайт: большинство работодателей фидбэк не пишет. Теги ниже — только по этим 193 текстам, LLM-классификация, одно сообщение может нести несколько тегов. Сумма долей больше 100%, теги не исключают друг друга.
| Тег | Кол-во | Доля от 193 | Что это значит |
|---|---|---|---|
competition_timing | 182 | 94% | Не успел, закрыли, выбрали другого |
polite_no_reason | 176 | 91% | Вежливый отказ без причины |
salary_unknown | 171 | 89% | В вакансии нет вилки — высокий риск разъехаться в деньгах |
fit_stack | 47 | 24% | Не совпал стек |
auto_template | 46 | 24% | Шаблон ATS |
fit_product_ba | 36 | 19% | Вакансия ближе к продуктовому BA, чем к системному |
geo_format | 30 | 16% | Офис, гибрид, город |
letter_wrong_proof | 23 | 12% | В письме не тот кейс под роль |
human_recruiter | 6 | 3% | Живой текст, не бот |
fit_domain | 3 | 2% | Не тот домен |
fit_stack — 24%. Не ноль, но не то место, куда смотрит интуиция. 94% текстов несут конкуренцию и тайминг. 89% — вакансию без зарплаты. Эти два тега часто сидят в одном письме вместе с «вежливым отказом без причины». Поэтому «нас не устроил стек» — удобная история, которую данные не подтверждают.
Я не утверждаю, что рынок так устроен для всех. Я утверждаю, что в моей размеченной выборке из 193 текстов узкое горло не в навыках. Если бы я правил только стек и ждал рост инвайтов, я правил бы не ту ступень.
Match-score 49 = 49
Скоринг computeMatchScore плюс LLM-разбор: резюме против текста вакансии. Выборка — 1000 последних вакансий, endpoint deep-analytics.
Средний балл инвайтов: 49. Средний балл отказов: 49.
Если бы исход объяснялся набором ключевых слов, эти два средних разъехались бы. Они не разъехались. Совпадение навыков — слабый предиктор. Это стыкуется с тегами: fit_stack на четверти текстов, competition_timing почти на всех.
Топ гэпов по той же тысяче — про историю бота, не про HR-аналитика. До пивота корзина была BA/SA. Таблицу ниже нельзя читать как «чего не хватает HR-аналитику». Её можно читать как «какой метод я применяю».
| Навык из вакансии, которого нет в резюме | Всего | В отказах | В инвайтах |
|---|---|---|---|
| Системный анализ | 195 | 83 | 5 |
| Бизнес-анализ | 146 | 57 | 7 |
| Аналитическое мышление | 119 | 50 | 7 |
| Постановка задач разработчикам | 89 | 36 | 3 |
| Разработка технических заданий | 72 | 34 | 2 |
| Apache Kafka | 64 | 30 | 0 |
| REST | 55 | 26 | 2 |
| User Story | 55 | 22 | 0 |
| API | 53 | 23 | 2 |
| Анализ данных | 50 | 20 | 1 |
Kafka в 30 отказных вакансиях и в нуле инвайтов выглядит как стоп. На фоне 49 = 49 это локальный шум по одному навыку, не закон воронки. Системный анализ «не хватает» и там, куда меня звали: 5 инвайтов при 83 отказах. Гэп есть в обеих корзинах. Значит, наличие строки в резюме не есть причина инвайта.
Метод полезен тем, кто нанимает, ровно в эту сторону. Skill-matrix «есть / нет» объясняет, кого отсеет автофильтр ATS. Она плохо объясняет, кого позовут, когда автофильтр уже пройден. Дальше работают очередь, скорость чужого отклика и вилка, которой нет в тексте.
Месяцы и тонкий срез по HR-аналитику
Помесячно конверсия скачет. Это не «рынок умер в мае». Это мои фильтры, письма и объём.
| Месяц | Заявки | Инвайты | Конверсия |
|---|---|---|---|
| 2026-03 | 569 | 52 | 9.1% |
| 2026-04 | 505 | 44 | 8.7% |
| 2026-05 | 1 204 | 61 | 5.1% |
| 2026-06 | 233 | 10 | 4.3% |
| 2026-07 | 215 | 10 | 4.7% |
| 2026-08 | 255 | 15 | 5.9% |
Май раздул заявки и уронил долю. Июнь–август — меньше объёма, конверсия ползёт вверх: 4.3% → 4.7% → 5.9%. Я связываю это с итерациями фильтров и писем, не с «рынком в целом». Доказательства на уровне A/B у меня нет: это наблюдение на своих рядах.
Срез именно по HR-аналитик вакансиям пока тонкий: 13 объявлений с явным HR-профилем, 8 applied, 5 rejected, 0 invitation. Пивот свежий, инвайтов ещё нет — это ожидаемо, не провал стека. Сами тексты полезны как словарь: Excel + Power Query / Pivot, SQL, один BI (DataLens / Power BI / Tableau как альтернативы), иногда 1С:ЗУП и C&B. Отказ при точном совпадении стека уже был — вакансия «Передовые Платежные Решения», Excel + SQL + DataLens, отказ без причины. Это тот же паттерн, что и 94% competition_timing в размеченных текстах.
Что из этого следует — и чего не следует
Следует: не чинить только навыки, если воронка уже считает 49 = 49. Чинить скорость, фильтр по вилке, точность письма под роль. letter_wrong_proof — 12% размеченных отказов: это место, где я могу повлиять сам. salary_unknown — 89%: я не заставлю работодателя открыть вилку, но могу не тратить заявку на объявление без денег, если мой коридор известен.
Не следует: переносить 8.1% и 49 = 49 на чужую ATS. Бот откликается иначе, чем человек. Корзина до пивота — BA/SA. Теги стоят на 193 текстах из 1 377 отказов. Оставшиеся 86% отказов без текста я не разметил и не додумал.
Не следует и обратное: «навыки не важны». fit_stack на 24% — реальный слой. Гео и формат — 16%. Domain gate вроде 1С:ЗУП на корпоративных HR-ролях я в этой статье не пересчитываю: его нет в моей BA/SA-истории как массового тега, но в живых HR-вакансиях 2026 он есть. Про него — в тексте про стек, честно: ЗУП и Hay я не администрировал.
Для нанимающей стороны практический вывод простой. Если воронка «отклик → скрининг» плохая, сначала проверьте очередь и прозрачность вилки, не только чек-лист навыков. Если инвайт не растёт после расширения skill-matrix в вакансии, возможно, вы чините не ту ступень. Свою воронку я разбираю так же: этап, время, причина, и только потом совпадение слов.
Демо, где эта логика собрана в интерфейс, а не в таблицу статьи: разобрать воронку на демо. Цикл рядом: воронка найма и метрики, кто такой HR-аналитик, стек HR-аналитика.
Оговорка. Все абсолюты (3 875 заявок, 314 инвайтов, 8.1%, 49 vs 49, теги на 193 текстах, помесячные ряды) — моя БД бота откликов, срез 2026-09-09. История выборки в основном BA/SA до пивота в HR-аналитика. Бенчмарк 0.5–2% «отклик → найм» — HrPanda 2026, другой этап воронки. Демо на /recruiting-roi — синтетика.
Дальше по теме
Разобрать воронку на демо