Привет, Хабр! Меня зовут Денис, я аналитик в Юнион — системе автоматизации подбора персонала. Как и в любой сфере, куда внедряется автоматизация, возникает необходимость анализировать данные. В подборе персонала это нужно, чтобы оценивать эффективность рекрутинга, отслеживать ключевые метрики и принимать решения на основе фактов, а не ощущений.
В этом году мы решили масштабную задачу — перенесли аналитику подбора из внутреннего сервиса в Apache Superset. В результате новая платформа значительно расширила наши возможности и наших клиентов в построении аналитики: теперь отчеты могут гибко настраиваться, работать с большим объемом данных и использовать ролевую модель Юнион.
В этой статье я кратко расскажу про Apache Superset, в целом про аналитику подбора, причины и процесс нашего переноса отчетов в новый BI-инструмент, а также поделюсь полезными лайфхаками, которые помогут сэкономить время при работе с дашбордами.

Хочу сразу уточнить: до этого я не работал с BI-инструментами, и Superset стал для меня первым опытом — причём очень положительным. Благодаря тому, что я уже давно использую SQL, работаю с таблицами и строю визуализации в Excel, освоить Superset мне удалось достаточно быстро.
Что такое аналитика подбора, какая она бывает и зачем нужна
Аналитика данных подбора, в первую очередь, нужна для того, чтобы принимать решения на основе фактов, а не интуиции. Аналитика и принятие решений на основе ее может существенно повысить эффективность найма: сократить время закрытия вакансий, выявить лучшие источники кандидатов и нанимать сотрудников, которые остаются дольше.
Чтобы извлекать пользу из данных по подбору нужно определиться с отслеживаемыми показателями. Выделю основные, которые дают наиболее общую и полноценную картину по подбору:
Движение по воронке подбора и конверсия
Источники привлечения кандидатов
Отказы, их категории и причины
Время на этапах воронки
Сроки и стоимость закрытия вакансий и позиций
Эффективность рекрутеров
Удовлетворенность подбором
Разберем каждую метрику по отдельности.
Движение по воронке подбора и конверсия
Что включает в себя? Метрика отражает количество кандидатов на каждом этапе воронки подбора — от первого контакта до выхода на работу. Позволяет анализировать как общий поток кандидатов в системе, так и динамику по конкретной вакансии или команде.
Как рассчитывается? Среди вариантов расчета конверсии можно выделить: конверсию от первого этапа воронки (количество кандидатов на этапе Х / количество кандидатов на первом в воронке этапе) и конверсию от предыдущего этапа воронки (количество кандидатов на этапе Х по очередности / количество кандидатов на этапе Х-1 по очередности).
Зачем нужна? Этапы воронки с количеством кандидатов показывают общую картину подбора. А конверсии между этапами позволяет выявить "узкие места" в воронке, на которых "теряются" кандидаты.
Источники привлечения кандидатов
Что включает в себя? Метрика отражает количество кандидатов по источникам подбора. Показывает общий поток кандидатов по источникам и их эффективность.
Как рассчитывается? Рассчитывать эффективность можно, как количество кандидатов, принятых на вакансию от общего количества кандидатов в системе по этом источнику подбора.
Зачем нужна? Этапы воронки с количеством кандидатов отражает общую картину подбора по источникам кандидатов и позволяет понять из каких источников строится воронка. Эффективность источников показывает из каких источников кандидаты закрывают позиции.
Отказы, их категории и причины
Что включает в себя? Комплекс показателей, отражающих отказы кандидатов по этапам воронки, категориям и конкретным причинам. Показывает, на каких стадиях и по каким причинам кандидаты выбывают из процесса подбора.
Зачем нужна? Позволяет выявить "узкие места" в воронке. Например, если кандидаты часто попадают в отказ на этапе "Резюме у заказчика" с причиной "не подходит по опыту", это указывает на некачественный сорсинг или несоответствие формулировок вакансии реальным требованиям. Анализ таких данных помогает корректировать процессы, улучшать коммуникацию с заказчиками и повышать точность подбора.
Время на этапах воронки
Что включает в себя? Метрика охватывает расчет среднего времени, которое кандидаты проводят на каждом этапе воронки подбора, включая статусы внутри этапов — например, время от отправки резюме заказчику до получения обратной связи, или время ожидания собеседования после согласования дат.
Зачем нужна? Позволяет выявить "узкие места", где процесс подбора замедляется. Например, если кандидаты длительное время находятся в статусе «На согласовании» у заказчика, это указывает на задержки в принятии решений со стороны бизнеса. Анализ времени помогает определить, кто именно затягивает процесс — рекрутер, интервьюер, HR-подразделение или сама система согласований. Это основа для оптимизации сроков закрытия вакансий и повышения качества взаимодействия с кандидатами.
Сроки и стоимость закрытия вакансий и позиций
Что включает в себя? Метрика включает расчет двух ключевых показателей: времени, затраченного на закрытие вакансии, и совокупной стоимости этого процесса. Время может измеряется в рабочих днях — от момента открытия вакансии до выхода кандидата на работу. Стоимость может рассчитываться исходя из затраченного времени, количества проведенных интервью и оплаты тарифов работных сайтов.
Зачем нужна? Позволяет оценить эффективность работы рекрутеров, сравнить результативность подбора по разным направлениям, вакансиям или командам. Анализ сроков и стоимости помогает выявлять перерасходы, оптимизировать бюджет, принимать решения о привлечении внешних ресурсов или автоматизации процессов.
Эффективность рекрутеров
Что включает в себя? Метрика охватывает комплекс показателей, отражающих результативность работы рекрутера: количество закрытых вакансий за период, средние сроки закрытия, стоимость найма, конверсия по этапам воронки, качество нанятых сотрудников (удержание на 6–12 месяцев), количество кандидатов в процессе, процент отказов оффера. Также может включать субъективные оценки от заказчиков и обратную связь от кандидатов.
Зачем нужна? Позволяет объективно оценить производительность и эффективность работы рекрутера, выявить лучших специалистов, определить зоны для развития. Данные используются для постановки KPI, планирования нагрузки, а также для анализа и оптимизации общей стратегии подбора.
Удовлетворенность подбором
Что включает в себя? Метрика основана на обратной связи от ключевых участников процесса: кандидатов, заказчиков подбора и т.д. Включает данные опросов, оценок и комментариев по критериям: своевременность коммуникации, прозрачность процесса, качество взаимодействия с рекрутером, соответствие ожиданий реальности, общее впечатление от найма.
Зачем нужна? Позволяет оценить качество рекрутингового опыта, который формирует бренд работодателя. Высокая удовлетворенность снижает риск отказов оффера, повышает лояльность к компании и способствует удержанию. Анализ отзывов помогает выявлять системные проблемы в процессе и улучшать взаимодействие между всеми сторонами.
В идеале аналитика должна включать вышеописанные метрики и показатели с возможностью детализировать и группировать информацию по рекрутерам, заказчикам, отделам и т.д.
Что такое Superset и как он работает
Apache Superset — это платформа для исследования и визуализации данных с открытым исходным кодом, которая позволяет создавать интерактивные дашборды и отчеты на основе различных источников данных.
Superset поддерживает огромное количество типов визуализаций — от простых графиков до сложных аналитических виджетов. Для дашбордов по подбору мы в основном использовали: столбчатые и круговые диаграммы, а также сводные и детализированные таблицы.

Вкратце про то как работать с Superset. Основные сущности в Superset:
Датасет — источник данных: таблица или SQL-запрос, с которой вы работаете.
Чарт — графическое представление данных: график, диаграмма, таблица и т. п. Строится на основе датасета.
Дашборд — это страница, где вы объединяете чарты и управляете ими через общие фильтры.
Создание дашборда в Superset включает в себя следующие шаги:
Вы подключаете Superset к базе данных
Создаете датасет
Создаёте основе датасета чарты
Собираете их в дашборд
Примечание. Создание графиков и дашбордов в Superset с нуля требует базовых знаний SQL. Для рекрутеров, которые активно работают в системе и хотят строить собственные визуализации, это может стать серьёзным барьером. Им остаётся либо пользоваться готовыми датасетами, подготовленными командой, либо осваивать SQL самостоятельно.
В то же время в компаниях, где есть сотрудники с навыками работы с данными — например, аналитики, инженеры данных или разработчики, — Superset раскрывается по-настоящему: он превращается в мощный инструмент для глубокой аналитики и наглядной визуализации.
Для более глубокого погружения рекомендую ознакомиться со статьей на Хабре, посвящённой работе с Apache Superset: там подробно разобраны описываемые мной шаги по созданию дашборда.
Как выглядела отчётность в Юнион до Superset и предпосылки перехода
Изначально в Юнионе существовали два типа отчётности:
— графические отчёты, созданные с помощью внутренних инструментов,
— и табличные отчёты, которые пользователи и аналитики Юнион могли собирать самостоятельно в простом и интуитивно понятном конструкторе.
Графические отчеты представляли собой столбчатые горизонтальные диаграммы с детализирующими таблицами в нижней части отчета. Они были ограничены визуальными настройками, настройками фильтров и детализацией в таблицах.

Со временем стало ясно, что текущие графические отчёты не дают конкурентных преимуществ на рынке — они ограничены по функциональности и визуальным возможностям. В связи с этим было принято решение интегрировать Юнион с Apache Superset и перенести всю аналитику по подбору в эту платформу.
Перед выбором новой BI-платформы были сформулированы ключевые требования и проведен сравнительный анализ существующих решений. Мы рассматривали три BI-платформы: Metabase, Apache Superset и Redash.
Предпочтение было отдано Apache Superset — он лучше всего соответствовал нашим требованием к аналитике подбора благодаря следующим преимуществам:
Гибкий конструктор фильтров — настройка прямо на дашборде, возможность задавать значения по умолчанию и тонко управлять логикой фильтрации (включая множественные параметры, зависимые фильтры и условия).
Быстрые кросс-фильтры — мгновенная смена фильтров по клику на любой элемент визуализации без перезагрузки страницы.
Экспорт в популярные форматы — данные и графики можно сохранить как CSV, Excel, PDF, PNG.
Простое создание отчётов и визуализаций — даже без знания SQL: достаточно выбрать датасет и настроить отображение через понятный интерфейс. *Применимо для создания графиков из предустановленных датасетов.
Текстовые блоки на дашборде с поддержкой HTML — позволяют встраивать пояснения, инструкции или контекстную информацию, а также оформлять текст с помощью ссылок, стилей и других HTML-элементов прямо внутри дашборда.
Глубокая кастомизация под заказчика — благодаря открытому исходному коду и модульной архитектуре Superset легко адаптируется под специфические требования.
Именно этот набор функций сделал Apache Superset оптимальным решением для интеграции в Юнион.
Как мы перенесли аналитику Юнион в Superset
Для интеграции Superset в Юнион мне необходимо было выполнить следующие задачи:
Сформировать SQL-запросы для датасетов на основе заданных требований к отчётам.
Настроить чарты и собрать дашборды в Superset, соответствующие бизнес-потребностям.
В нашей команде нет отдельной роли аналитика данных — часть этих функций выполняю я. Подготовка SQL-запросов стала для меня значительным стимулом к росту в аналитике данных. В процессе работы пришлось глубже разобраться с устройством сложных запросов: эффективными JOIN'ами, подзапросами, CTE, агрегациями и оптимизацией производительности.
Создание визуализаций и дашбордов также стало важным этапом развития. Это был мой первый практический опыт работы с BI-инструментом в профессиональной среде. Я освоил основы Superset — от настройки графиков до компоновки дашбордов и управления фильтрами.
С какими проблемами столкнулись
В процессе переноса отчётности не обошлось без сложностей. Встречалось множество мелких вопросов, но одной из ключевых проблем стала производительность дашбордов.
Производительность дашбордов
При тестировании производительности дашбордов столкнулись с тем, что датасеты строились на основе тяжёлого SQL-запроса с JOIN-ов и CTE. На тестовой базе данных объемом около 500 тысяч кандидатов загрузка занимала более минуты. Кэширование Superset, конечно, спасало нас, но время загрузки при первом открытии нас не устраивало.
Решение: оптимизировали запрос — сократили количество JOIN'ов, особенно с большими таблицами, и вынесли основную логику в предварительно подготовленную таблицу-"скелет" в БД. Эта таблица содержит все необходимые данные для дашбордов и обновляется раз в час с помощью внутреннего инструмента.
В результате время отклика дашбордов сократилось до нескольких секунд, а нагрузка на базу значительно уменьшилась. Причем удалось сохранить возможность кастомизации отчетов.
Результаты переноса отчетности в Superset
В Юнион сейчас у нас есть несколько дашбордов, которые отвечают на следующие вопросы:
1. Воронка подбора
Дашборд отражает "общую картину" подбора за выбранный период. Графики могут фильтроваться по участникам вакансии, типу добавления кандидатов и источнику привлечения. А также включает в себя конверсию воронки подбора, по которой можно найти места, где кандидаты "выпадают" из процесса подбора.

2. Источники привлечения: из каких источников
Дашборд дает понимание из каких источников формируется воронка и из каких источников приходят кандидаты, которые закрывают вакансии.

3. Категории и причины отказов
Дашборд показывает по каким причинам и категориям этих причин кандидаты выходят из воронки подбора. Позволяет отследить на каких этапах и по каким причинам кандидаты попадают в "отказ".

4. Срок закрытия вакансии
Дашборд включает в себя две вкладки, отражающие эффективности закрытия вакансий: расчеты по срокам закрытия позиций/вакансий и время на этапах с соблюдением нормативных значений (SLA) на этих этапах.
4.1. Срок закрытия вакансии
Позволяет отследить среднее время закрытия позиции в вакансии от даты открытия и от даты прикрепления с возможностью фильтровать данные по отделу, участнику вакансии и т.д.

4.2. Нормативные значения по срокам (SLA)
Позволяет понять на каких этапах кандидаты проводят больше всего времени, на каких этапах нарушается SLA и понять по какой причине это происходит.

Итоги интеграции с Superset
Пора подвести итоги. В результате выполнения этой задачи я впервые поработал с BI-инструментом, улучшил свои знания в SQL и в визуализации данных, а наш продукт Юнион получил эффективный и гибкий инструмент аналитики данных по подбору.
Перенос Superset существенно улучшил наши визуальные отчеты: теперь по ним проще искать данные, делать кастомные фильтры, использовать кросс-фильтры и использовать сложные расчеты в графиках.
Однако мы не перестаем работать над нашей аналитикой — мы проводим опросы и собираем обратную связь от заказчиков, чтобы улучшить их опыт использования нашей системы.
Полезные лайфхаки по работе с Superset
Как перевести Superset на русский язык? Добавить в superset_config.py параметр русского языка и настроить его по умолчанию. Таким образом большая часть кнопок и надписей буду отображены на русском языке.
LANGUAGES = {
"ru": {"flag": "ru", "name": "Русский"},
"en": {"flag": "us", "name": "English"}
}
BABEL_DEFAULT_LOCALE = "ru"
Шаблонов фильтров в Superset нет, но вы можете поделиться настроенными фильтрами по ссылке. Как? Просто настройте нужные фильтры прямо в дашборде, а затем скопируйте и отправьте ссылку — любой, кто откроет дашборд по этой ссылке, увидит точно такие же параметры фильтрации, как будто вы передали ему готовый «шаблон» одним кликом.
В Superset есть особенность настройки фильтров: при выборе типа интервала "За последний период" текущая дата не включается в рассматриваемый диапазон, что может быть неудобно или нелогично для некоторых пользователей. Для включения текущей даты вы можете перенастроить фильтр по примеру ниже: в левом поле можно выставлять необходимый период (в днях от текущего дня).
