у нас cookie
ок
Кейсы R77

Smart Recruitment — скоринг кандидатов на предмет подходимости вакансиям массового подбора и прогноз карьерного трека / оттока

Описание

  • Рассматривали процесс массового подбора персонала (= сотни однотипных позиций).
  • Огромный поток информации → более 100 откликов (иногда 500) на одну вакансию.
  • У рекрутера нет времени просмотреть 500 резюме, берет 3-4 рандомно из них выбирает кандидата.
  • Отличия от точечного еще и в критериях отбора:
— Например, по словам бизнеса - главный фактор это близость от метро 🙂;
— Жесткие критерии на пол / возраст / количество лет опыта.
  • Не использовались онлайн тесты, только информация по откликам.

Идея

Давайте сделаем систему скоринга кандидатов для каждой вакансии и покажем рекрутеру наиболее подходящих кандидатов.
Дополнительно хотим попробовать:
  1. Прогнозировать lifetime сотрудника в компании (>1 года или меньше).
  2. Прогнозировать до какой позиции вырастет кандидат (а-ка карьерное развитие / трек).
  3. Прогнозировать вероятность того, что кандидат примет оффер.

Данные

3 сущности (таблички) в SAP SF:
  1. Вакансия: позиция, требования, адрес, отдел, сфера, …
  2. Кандидат (резюме): опыт, адрес, образование, …
  3. Заявка (связь = отклик кандидата на вакансию, статус: принят / не принят, источник подбора, номер вакансии)

Всего уникальных связок 43 000.
➕ Большинство данных — структурированных (не нужно парсить / классифицировать)

Вызовы

  1. Сложно дать относительный / отнормированный score от 0 до 100%.
  2. Решать как классификацию или как ранжирование?
  3. Как всегда imbalanced данные.

Решение

❗ Стандартный CV-Resume Matching от SAP не подошел (русский язык, нестандартные поля приводили к нулевому качеству). Плюс, он делал matching 2 текстовых документов.

  • Supervised задачка

  • Feature generation — ключ к решению

— Строковое расстояние м\у адресом проживания кандидата и адресом из вакансии.
— Внутренний кандидат или нет: 0 – внешний, 1 – внутренний.
— Значение схожести м\у текущей позицией кандидата и должностью из вакансии.
— Строковое расстояние м\у предыдущими позициями кандидата в Сбербанке (если внутренний) и должностью из вакансии.
— Строковое расстояние м\у предыдущими позициями кандидата (вне) и должностью из вакансии.
— Наличие наград у кандидата: 0 – нет, 1 – есть.
— Уровень образования кандидата: среднее, высшее, PhD, …
— Строковое расстояние м\у отделением в пред. опыте кандидата в Сбербанке (если внутренний) и отделом из вакансии.
— Строковое расстояние м\у отделением в пред. опыте кандидата (вне) и отделом из вакансии.
— Подсчет количество общих слов между полем «Область бизнеса» в пред. опыте кандидата и полем «Доп. требования» из вакансии.
— Наличие опыта руководства у кандидата: 0 – нет, 1 – есть.
— Подсчет количество общих слов между полем «Область руководства» в пред. опыте кандидата и полем «Доп. требования» из вакансии.
— Наличие функционального опыта у кандидата: 0 – нет, 1 – есть.
— Подсчет количество общих слов между полем «Функциональный опыт» в пред. опыте кандидата и полем «Доп. требования» из вакансии.
— Подсчет количество общих слов между полем «Функциональный опыт» в пред. опыте кандидата и полем «Функциональный блок» из вакансии.
— Подсчет количество общих слов между полем «Язык» кандидата и полем «Доп. требования» из вакансии.
— Количество иностранных язык, которыми владеет кандидат.
— Является ли вакансия конфиденциальной: 0 – нет, 1 – да.
— Причина возникновения вакансии: расширение численности, стажировка, …
— Разряд по должности вакансии.
Архитектура решения:

Результат

  • Метрики

— Accuracy (a-ka hit rate): 82% — очень плохая метрика для текущей задачи (баланс классов, задача ранжирования).
— Recall (полнота): 83% — показывает с какой вероятностью мы не пропустим релевантного кандидата, т.е. score будет высоким.

  • Важные признаки

— Соответствие между позицией в вакансии и позицией в резюме кандидата.
— Соответствие между позицией в вакансии и позицией предыдущего внешнего места работы кандидата (вне Сбербанка).
— Разряд по должности.
— Соответствие между функциональной сферой позиции в вакансии и образованием кандидата.
— Соответствие между городом вакансии и городом кандидата.
— Конфиденциальная ли вакансия.
— Соответствие между функциональной областью позиции в вакансии и образованием кандидата.
— Соответствие между подразделением позиции в вакансии и отделом предыдущего внешнего места работы кандидата (вне Сбербанка).
— Соответствие между дополнительными требованиями вакансии и функциональной областью позиции кандидата с предыдущего внешнего места работы (вне Сбербанка).
— Источник резюме — доска объявления.
— Соответствие между дополнительными требованиями вакансии и функциональной областью позиции кандидата с предыдущего внутреннего места работы (внутри Сбербанка).
— Соответствие между подразделением позиции в вакансии и отделом предыдущего внутреннего места работы кандидата (внутри Сбербанка).
— Соответствие между позицией в вакансии и позицией предыдущего внутреннего места работы кандидата (внутри Сбербанка).

  • Аналитика


Модели для некоторых функциональных сфер:

Demo

Что дальше

  • сейчас SAP SF убрали.
  • сейчас благодарю LLM есть новый виток развития подобных HR продуктов.
HR