Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Привет, я Ярослав технический директор www.r77.ai и расскажу, как помогали Сберу подбирать резюме через делали ml-метчинг, а еще прогнозировали карьерное развитие кандидатов.

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

О проекте

Название: Smart Recruitment

Система: SAP Success Factors

Заказчик: Сбер

Описание

  • рассматривали процесс массового подбора персонала (=сотни однотипных позиций);
  • огромный поток информации → более 100 откликов (иногда 500) на одну вакансию;
  • у рекрутера нет времени просмотреть 500 резюме, берет 3-4 рандомно из них выбирает кандидата;
  • не использовались онлайн тесты, только информация по откликам.

Отличия от точечного еще и в критериях отбора:

- по словам бизнеса - главный фактор это близость от метро 🙂

- жесткие критерии на пол / возраст / кол-во лет опыта

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Идея

Сделать систему скоринга кандидатов для каждой вакансии и показать рекрутеру наиболее подходящих кандидатов.

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Дополнительно хотим попробовать:

  • прогнозировать lifetime сотрудника в компании (>1 года или меньше);
  • прогнозировать до какой позиции вырастет кандидат (а-ка карьерное развитие / трек);
  • прогнозировать вероятность того, что кандидат примет оффер.

Данные

3 сущности (таблички) в SAP SF:

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

Всего уникальных связок 43000.

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

➕ большинство данных - структурированных (не нужно парсить / классифицировать)

Вызовы

  • Сложно дать относительный / отнормированный score от 0 до 100%
  • решать как классификацию или как ранжирование?
  • Как всегда imbalanced данные
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Решение

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

  • supervised задачка
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

feature generation - ключ к решению

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

Архитектура решения

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Результат

Метрики

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

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

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

Ещё аналитика

Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)
Близко ли живет кандидат? Или как мы помогали Сберу фильтровать резюме через ML)

Что дальше

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

Я создал канал, где описываю, как мы делаем такие проекты

@r77_ai приходите, там мы пишем много о реальных кейсах внедрения AI в промышленность и корпорации)

22
Начать дискуссию