Разработка AI-системы для ранжирования кандидатов

AI-система ранжирования кандидатов

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1459
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1314
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1012
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1275
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    727
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1018

AI-система ранжирования кандидатов

Мы разрабатываем AI-систему ранжирования кандидатов, которая решает задачу многокритериального отбора: технические навыки, релевантный опыт, культурное соответствие, карьерная траектория. Традиционные методы вроде поиска по ключевым словам дают точность ~50% на реальных данных. Мы используем multi-vector scoring с отдельными компонентами под каждый критерий и взвешенной агрегацией, настраиваемой под конкретную роль. Это позволяет не только повысить точность, но и дать объяснение каждому скору.

Типичная ситуация в рекрутинге: 400 резюме на позицию, HR-менеджер успевает прочитать 30. Остальные отсеиваются по поверхностным признакам — заголовку должности, названию университета, наличию ключевых слов. Это не отбор лучших — это отбор первых попавшихся. Наша AI-система ранжирования даёт взвешенный скор каждому кандидату относительно конкретной вакансии, объясняет этот скор в терминах, понятных HR-у, и не теряет сильные профили с нестандартным бэкграундом. Это и есть настоящий AI рекрутинг и автоматизация рекрутинга.

Где ломается наивный подход?

Простейший вариант — keyword matching или TF-IDF между описанием вакансии и резюме — даёт precision 0.45–0.55 на реальных данных. Кандидат с 10-летним опытом в «разработке программного обеспечения» проигрывает тому, кто написал точную фразу из JD. Семантика теряется.

Следующий шаг — embedding similarity через sentence-transformers. Здесь проблема другая: модели общего назначения (all-MiniLM-L6-v2, text-embedding-3-small) плохо работают с HR-специфичной семантикой. «Python» в JD и «Python» в резюме дата-аналитика и backend-разработчика — разные контексты, но embedding не различает. Семантическое сопоставление резюме без учёта контекста неэффективно.

Ещё сложнее — имплицитные требования. JD требует «опыт управления командой», кандидат написал «руководил группой из 5 аналитиков» — semantic match сработает, но нечёткий порог по cosine similarity (< 0.72) срежет. Наш подход с cross-encoder преодолевает это ограничение.

Как работает многомерный scoring?

Не один скор, а вектор оценок по ключевым измерениям:

  • Hard skills match — семантическое совпадение технических навыков. Используем bi-encoder для первичного отбора (FAISS, топ-100), затем cross-encoder для точного скоринга (ms-marco-MiniLM-L-12-v2 или fine-tuned на HR-данных <cite>MS MARCO</cite>).
  • Experience level — извлекаем из резюме количество лет релевантного опыта через NER + regex. Сопоставляем с требованием из JD.
  • Career trajectory — анализируем прогрессию: рост ответственности, релевантность предыдущих позиций. LLM-вызов с structured output.
  • Education & certifications — rule-based извлечение + нормализация названий вузов и сертификатов.

Финальный ранг — взвешенная сумма с весами под конкретную роль. Для junior-разработчика education весит больше, для senior — experience trajectory.

Fine-tuning моделей на исторических данных

Если есть исторические данные по найму (кто был нанят, кто прошёл интервью, кто провалился) — это gold для обучения. Строим ranking model: на входе (вакансия, резюме), на выходе — вероятность успешного найма. LambdaRank или ListNet поверх embedding-признаков.

Осторожно с bias: если исторические данные содержат предвзятость (например, 90% нанятых — мужчины на технических позициях), модель её воспроизведёт. Обязательный шаг — fairness audit до деплоя. Мы проводим fairness audit с использованием библиотеки AIF360.

Объяснимый AI для HR

Скор без объяснения — чёрный ящик, который HR игнорирует. Для каждого кандидата генерируем:

  • Топ-3 совпадения с требованиями вакансии (с цитатой из резюме)
  • Топ-2 расхождения (что требуется, чего нет)
  • Одну рекомендацию по дополнительной проверке на интервью

Это делает ранжирование инструментом, а не заменой суждения. Объяснимый AI — ключевое преимущество нашей системы.

Практический кейс: как мы сократили время отбора в 3 раза

Наш клиент — аутсорсинговая IT-компания, 200+ открытых позиций одновременно. Существующий процесс: ручной просмотр в ATS (Huntflow). Время обработки воронки: 8–12 дней до первого звонка.

Построили систему: парсинг резюме (PDF/DOCX → структурированный JSON через LLM extraction + regex) → bi-encoder индексация в Qdrant → cross-encoder реранкинг топ-50 per vacancy → LLM-генерация объяснений → интеграция через Huntflow API, скоры отображаются прямо в карточке кандидата.

Результат после 3 месяцев: среднее время до первого звонка сократилось с 9.4 до 3.1 дня (в 3 раза быстрее по сравнению с ручным отбором). HR-менеджеры стали просматривать в среднем топ-15 вместо топ-30 (меньше нерелевантных). Оффер-рейт по нанятым через систему: +22% по сравнению с историческим baseline. Средняя экономия для клиента составила $38k–55k в год на каждые 100 вакансий. Свяжитесь с нами, чтобы обсудить похожий проект.

Технический стек

Компонент Инструменты
Парсинг резюме LlamaParse, Docling, кастомный LLM extraction
Embedding text-embedding-3-large, E5-mistral-7b, jina-embeddings-v3
Vector store Qdrant, pgvector
Reranker cross-encoder ms-marco, Cohere Rerank
Ranking model LightGBM, LambdaRank (если есть исторические данные)
Объяснения GPT-4o-mini, Claude Haiku (structured output)

Сравнение методов ранжирования (precision@10 на наших данных):

Метод Precision@10 Время обработки 100 резюме Объяснимость
Ключевые слова 45% 2 сек Низкая
Embedding similarity 62% 5 сек Средняя
Наша система 83% 12 сек Высокая

Наш подход на 34% точнее embedding similarity и даёт полную объяснимость. Это решение для HR Tech и ML для HR.

Что входит в работу

  • Аудит текущего процесса рекрутинга и качества данных
  • Разработка прототипа за 2 недели: bi-encoder + скалярное ранжирование
  • Калибровка весов совместно с HR-отделом
  • Fairness audit и деблаинг модели
  • Интеграция с ATS (Huntflow, Lever, Greenhouse, Workday)
  • Документация и обучение команды
  • Поддержка 3 месяца после запуска

Этапы работы

  1. Аудит данных — качество резюме в базе, наличие исторических данных найма, структура JD. Это определяет подход.
  2. Прототип за 2 недели — bi-encoder + простое скалярное ранжирование, демо на 50 вакансиях.
  3. Итерации с HR — калибровка весов, валидация на кейсах «хорошо известных» кандидатов. Без участия рекрутеров качество не настроить.
  4. Fairness audit — обязательно перед деплоем, особенно если используются исторические данные.
  5. Интеграция в ATS — через API Huntflow, Lever, Greenhouse или Workday. Либо standalone интерфейс.

Сроки: MVP за 4–6 недель, полноценная система с fine-tuning и ATS-интеграцией — 3–4 месяца.

Технические детали по fine-tuning Для fine-tuning мы используем LambdaRank с loss-функцией NDCG. Обучаем на парах (вакансия, резюме) с меткой успешного найма. Применяем early stopping и dropout для предотвращения переобучения.

Получить консультацию по внедрению AI-ранжирования можно, связавшись с нашей командой. Мы имеем 5+ лет опыта в AI и более 50 успешных проектов в области NLP и рекрутинга. Закажите демо, чтобы увидеть систему в действии.