Создание нейро-HR помощника или
как упростить рутину для специалистов.
Методы создания HR-рекрутера

Авторы статьи, участники AI-лаборатории: Анна Якушева, Александр Токарев

Введение

В современном мире, где конкурентоспособность на рынке труда возрастает с каждым днем, специалисты по управлению человеческими ресурсами (HR) сталкиваются с беспрецедентными вызовами. Растущее количество резюме и заявок на вакансии требует значительных временных и трудовых затрат, что часто приводит к перегрузке сотрудников HR. По данным исследований, например, в 2023 году количество открытых вакансий в России увеличилось на 25%, в то время как число работодателей, готовых предложить конкурентоспособные условия, осталось прежним. Эта диспропорция создает значительное давление на HR-отделы, которые должны не только находить таланты, но и эффективно управлять ими.

Сложности, с которыми сталкиваются специалисты, варьируются от обработки большого объема резюме до невосприимчивости традиционных методов анализа кандидатов. Когда за одну вакансию может поступить от 100 до 300 и более резюме, ручной отбор становится трудоемким процессом, часто сопровождающимся ошибками и субъективностью. Статистика показывает, что 72% HR-менеджеров жалуются на недостаток времени для качественного анализа резюме, что в конечном итоге тормозит процесс подбора и значительно увеличивает временные затраты на закрытие вакансий.

В условиях нехватки кадров и постоянных изменений на рынке труда актуальность внедрения инновационных технологий в HR становится критически важной. На сегодняшний день методы создания нейро-HR, которые включают в себя искусственный интеллект и машинное обучение, могут значительно упростить рутинные процессы подбора и управления кадрами. Эти методы могут помочь автоматизировать обработку резюме, классификацию кандидатов по навыкам и культурной совместимости, а также предоставить аналитические инструменты для более взвешенного принятия решений.

В рамках лаборатории Университета искусственного интеллекта нашей командой были произведены различные испытания по созданию нейро-HR с функцией анализа для реализации задач рекрутинга и разработаны несколько вариантов подхода для решения этой задачи. В статье подробно рассказывается о начальном этапе работы — это подбор персонала, и далее показывается куда можно двигаться, тем самым расширяя возможности всего проекта с помощью подключения дополнительных модулей.

Статья будет интересна как HR-сотрудникам с целью поиска новых решений, так и IT специалистам для создания и доработки подобных моделей.

Общая схема проекта

Описание
Весь проект состоит из трех этапов. На первой ступени Анализатор резюме просматривает базу и отбирает кандидатов, исходя из требований текущей вакансии. Затем на Ступени 2 отобранные кандидаты проходят онлайн-собеседование. Это, как правило, запись видео-конференции в Zoom, где сотрудник HR отдела задает кандидату соответствующие вопросы, просит пройти небольшой тест для оценки поведения и коммуникативного стиля кандидата (тест DISC) и в заключении просит выполнить одно тестовое задание. Далее происходит анализ полученных результатов, и кандидат переходит на следующую Ступень 3 — приглашение на личную встречу.

Ступень 1. Анализатор резюме

Работа производилась на статичной базе резюме, полученной с сайта Job.ru.
Алгоритм работы модели выглядит следующим образом:

Алгоритм работы модели

На первоначальном этапе вся база насчитывала около 45 тыс. строк и нужно было отфильтровать кандидатов на интересующую должность Интернет-маркетолог.

База до обработки

После фильтрации, разделения столбца Город, переезд, командировки на составляющие и приведения всех типов валют к одному виду — рубли, таблица приняла следующий вид и сократилась до 564 строк.

База после обработки

Добавлена колонка Cand_id, по которой в дальнейшем будет происходить поиск кандидата. После векторизации она будет находиться в метаданных.
Из-за большого количества информации и невозможности подать в вектор всю строку, разбили базу на две части. В первой базе чанков находились все анкетные данные кандидата: Город, Метро, Зарплата и т.д., а во второй базе чанков только графа с Опытом работы.
Далее они объединяются и векторизируются. База FAISS готова.
Загружаем текстовый файл с подробно изложенной вакансией
Используем функцию обращения к модели gpt-4o-mini с применением метода similarity_search_with_relevance_score
И подробно расписываем системный промт с применением ассистентов
Создаем запрос и получаем ответ системы
Полученный список кандидатов подается на вторую ступень — помощнику по проведению собеседования.

Ступень 2. Проведение и анализ собеседования

Задача модели с помощью предварительно сформированных вопросов выявить у кандидата, прошедшего первый отбор, ключевые профессиональные навыки, провести психологические тесты на коммуникативность и адаптацию кандидата, а также на выявление сильных и слабых сторон. В заключении предлагается выполнить одно из тестовых заданий на выбор. По каждому разделу формируется накопительная база, которая проходит предварительный анализ, а затем на основе сведенных данных происходит общая финализация и оценка кандидата. Далее кандидат приглашается уже на очную встречу с результатами выполненного тестового задания.

Ниже приведена графическая схема работы алгоритма по проведению онлайн собеседования на позицию интернет-маркетолога.
С кандидатом проводится онлайн собеседование, где задаются выше перечисленные вопросы и тесты. После каждого блока происходит формирование промежуточного отчета, а затем общего сводного отчета.
В рамках работы нашей команды можно привести похожий пример, где в качестве кандидата выступает запись актера в формате видео визитки. Затем она транскрибируется с помощью библиотеки Whisper и анализируется с помощью LLM GPT-4o-mini. Это демонстрационная задача подбора актера на озвучивание рекламного ролика для маркетплейса OZON.

Вот пример текста после транскрибации и установки необходимых библиотек.
Требовалось выявить соответствие кандидата по следующим параметрам:
  1. Голосовые качества
  2. Опыт работы
  3. Разнообразие ролей
  4. Совместимость с брендом
  5. Технические аспекты
  6. Личностные качества
Ниже показан пример отчета Голосовые качества и Совместимость с брендом
Голосовые качества
Совместимость с брендом
После оценки параметров формируется отчет по всем навыкам соискателя, а затем итоговый отчет:
Отчет о навыках соискателя
Итоговый отчет
Пример промта первого отчета
Пример промта итогового отчета
Данная задача иллюстрирует только часть работы всего алгоритма Ступени 2. Здесь есть большие возможности для расширения модели в зависимости от выполнения конкретной задачи. Например, при работе с видеозаписью диалога можно не только транскрибировать ее в текст, но еще и подать в НС для распознавания эмоций. Это уже будет отдельная модель в виде нейро-профайлера.
Целью нашей команды было задать вектор направления для специалистов. HR - менеджеры безусловно добавят что-то свое, а IT-специалисты дополнят и расширят модель по запросу HR-ов.

Ступень 3. Анализ диалога с кандидатом

На личной встрече HR-менеджер собеседует кандидата по заранее подготовленным вопросам по конкретной должности. По взаимной договоренности беседа записывается в аудио/видео файл, чтобы потом можно было транскрибировать и перевести ее в текст для подачи в LLM и последующего анализа. Это своеобразная база знаний о кандидате.

Под каждую задачу для финальной оценки качеств кандидата формируется ряд вопросов. Затем, как и в прошлых ступенях формируется промежуточный отчет, а затем итоговый. Вот пример как могла бы выглядеть беседа с кандидатом на позицию интернет-маркетолога.
Пример данной ступени демонстрирует скорее идеальную задачу. На практике HR-менеджер может принять решение о кандидате гораздо раньше, но помощь нейро-HR будет весьма кстати в тех случаях, когда с появлением искусственного интеллекта и расширением рынка труда стали появляться новые профессии и специалистам кадровых служб порой сложно определить критерии оценки будущего кандидата.

2. Метод построения эмбедингов

Данный метод подходит для работы с большими базами анкет кандидатов. Суть его в том, что часть данных можно формализовать — превратить в числа или классы. Это сократит объем информации, обрабатываемой LLM, увеличит скорость и снизит стоимость запроса.

У каждого кандидата есть определенные характеристики, которые можно описать числами. Например, количество отработанных лет в данной специальности, зарплатные ожидания и т.п. Проведенные эксперименты показали, что векторизованные анкетные данные некорректно работают при совершении арифметических процедур. Например, при запросе «Найди кандидатов с опытом работы более 15 лет» (процедура сравнения чисел) векторная база узнает отдельные числа (1 и 5), но понятие “больше” для неё уже малопонятно. В результате на выходе такого запроса попадаются кандидаты с опытом 15 лет, 5 лет и 1 год. Все попытки сравнивать векторы, содержащие числовые данные, окончились неудачей. Даже в том случае, если использовалось только векторизованное число лет. Манипуляции с числами в векторной базе у нас не сработали с приемлемой точностью.

Для точной работой с численными данными, соответствующие анкетные данные надо преобразовать в число. Это достаточно легко сделать с помощью соответствующего запроса в LLM.

Например:
«Извлеки из текста следующие данные: 1. возраст кандидата, 2. желаемая зарплата. Ответ выдай в виде чисел после каждого номера вопроса. Больше ничего не пиши».

Далее ответ расщепляется с помощью парсинга на python.

Данные, которые можно классифицировать, также формализуются.

Например:
При отборе кандидатов поисковый запрос также формализуется и поиск осуществляется как в обычной числовой базе данных. При этом не используются ни векторы, ни LLM.

Для этого надо предварительно формализовать соответствующие разделы анкетных данных для всех резюме в базе, а также каждое новое резюме, попадающее в базу. Так как исходные резюме кандидаты пишут в свободной форме, формализацию может осуществлять с помощью LLM. Для этого всю базу нужно прогнать через LLM запросом типа:

«Извлеки из текста следующие данные и определи какой вариант предпочитает кандидат, какой: пол (варианты:
0. Мужской, 1. Женский), в какой форме кандидат желает получить оплату (варианты: 0. Переводом, 1. Наличными, 2. не определено), график работы (варианты: 0. Свободный, 1. По часам 2.не определено). Ответ выдай в виде номеров вариантов». Текст запроса надо подбирать под соответствующую модель с тестированием.

Далее полученные номера сортируются по соответствующим колонкам базы данных. Каждое новое резюме пропускается через эту процедуру. Преимущество этого подхода в том, что формализация осуществляется только один раз для каждого резюме.

Таким же образом можно работать с более сложными анкетными данными. Например, очень много информации содержит раздел «Опыт работы». Из этой информации для отбора кандидатов требуется выжимка, включающая: суммарный опыт работы, количество мест работы, среднее время работы на одном месте и пр.

Для сокращения информации, подаваемой в LLM при отборе кандидата из базы, можно заранее формализовать «опыт работы» по вопросам, интересующим HR-специалиста. Такую «выжимку» LLM делает достаточно легко. Пример запроса:

«Найди ответы на следующие вопросы: 0. какой суммарный опыт работы кандидата лет и месяцев, 1. количество смененных мест работы, 2. среднее время работы на одном месте. Запиши ответ в виде номеров вопросов и ответа на каждый вопрос. Если ответ на вопрос не найден, после номера напиши NO.»
Далее полученные номера сортируются по соответствующим колонкам базы данных обычными алгоритмами. Каждое новое резюме пропускается через эту процедуру.

Более сложные текстовые анкетные данные, такие как «набор квалификаций», «личные качества» формализовать затруднительно, однако легко преобразовать в вектор с помощью той же LLM. Таким образом, получится база данных резюме, состоящая из формализованных (превращенных в отдельные числа) разделов и векторизованных разделов.

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

Логика работы такой поисковой системы представлена на схеме:
Такой подход позволяет также учитывать степень важности при сортировке списка отобранных кандидатов. Степень важности можно учитывать с помощью соответствующих «весов» отдельных параметров. Для числовых данных итоговая оценка кандидата определяется обычным арифметическим пересчетом числа и «веса», для векторных оценку можно считать, используя «близость» векторов запроса и кандидата.
Формирование списка контрольных вопросов к кандидату
По словам HR-специалистов, часто бывает ситуация, когда требования к вакансии нечетко определены. Одна из причин – произвольная постановка задачи работодателем. Обычно у него мало времени и он не может позволить себе долго рассказывать обо всех требованиях к кандидату. Более того, не все требования легко вспомнить сразу, некоторые из них не очевидны. В этом случае, чтобы осуществить релевантный отбор кандидатов, необходимо уточнить требования. Это можно сделать с помощью контрольного списка вопросов работодателю, которые с одной стороны, упростят (ускорят) формирование требований к вакансии, с другой, напомнят о неочевидных требованиях. Такой список можно сформировать с помощью современных LLM. Запрос может выглядеть так:

«Составь список вопросов к кандидату на должность _________, с учетом следующих требований.»

Далее присоединяются те требования, которые уже успел назвать работодатель. Если используется модель базы данных с формальными характеристиками кандидата, которая была рассмотрена выше, то в список требований автоматически можно добавить «стандартные» разделы, которые уже есть в формализованной части базы данных. Например, зарплата, формы работы, опыт работы по специальности.

Тогда в списке вопросов к работодателю формализованные разделы можно представить, как выбор из нескольких вариантов (как в тестах), что упростит заполнение. Например:
В этом случае упрощается как выбор, так и работа LLM по извлечению информации из запроса. Останется разработать процедуру заполнения этого списка работодателем. Это уже чисто человеческая история.

3. Метод отбора кандидатов на конкурсной основе

Данный метод применим в тех случаях, когда нет четко сформулированной вакансии на позицию или например, HR-менеджер хочет сделать обзор рынка труда по интересующему направлению. В отличие от первого метода подбора по вакансии здесь формируются три базы:
  • по анкетным данным, где можно четко задать требование поиска по городу или по продолжительности работы на одном месте;
  • по профессиональным навыкам, где можно определить кандидатов с высшим образованием или с конкретными навыками в профессии (в нашем случае с интернет-маркетологом — это проведение рекламных кампаний, ведение соц сетей и т.д.);
  • по личностным характеристикам, где можно отобрать кандидатов, обладающие такими качествами как: коммуникабельность, креативность, умение работать в команде и пр.
В итого все три базы суммируются и формируется итоговый отчет, который отвечает на запрос пользователя, кто чаще всего упоминается в итоговой базе.

Графическая схема такого помощника представлена ниже.
В программном коде модель работает идентично первой ступени метода подбора по вакансии. Так же формируются базы чанков по анкетным данным и опыту работы, также создается база эмбедингов. Пишется промт для LLM, в которой объясняются все правила проведения конкурса.
Далее формируется пустой список и первый запрос пользователя. Все последующие запросы также добавляются в базу db_1 (см. схема модели).
Таким образом формируем первую итоговую базу по анкетным данным db_4. Критерием отбора будет являться самое частое упоминание ID кандидата во всех предыдущих запросах. Чтобы продолжить работать с этой базой ее нужно снова привести к формату эмбедингов и векторизовать.
Аналогично собирается вторая база критериев отбора на основе профессиональных навыков db_2 и формируется итоговая база db_5. Вот пример одного из запросов по второй базе:
Затем собирается третья база с личностными характеристиками db_6.
Таким образом у нас получились три итоговые базы: db_4, db_5, db_6. Далее все списки суммируются и создается итоговая база из кандидатов db_all, прошедших первый и второй конкурсные отборы.
Отфильтровав таблицу по индексам финалистов, выводим итоговые данные.

Заключение

Использование языковых моделей (LLM) при подборе кандидатов значительно упрощает рутинную работу HR-специалиста как на этапе формирования базы данных резюме, так и в процессе подбора кандидатов. Возможны различные уровни автоматизации, включая автоматизацию обзвона и опроса кандидатов с использованием нейро-ассистентов. При этом более глубокая работа с кандидатами все же будет проводиться HR-специалистом в рамках живого диалога, так как далеко не все качества человека можно формализовать, даже с помощью LLM. Применение LLM может существенно ускорить работу с кандидатами, освободив специалиста от рутинных операций. Эффект от использования LLM будет тем значительнее, чем больше база данных кандидатов.

Внедрение HR-помощников, обладающих широким функционалом, позволяет сократить время и усилия, необходимые для обработки информации о кандидатах. Эти помощники способны значительно упростить и оптимизировать работу HR-специалистов, автоматизируя процессы подбора персонала, анализируя соответствие кандидатов требованиям вакансий, вести учет сотрудников и контролировать процесс приема и адаптации новых сотрудников в коллектив. При выборе HR-помощника важно учитывать особенности компании, объем работы и потребности отдела кадров. Необходимо подобрать такой инструмент, который будет наиболее эффективно справляться с поставленными задачами и соответствовать бюджету компании. Также HR-помощник может оптимизировать процессы обучения и развития персонала, а также контролировать выполнение ключевых HR-процессов в организации. Важно выбрать подходящий инструмент, который поможет значительно улучшить управление персоналом.
Made on
Tilda