Приложение для обработки резюме на базе ChatGPT для кадрового агентства
Март 2023

Приложение для обработки резюме на базе LLM для кадрового агентства

Приложение для обработки резюме на базе LLM для кадрового агентства
Направления
Технологии
Мы создали десктопное приложение на базе LLM, которое анализирует резюме, извлекает необходимую информацию, такую как навыки и опыт кандидата, и присваивает ему уровень квалификации в соответствии с его навыками.

Задача

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

Бизнес-логика

Наша система по анализу и поиску резюме работает по следующему алгоритму:

  1. Ищет в запросе важные сущности (ключевые моменты), на основе которых будет осущетствлять поиск в резюме
  2. “Нормализует” поисковые запросы и документы (резюме)
  3. Осуществляет семантический поиск в базе резюме
  4. Ранжирует результаты поиска
Поиск важных сущностей в запросе рекрутёра

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

Стоимость ChatGPT для нужд заказчика оказалась слишком большой, поэтому мы решили применить LLM меньшего размера (выбирали между Llama и Mistral), такую LLM мы развернули для заказчика на арендованном сервере.

Наша LLM находит сущности в русскоязычных и англоязычных запросах, устойчива к грамматическим ошибкам в запросах пользователя, обрабатывает синонимы, обобщает развёрнутые описания.

Также можно указывать дополнительные правила, каким образом должны определяться сущности, если их значение нужно «вычислить», например:

You should assume require seniority from the query. 1-2 years of experience is Junior, 3-4 years is Middle, 5 and more year is Senior. If seniority cannot be assumed, leave the field empty.

“Нормализация” документов и поисковых запросов

Для ускорения нашего поиска мы предложили использовать нормализованные запросы и нормализованные документы вместо обычных запросов и документов (резюме) пользователей.

Нормализованный запрос - это запрос пользователя, очищенный от “шума”, т.е. изменённый таким образом, чтобы он содержал только релевантную информацию в стандартном виде. Список сущностей, обнаруженных в запросе является хорошим примером нормализованного запроса.

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

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

Семантический поиск в базе резюме

Семантический поиск мы осуществляем с помощью Elastic Search в два этапа.

В первой итерации скорость поиска оказалась неудовлетворительной, поэтому мы предложили перейти на двухступенчатый поиск: сначала быстрая модель (Retriever) возвращает большое кол-во релевантных результатов (например, 1000-5000 документов), после чего более качественная и медленная модель (Reranker) сортирует эти результаты по релевантности.

Ранжирование результатов поиска

Семантический поиск следует требуемым правилам ранжирования: точное совпадение всегда имеет более высокий ранг, чем синонимы. Между собой синонимы ранжируются в зависимости от своей близости к поисковому запросу.

А благодаря нормализации документов и запросов результаты ранжирования имеют достаточно высокое качество.

Результаты

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

Основываясь на навыках и достижениях кандидата, приложение присваивает ему уровень квалификации, например, "младший", "средний" или "старший" для кандидатов на должность инженера-программиста, что облегчает сортировку кандидатов.

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

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

другие наши проекты

Инструмент сбора данных о пожарах в США

Инструмент сбора данных о пожарах в США

Распознавание диалоговых пузырей на рисунках манги

Распознавание диалоговых пузырей на рисунках манги

Мобильное приложение для музеев по распознаванию картин

Мобильное приложение для музеев по распознаванию картин

Инструмент по сбору данных о событиях из американской национальной сети происшествий

Инструмент по сбору данных о событиях из американской национальной сети происшествий

Парсер данных для маркетплейсов

Парсер данных для маркетплейсов

Мобильное приложение для удалённого контроля брака печати 3D-принтеров

Мобильное приложение для удалённого контроля брака печати 3D-принтеров

Система по распознаванию чертежей для бюро строительной экспертизы

Система по распознаванию чертежей для бюро строительной экспертизы

Система сканирования паспортов

Система сканирования паспортов

Обработка судебных документов при помощи ChatGPT-4

Обработка судебных документов при помощи ChatGPT-4

Система по анализу и выгрузке отзывов с маркетплейса на основе ИИ

Система по анализу и выгрузке отзывов с маркетплейса на основе ИИ

Сервис для обучения нейронных сетей без кода

Сервис для обучения нейронных сетей без кода

Мобильное приложение с KYC-верификацией пользователя

Мобильное приложение с KYC-верификацией пользователя

Давайте найдем решение для вашего бизнеса!

Давайте найдем решение для вашего бизнеса!

Пожалуйста, заполните 'Имя'
Пожалуйста, заполните 'Телефон'
Пожалуйста, заполните 'Емейл'
Пожалуйста, заполните 'Сообщение'

Пожалуйста, заполните 'Имя и фамилия'
Пожалуйста, заполните 'Телефон'
Пожалуйста, заполните 'Емейл'
Выберите файл
Пожалуйста, выберите файл 'Резюме'
Выберите файл
Пожалуйста, прикрепите файл 'Код / ТЗ'