Привет, я Ярослав технический директор www.r77.ai и расскажу, как помогали Сберу подбирать резюме через делали ml-метчинг, а еще прогнозировали карьерное развитие кандидатов.О проектеНазвание: Smart RecruitmentСистема: SAP Success FactorsЗаказчик: СберОписаниерассматривали процесс массового подбора персонала (=сотни однотипных позиций);огромный поток информации → более 100 откликов (иногда 500) на одну вакансию;у рекрутера нет времени просмотреть 500 резюме, берет 3-4 рандомно из них выбирает кандидата;не использовались онлайн тесты, только информация по откликам.Отличия от точечного еще и в критериях отбора:- по словам бизнеса - главный фактор это близость от метро 🙂- жесткие критерии на пол / возраст / кол-во лет опытаИдеяСделать систему скоринга кандидатов для каждой вакансии и показать рекрутеру наиболее подходящих кандидатов.Дополнительно хотим попробовать:прогнозировать lifetime сотрудника в компании (>1 года или меньше);прогнозировать до какой позиции вырастет кандидат (а-ка карьерное развитие / трек);прогнозировать вероятность того, что кандидат примет оффер.Данные3 сущности (таблички) в SAP SF:Вакансия: позиция, требования, адрес, отдел, сфера, …Кандидат (резюме): опыт, адрес, образование, …Заявка (связь = отклик кандидата на вакансию, статус: принят / не принят, источник подбора, номер вакансии).Всего уникальных связок 43000.➕ большинство данных - структурированных (не нужно парсить / классифицировать)ВызовыСложно дать относительный / отнормированный score от 0 до 100%решать как классификацию или как ранжирование?Как всегда 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 будет высокимВажные признакиСоответствие между позицией в вакансии и позицией в резюме кандидатаСоответствие между позицией в вакансии и позицией предыдущего внешнего места работы кандидата (вне Сбербанка)Разряд по должностиСоответствие между функциональной сферой позиции в вакансии и образованием кандидатаСоответствие между городом вакансии и городом кандидатаКонфиденциальная ли вакансияСоответствие между функциональной областью позиции в вакансии и образованием кандидатаСоответствие между подразделением позиции в вакансии и отделом предыдущего внешнего места работы кандидата (вне Сбербанка)Соответствие между дополнительными требованиями вакансии и функциональной областью позиции кандидата с предыдущего внешнего места работы (вне Сбербанка)Источник резюме - доска объявленияСоответствие между дополнительными требованиями вакансии и функциональной областью позиции кандидата с предыдущего внутреннего места работы (внутри Сбербанка)Соответствие между подразделением позиции в вакансии и отделом предыдущего внутреннего места работы кандидата (внутри Сбербанка)Соответствие между позицией в вакансии и позицией предыдущего внутреннего места работы кандидата (внутри Сбербанка)Ещё аналитикаЧто дальшесейчас SAP SF убралисейчас благодарю LLM есть новый виток развития подобных HR продуктовЯ создал канал, где описываю, как мы делаем такие проекты@r77_ai приходите, там мы пишем много о реальных кейсах внедрения AI в промышленность и корпорации)