Одна карточка конкурента рынком не считается
Одна карточка конкурента с окладом выше нашего рынком не считается. HRD почти всегда приносит одну вакансию: «у них оклад выше» или «у них ДМС с первого дня». Это одна строка. Конкурентный анализ рынка труда начинается со среза.
На работе веду два контура. HR Rocket — медиапланы и CPL отклик на Avito и hh.ru. HR Stats — рынок: зарплаты, каналы, бенефиты конкурентов, сводки для HRD. Роль продуктовая: требования, сценарии, приёмка. Штатным «аналитиком рынка» с личным SLA перед клиентом не работаю. Модель на этом контуре не обучаю.
Сайт hrstats.ru — SPA. Серверный HTML почти пустой. Витринных процентов оттуда не снимаю и не выдумываю. Ниже — что продукт делает по внутренним формулировкам и что принимаю. Живые цифры зарплат в этой статье не подставляю: срез зависит от запроса, города и даты. Механику среза можно пощупать в демо аналитики рынка труда. Это портфельный стенд на HeadHunter API. Выгрузка клиента HR Stats там не лежит.
Три подмены
Бенчмарк по одной ссылке. Конкурент мог выложить вилку «от» без «до», указать доход «на руки» в одном городе и «гросс» в другом, смешать оклад и премию в одной строке. Одна карточка hh.ru политике оплаты всей сети не равна.
CPL. CPL отвечает, сколько мы платим за отклик на нашу вакансию. Рынок отвечает, какую вилку, какой пакет и какой канал видит кандидат снаружи. Смешать их — получить отчёт «мы дороже рынка», хотя сравнивали стоимость лида с чужим окладом.
Скоринг резюме. Контур размещений резюме не ранжирует. HR Stats разбирает вакансии и пакет. Кандидатов не ранжирует. Если в разговоре всплывает «ИИ оценит резюме», это другой контур. Сюда его не тащу.
| Вопрос HRD | Какой это анализ | Где у меня |
|---|---|---|
| Сколько стоит отклик на нашу вакансию? | Эффективность каналов, CPL | HR Rocket, статья про CPL |
| Какую вилку видит кандидат у конкурентов? | Мониторинг зарплат | HR Stats / срез hh, Avito |
| Чем их оффер сильнее нашего, кроме оклада? | Total rewards, таблица бенефитов | HR Stats, приёмка таблицы |
| Куда они кладут бюджет — hh или Avito? | Каналы и форматы публикаций | HR Stats и медиаплан |
| Почему люди уходят после выхода? | Текучка, не рынок вакансий | Отдельный контур, не эта статья |
Кто такой HR-аналитик в этой рамке — человек, который не даёт этим вопросам склеиться в один слайд «нужно поднять зарплату».
Одна ссылка — одна строка.
Сначала рамка, потом цифра
Пока не зафиксированы должность, география, канал, опыт и период, любая медиана — декорация. Срез собираю как таблицу фильтров. «Средняя по рынку» из неё не следует.
| Ось | Что фиксирую | Что ломает сравнение |
|---|---|---|
| Роль / профиль | Класс: кассир, сборщик, системный аналитик. Title вакансии классом не становится | «Менеджер» без расшифровки |
| География | Город или явный remote. «Вся Россия» в одну медиану не идёт | Смесь Москвы и регионов |
| Канал | hh.ru, Avito, карьера на сайте | Вилка с корпоративного сайта против вилки Avito |
| Опыт и график | 1–3 / 3–6, смена, удалёнка | Стажёр рядом с сеньором |
| Период | Неделя или 30 дней, одна дата среза | «Смотрел зимой, они вчера» |
| Единица денег | Гросс / нетто, оклад / оклад+премия | «до 180» без базы |
Практическое правило. Одна вакансия конкурента может быть выбросом. Сеть могла задрать вилку на одну точку, закрыть дыру на складе или ошибиться в карточке. Рынок — распределение: минимум, нижний квартиль, медиана, верхний квартиль, хвост. Если приносят одну ссылку, кладу её на это распределение. Распределение под ссылку не подгоняю.
В Excel это выглядит скучно и правильно. Строки — роль × регион. Столбцы — перцентили. Отдельная колонка «сколько вакансий с зарплатой». Без знаменателя медиана врёт так же, как CPL без откликов.
Данные для такого среза собираю сам: SQL, Python, ETL. Для разового спора на планёрке часто хватает сводной. Для регулярного мониторинга — кастомный дашборд, чтобы ту же логику не собирали руками каждый понедельник.
Что прошу от среза зарплат
Мониторинг зарплат в HR Stats — регулярная сводка. Разовый скрин ею не становится. Данные рынка — hh, Avito и другие площадки. Ставил состав полей и логику сводок: должность, регион, канал, вилка, наличие цифры в карточке.
Что обязательно оказывается на листе, который готов подписать.
- Знаменатель. Сколько вакансий в срезе и сколько из них с зарплатой. На hh.ru большая доля карточек без вилки. Медиана «по тем, кто указал» — уже смещение. Его надо назвать.
- Перцентили. Одно среднее хвост не держит: вахта и «до 400» для редкого профиля тянут его вверх. Решение обычно живёт около медианы и верхней квартили. «Ниже рынка» и «в рынке, но не в топе» — разные фразы.
- Оклад и обещание раздельно. «Доход до» часто включает премию, которую кандидат не увидит в первый месяц. Если в карточке это не разделено, помечаю строку грязной. Фактом оклада она не становится.
- Сопоставимый график. Ночная смена, вахта и пятидневка — разные товары. Склеить их в одну вилку «сотрудник склада» — короткий путь к спору с операционным директором.
Готовых вилок «кассир / Москва / 2026» в этой статье нет. Не выдумываю. Актуальный срез считается запросом. Абзац блога его не заменяет.
Демо аналитики рынка труда как раз для этого: живой запрос в HeadHunter API, медиана и перцентили, топ навыков, работодатели, сводка. Портфель, не клиентский кабинет. Цифры на экране — ответ API на ваш запрос в этот день. «Официальная вилка HR Stats» из них не следует.
Где висит вакансия
Конкурентный анализ без канала слепой. Линейный найм часто живёт на Avito сильнее, чем на hh.ru. IT и офис — наоборот. Смотреть только привычную площадку — получить картинку «рынок пустой», хотя соседний канал забит.
Что раскладываю по каналу и формату:
- где конкурент держит объявление: hh, Avito, карьерный сайт;
- копирует ли одно и то же описание или меняет заголовок и вилку;
- как часто переиздаёт: свежесть бьёт по выдаче сильнее, чем кажется на планёрке;
- какой график и город в карточке. Иногда «удалёнка» в заголовке и офис в тексте.
Это стыкуется с медиапланом. Если рынок по кассирам в городе сидит на Avito, а бюджет крутится только на hh, CPL отклик выйдет «дорогим» из-за чужого канала. Слабая вилка тут может быть ни при чём. Сначала карта рынка. Потом бюджет.
Формат публикации — отдельная ось. Короткое объявление с цифрой или длинное без вилки. Фото точки или пустая карточка. Адрес или «сеть по стране». Конверсии форматов не публикую. Открытой витринной статистики HR Stats у меня нет. Чужие проценты с лендингов в статью не переношу. Принцип один: формат сравнивают внутри одной роли и одного города. «По всем вакансиям компании» такое сравнение не живёт.
Таблица бенефитов
Оклад — часть оффера. Кандидат сравнивает пакет. HRD сравнивает пакет, только если ему приносят таблицу. Скрин «у них есть ДМС» таблицей не становится.
В HR Stats отдельный сценарий: разобрать описания вакансий конкурентов, вытащить бенефиты, собрать сводную таблицу ключевых бенефитов по компаниям в выборке. Формализовал требования к извлечению и критерии приёмки. Диалог по заготовленным веткам. Полнота таблицы. Строки можно сравнить между собой.
| Колонка | Зачем | Типичная грязь |
|---|---|---|
| Компания / бренд | Единица сравнения | Франшиза и управляющая компания как одна строка |
| ДМС | Есть / с какого дня / на членов семьи | «соцпакет» без расшифровки |
| Премия / бонус | Формула или хотя бы периодичность | «высокий доход» без базы |
| График и переработки | Смена, вахта, учёт | «удобный график» |
| Питание, проезд, жильё | Особенно линейный найм | Льгота только в одной точке сети |
| Обучение | То, чем закрывают слабую вилку | Курс «для галочки» |
Приёмка жёсткая. Если в таблице «есть ДМС», а в тексте вакансии «после испытательного», строка не проходит. Если две компании попали в одну ячейку из-за похожего названия, строка не проходит. Если бенефит выдуман из общих слов «забота о сотрудниках», строка не проходит.
Тот же навык, что ручная таблица в Sheets. Разница в масштабе: выборку, которую руками за вечер не разметить, закрывает сценарий. Логика сравнения одна. Список исходных вакансий знаменатель не отменяет. Таблица без этого списка — мнение.
Слой запросов HR Stats устроен как оркестратор и намерения. Рекрутер спрашивает про рынок, вилку, город, пакет. Диалог в свободный чат уезжать не должен. Нагрузку на рекрутеров по типовым вопросам рынка снимали этим контуром. Отдельную витринную цифру «минус N% у всех клиентов» здесь не ставлю. Публичным KPI сайта эта цифра не числится.
Вакансия, компания, рынок
Короткий протокол перед любой цифрой.
Шаг 1. Назвать объект. «Вакансия номер такой-то конкурента X в городе Y» политике X не равна. Рынку роли в Y тоже не равна.
Шаг 2. Собрать выборку. Не меньше нескольких десятков карточек на роль и гео, если рынок живой. Если карточек мало, так и пишу: рынок тонкий, медиана неустойчива. Соседние роли «чтобы набрать статистику» не добираю.
Шаг 3. Почистить единицу денег и графика. Вынести на отдельный лист то, что сопоставить нельзя.
Шаг 4. Показать распределение и знаменатель. Одна ссылка — точка на этом графике, с датой.
Шаг 5. Отдельно пакет. Вилка может быть равной. Оффер при этом дырявый: ДМС, премия, график, срок выплаты.
Шаг 6. Отдельно канал. Если конкурент закрывает роль на Avito дешевле по вниманию кандидата, оклад поднимать автоматически не из чего. Иногда надо сменить площадку и заголовок.
Ошибки, которые ловлю на приёмке и на планёрке:
- сравнили нашу вилку «на руки» с их «до вычета»;
- взяли вакансию из Москвы как аргумент для региона;
- усреднили IT и линейный найм в одном слайде «рынок вырос»;
- приняли переиздание за новую потребность;
- объяснили дорогой CPL «рынком зарплат» и канал не проверили.
Три листа, с которых можно решить
Дашборд ради дашборда не отдаю. Три листа или три экрана.
Первый — вилки. Роль × регион × канал, перцентили, число вакансий с зарплатой, дата среза. Вывод одной фразой: ниже нижней квартили, в рынке или держим верх.
Второй — пакет. Таблица бенефитов по компаниям выборки. Вывод: где оффер дырявый при похожей вилке.
Третий — каналы. Где висят объявления конкурентов и в каком формате. Вывод: куда смотреть медиаплан, прежде чем спорить про оклад.
Если после этого решение — поднять вилку, это решение на данных. Если решение — сменить канал или переписать заголовок, оклад могли не трогать. Конкурентный анализ как раз держит эти развилки отдельно.
Стек, которым это собирается, разбираю отдельно: Excel, SQL, Яндекс DataLens. Инструмент не спасает, если объект сравнения не назван.
Что в статье есть и чего нет
Зарплатных вилок, конверсий канала и «средней экономии по рынку» здесь нет. Честно взять их неоткуда: ни с SPA hrstats.ru, ни из головы.
Что можно проверить руками:
- механику среза hh — демо аналитики рынка труда: запрос, фильтры опыта и графика, медиана, перцентили, навыки, работодатели, сводка. Данные — ответ HeadHunter API в момент запроса;
- механику CPL и пилота — Свод Avito + hh.ru, синтетика, NDA на клиентские абсолюты;
- продуктовую рамку HR Rocket, CPL, baseline, стратегии Эконом, Оптимальная, Агрессивная — лендинг продукта. Личная P&L-таблица из лендинга не следует.
HR Stats описываю как продукт, на котором ставлю сценарии и принимаю таблицу бенефитов. Клиентские объёмы и внутренние SLA аккаунта в публичную отчётность не входят.
Если нужен портрет роли — кто такой HR-аналитик. Если нужен вход в воронку после отклика — соседний текст про метрики найма. Рынок и воронка встречаются на одном столе у HRD. Знаменатели у них разные.
Открыть демо аналитики рынка труда. Живой запрос. Одна чужая вакансия этим запросом не заменяется.
Дальше по теме
Открыть демо аналитики рынка труда