Rychagov S. AI Кейсы
AI поиск и подбор резюме

AI поиск и подбор резюме

Подбор кандидатов с помощью умных алгоритмов

Где применяется

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

Кому пригодится

Это решение я рекомендую крупным компаниям и кадровым агентствам, которые регулярно ищут специалистов и получают сотни резюме на каждую вакансию. Отдел HR сокращает время на ручной просмотр резюме с недель до часов — система автоматически фильтрует наиболее подходящих кандидатов. Стартапы и быстрорастущие компании, которым нужен быстрый рекрутинг без огромного штата HR. Рекрутинговые агентства могут предложить своим клиентам инструмент для объективной оценки кандидатов. Особенно эффективно для массового подбора на типовые позиции (разработчики, специалисты поддержки, продавцы).

Технологии

Интеграция с HeadHunter API

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

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

N8N для оркестрации workflow

Весь процесс подбора организован в виде workflow в N8N. Основной процесс: запрос к HeadHunter API, получение списка резюме для вакансии, проход по каждому резюме, отправка данных на анализ, сохранение результатов. N8N позволяет мне визуально спроектировать всю логику, добавить условные переходы и параллельную обработку. Например, я могу обрабатывать 10 резюме одновременно, что ускоряет время анализа в 10 раз.

Дополнительно через N8N я настроил автоматическое сохранение фото кандидатов, логирование всех действий, отправку уведомлений HR-менеджеру при готовности результатов, и экспорт в различные форматы.

LLM анализ резюме и соответствие вакансии

Для каждого резюме я отправляю текст описания вакансии + текст резюме в LLM (я использую GPT-4 или локальные модели типа Mistral через Ollama). Модель анализирует соответствие кандидата требованиям и возвращает структурированный анализ. Система обучена на примерах хороших и плохих кандидатов, поэтому выдаёт достаточно объективные оценки.

На практике: для вакансии "Senior Python Developer" система анализирует наличие требуемого опыта (Python, Django, PostgreSQL), количество лет опыта, соответствие уровню (senior), наличие релевантных проектов в резюме.

Балловая система оценки от 0 до 100

Я реализовал многокритериальную систему оценки: опыт работы (0-25 баллов), технические навыки (0-30 баллов), релевантные проекты (0-20 баллов), образование (0-10 баллов), соответствие зарплатным ожиданиям (0-10 баллов), красные флаги типа частой смены работы или длительных перерывов (штраф до -15 баллов). Итоговая оценка от 0 до 100 даёт объективное ранжирование кандидатов.

Пример: кандидат с 5 годами опыта Python, работал над проектом похожей сложности, но ожидает зарплату выше нормальной рынка — получит оценку около 70-75. Кандидат с 7 годами опыта, идеальным стеком и адекватными ожиданиями — 90+.

Выявление сильных и слабых сторон

LLM анализирует резюме и выделяет strong points и weak points для каждого кандидата. Strong points: "Большой опыт с микросервисами", "Работал в крупных компаниях", "Есть опыт в облачных платформах (AWS, GCP)". Weak points: "Узкая специализация, может быть сложно адаптироваться", "Зарплатные ожидания выше рынка на 30%", "Нет опыта с нашим основным стеком". Это помогает HR-менеджеру быстро понять, почему кандидат подходит или нет, и подготовить хорошие вопросы для собеседования.

Сортировка и ранжирование

Система автоматически сортирует всех кандидатов по итоговой оценке (от 100 до 0) и выделяет топ-N кандидатов (обычно топ-10 или топ-20 в зависимости от размера вакансии). HR-менеджер видит сразу самых подходящих людей и может начать с ними контакт, вместо того чтобы просматривать сотни резюме вручную.

Сбор фото и создание единой системы

Я скачиваю фото профилей всех кандидатов с HeadHunter и сохраняю их в единой папке с именованием по ID кандидата. В системе я создал веб-интерфейс (Vue.js + FastAPI), где HR-менеджер видит таблицу со всеми кандидатами: фото, ФИО, оценка, сильные и слабые стороны, опыт работы и контакты. Система позволяет кликнуть на кандидата и открыть его полный профиль на HeadHunter для подробного изучения.

Дополнительно система поддерживает фильтрацию и поиск: например, "показать всех кандидатов с оценкой выше 80", "показать только кандидатов с опытом работы более 5 лет", "исключить кандидатов, которые уже были в собеседовании".

Экспорт в Excel

Система генерирует красивый Excel файл со всеми кандидатами, их оценками и анализом. Я использую библиотеку openpyxl для Python для форматирования: цветовое кодирование по оценкам (красное = низкая, зелёное = высокая), вставка фото в таблицу, гиперссылки на профили HeadHunter. HR-менеджер может скачать файл и делиться им с другими членами команды, с командой hiring managers или с руководителем проекта.

Архитектура и масштабирование

Весь стек построен на N8N для orchestration, Python + FastAPI для backend, Vue.js для frontend. Обработка больших объёмов резюме (500+) выполняется асинхронно в фоновом режиме — пользователь инициирует поиск, а результаты обновляются в реальном времени через WebSocket. Я использую Redis для кэша (чтобы не повторно анализировать одно и то же резюме) и PostgreSQL для хранения истории анализов, что позволяет быстро найти все прошлые оценки кандидата.

На практике: анализ 200 резюме занимает 5-10 минут (в зависимости от сложности LLM запросов). Система масштабируется горизонтально через добавление дополнительных worker процессов для параллельной обработки.

Интеграция с другими системами

Я реализовал интеграцию с Slack для уведомлений ("Анализ резюме для вакансии 'Senior Developer' завершён, топ-5 кандидатов готовы к просмотру"). Возможна интеграция с Telegram, Email, и другими системами управления кандидатами (ATS системы). Это позволяет HR-менеджеру получить уведомление сразу и быстро начать работу с лучшими кандидатами.

Важные организационные моменты

Первое — соответствие законодательству о защите персональных данных. Резюме содержат личные данные кандидатов (ФИО, контакты, фото). Я убедился, что данные обрабатываются в соответствии с GDPR и местными законами. Данные хранятся защищённо, доступ имеют только авторизованные сотрудники HR, а после завершения подбора данные удаляются согласно политике компании (обычно через 30-90 дней).

Второе — проверка точности оценок LLM. Модель не идеальна и может давать ошибочные оценки. Я всегда рекомендую HR-менеджеру проверять топ-кандидатов вручную перед тем как им писать. На практике: система отсеивает явно непподходящих кандидатов (оценка < 40), а лучших кандидатов (80+) обычно действительно подходят.

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

Четвёртое — управление соответствием HeadHunter API лимитам. У API есть ограничения на количество запросов (обычно 100-200 запросов в минуту). Я организовал систему очередей и rate limiting, чтобы не превышать лимиты и не получить бан от HeadHunter.

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