- BrainTools - https://www.braintools.ru -
Часть 4. Как я научился делать грубую фильтрацию разюме с помощью API HH.ru [1] и Gemini
Привет! На связи снова Евгений.
Это четвертая часть цикла о моем самописном инструменте (написанным человеком, который далек от программирования), который вырос из простого поисковика по Excel-файлам в полноценную систему управления бизнес-процессами.
Чтобы вы понимали контекст:
Сначала я сделал поиск по внутренней базе товаров [2], чтобы менеджеры не путались в ассортименте. Потом добавил парсер и модуль сравнения цен [3], чтобы мы понимали, что происходит у конкурентов. Затем прикрутил генератор контента и изображений [4].
И как всегда аппетит растет во время еды. В малом бизнесе часто нет отдельного HR-специалиста. Эту функцию выполняет собственник или руководители отделов. И это всегда привносит определенные неудобства.
Процесс найма обычно выглядит так:
Ты публикуешь вакансию на HeadHunter.
За день прилетает 50–100 откликов.
Ты начинаешь их открывать.
Через час у тебя дергается глаз.
Половина кандидатов вообще не читала описание вакансии. Люди откликаются веерно: «Авось куда-то возьмут». Ты ищешь менеджера в B2B со знанием тендеров, а тебе присылают резюме продавца-консультанта из салона сотовой связи. Формально и то, и то — «продажи», но по факту — разные вселенные.
Чтобы найти одного достойного кандидата, нужно просеять сотни анкет. Это часы монотонной работы, которая отвлекает от реальных дел. Я посмотрел на свой инструмент, где уже успешно трудились нейросети Gemini, и подумал: «Если ИИ может понять, подходит ли этот товар под запрос клиента, почему он не может понять, подходит ли резюме человека под нашу вакансию?»
Так началась разработка модуля «Поиск резюме (HH.ru [1])».
Задача был достаточно простой: построить эффективную воронку отбора
Стандартный поиск на работных сайтах — это набор фильтров. Это работает, но грубо. Мне нужен был инструмент, который бы автоматизировал не просто поиск, а весь процесс первичного отсева, работая по принципу умной воронки: от широкого захвата к глубокому анализу только лучших (ну или хотя бы отсеять ненужные резюме).
Вот как я это реализовал.
Первым делом нужно было научить мое Python-приложение общаться с HH.ru [1]. Я зарегистрировал приложение в кабинете разработчика HeadHunter, получил Client ID и Client Secret.
В интерфейсе своего инструмента я добавил кнопку авторизации. Работает это через стандартный протокол OAuth. Я нажимаю «Войти через HH». Открывается окно браузера, где я подтверждаю доступ. Приложение получает токен и сохраняет его (в зашифрованном виде, разумеется). Теперь мой скрипт может официально делать запросы к базе резюме от моего имени.

Я сознательно отказался от сложных интерфейсов. Вместо этого — два простых поля: Город и Текстовый запрос. В поле запроса я пишу так, как сказал бы живому рекрутеру.
Пример: «Нужен активный менеджер по продажам спецодежды. Обязателен опыт [5] работы с юрлицами (B2B), понимание 44-ФЗ и тендеров. Желательно наличие автомобиля».
Как это работает под капотом:
Скрипт берет точный текст моего запроса и город. Он находит ID города (например, Москва — это 1, Краснодар — 53) для API.
Затем он делает запрос к HH.ru [1], прося выдать до 200 самых свежих резюме, которые соответствуют поисковой фразе в указанном регионе.
Сразу после получения списка, запускается строгий локальный фильтр. API HH.ru [1] может выдать кандидатов из всего края или тех, кто готов к переезду. Мой скрипт проверяет поле «Город» в каждом резюме и отбрасывает всех, у кого оно не совпадает с введенным мной названием.
На выходе мы получаем отфильтрованный список кандидатов строго из нужного нам города.

«Умный сканер» — двухэтапный AI-скоринг для точного отбора
Анализировать все 150–200 резюме с помощью мощной и дорогой модели Gemini — неэффективно. Поэтому я кардинально переработал этап предварительной сортировки, превратив его из простого «сканера» в умную двухэтапную систему фильтрации.
Этап 1: AI-аналитик разбирает мой запрос
Теперь мой текстовый запрос («Нужен активный менеджер по продажам спецодежды…») не просто разбивается на ключевые слова. Он отправляется специальной, легковесной модели Gemini с ролью «HH-Concept-Extractor». Её задача — понять смысл запроса и разложить его на концептуальные группы с синонимами.
Например, для запроса «Активный менеджер по оптовым продажам спецодежды (B2B)» AI вернет не просто набор слов, а структурированные данные:
[["менеджер по продажам", "sales manager"], ["оптовым", "опт", "b2b"], ["спецодежда", "сиз"]]
Это позволяет системе искать не только «менеджера по продажам», но и «sales manager», не только «оптовым», но и «b2b», что кардинально повышает полноту поиска.
Этап 2: Взвешенный скоринг резюме
На этом этапе происходит самое интересное — «встреча» гибкого запроса и фактических данных из резюме. Для каждого из 200 кандидатов система:
Нормализует данные резюме. Все текстовые поля (заголовок, навыки, описание опыта) приводятся к начальной форме (лемматизируются). «Занимался продажами» превращается в [заниматься, продажа].
Проводит взвешенную оценку. Система берет группы концепций из моего запроса и ищет их леммы в нормализованных данных резюме. При этом очки начисляются с разным весом:
Совпадение в заголовке резюме дает больше всего баллов (вес x3).
Совпадение в ключевых навыках — меньше (вес x2).
Совпадение в описании опыта работы — еще меньше (вес x1).
Такой подход гарантирует, что кандидат с должностью «Менеджер по продажам» получит гораздо более высокий балл, чем «Оператор call-центра», даже если у обоих в описании опыта встречается слово «продажи».
На выходе я получаю список, отсортированный по этому новому, умному рейтингу, где наверху находятся самые релевантные кандидаты. И только они отправляются на следующий, глубокий этап анализа.
Вот здесь и начинается ИИ-магия. Система берет топ-50 (или меньше, в зависимости от настроек) кандидатов из предварительно отсортированного списка и только для них запускает глубокий анализ. Для этих 50 кандидатов скачиваются их полные резюме: весь опыт работы, обязанности, достижения, раздел «Обо мне». Далее, для каждого кандидата, этот массив текста отправляется модели Gemini (роль «HH-Analyst»). В промпте для нее заложены инструкции опытного HR-директора.
ИИ делает следующее:
Сравнивает профиль с запросом. Он проверяет, действительно ли опыт кандидата релевантен. Если человек 10 лет продавал, но не в B2B, а в рознице — ИИ это заметит и снизит балл. Выставляет оценку. От 1 до 10 баллов по шкале соответствия моей вакансии. Пишет саммари (Summary). Это краткая выжимка в 2-3 предложения. Например: «Кандидат с сильным профилем в продажах, знает наш рынок. Из минусов — часто меняет работу (4 места за 2 года)».
Генерирует вопросы для собеседования. Это доп фича для руководителя. ИИ видит пробелы или интересные места в резюме и формулирует конкретные вопросы. Пример: «Вы указали, что выиграли крупный тендер в 2023 году. Какова была ваша роль в подготовке документации?»
Весь этот процесс для 50 кандидатов занимает пару минут. Вручную я бы потратил на это несколько часов.
Когда анализ завершен, я вижу перед собой информативные карточки, отсортированные по финальному рейтингу от ИИ. Сверху — «десятки» и «девятки».
В карточке я сразу вижу:
ФИО, возраст, город.
Вердикт ИИ: Оценка и обоснование (почему этот кандидат подходит или нет).
Опыт работы
Вопросы: Готовый список, который можно распечатать перед звонком.

Если мне нравится кандидат, я нажимаю «Показать опыт работы», и разворачивается детализация, где уже подсвечены ключевые навыки, которые я искал.
К примеру, мне нужно показать кандидатов руководителю отдела продаж. Скидывать ссылки в мессенджер неудобно. Поэтому я добавил кнопку «Скачать отчет в Excel». Система формирует аккуратную таблицу. В ней есть колонки: ФИО, Ссылка, Зарплата, Телефон и, самое главное, — Комментарий ИИ и Вопросы.

Детекция ИИ Резюме
В связи с тем, что в последнее время многие использую ИИ для составления резюме, я добавил ИИ-детектор. Использовать ИИ при составлении резюме не хорошо и не плохо, но об этом полезно знать. Теперь, если система с высокой долей вероятности определит, что текст резюме был написан или «причесан» с помощью нейросети, рядом с заголовком появится иконка робота. Это не фильтрует кандидата, а просто дает дополнительную информацию для размышления.

Потенциальный эффект: что может измениться в нашем найме?
Внедрение такого автоматизированного подхода может кардинально изменить процесс подбора персонала в компании, особенно там, где нет выделенного HR-отдела. Скорость найма. Больше не нужно копить резюме днями, чтобы выделить время на их чтение. Запустили скрипт, ушли пить кофе, вернулись — список лучших кандидатов готов.
Качество кандидатов. Снижается риск пропустить хороших специалистов, у которых просто неидеально оформлено резюме (хотя тут большой вопрос, если он не может продать себя, как он будет продавать что-то еще). ИИ видит суть опыта, даже если он описан корявым языком, и находит скрытые таланты.
Уровень собеседований. Даже если интервью проводит не профессиональный рекрутер, а линейный руководитель, у него перед глазами будет список умных, предметных вопросов, сгенерированных ИИ на основе анализа конкретного резюме. Разговор сразу становится более глубоким и по делу.
Конечно, ИИ не заменит личного общения. Он не оценит адекватность человека, его харизму и то, как он вольется в коллектив. Но он может снять с руководителей огромный пласт рутинной работы по первичному отсеву. В результате можно тратить свою энергию и время только на тех, кто этого действительно стоит.
Всех благодарю за прочтение. Всем успехов в ваших начинаниях!
оригинал статьи [6]
P.S.: в ходе обсуждений пришел к тому, что необходимо внедрить ИИ детектинг резюме. То есть определять резюме, которые были написаны с помощью ИИ. Это не говорит, что их нужно отфильтровать, но знать об этом не помешало бы.
Автор: RS_AI
Источник [7]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/22933
URLs in this post:
[1] HH.ru: http://HH.ru
[2] поиск по внутренней базе товаров: https://habr.com/ru/articles/968732/
[3] парсер и модуль сравнения цен: https://habr.com/ru/articles/970726/
[4] генератор контента и изображений: https://habr.com/ru/articles/971740/
[5] опыт: http://www.braintools.ru/article/6952
[6] оригинал статьи: https://evrybakov.ru/ii/podbor-personala-s-pomoshhyu-ii/
[7] Источник: https://habr.com/ru/articles/974800/?utm_source=habrahabr&utm_medium=rss&utm_campaign=974800
Нажмите здесь для печати.