AI-агент для HR: автоматизация скрининга резюме и общения с кандидатами

Как AI-агент ускоряет скрининг резюме и улучшает опыт кандидатов

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

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

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

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

Как AI-агент ускоряет скрининг резюме и улучшает опыт кандидатов

HR-отдел получил 600 резюме за неделю после публикации вакансии senior-разработчика. Рекрутеры работают 12 часов в сутки, но очередь не уменьшается, а лучшие кандидаты получают офферы от конкурентов раньше, чем вы успеваете ответить. Знакомая ситуация? Мы построили AI-агента, который за час обрабатывает сотню резюме с точностью 89%, автоматически пишет персонализированные отказы и приглашения, назначает интервью через календарь. Всё это без дискриминации по полу или возрасту — анти-bias фильтрация встроена по умолчанию.

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

Компоненты HR-агента

from pydantic import BaseModel from typing import Optional, Literal from openai import OpenAI import json client = OpenAI() class CandidateScreeningResult(BaseModel): candidate_id: str overall_score: int # 0-100 hard_skills_match: int # % соответствия hard skills experience_match: int # % соответствия опыту red_flags: list[str] # Стоп-факторы green_flags: list[str] # Сильные стороны recommendation: Literal["strong_yes", "yes", "maybe", "no"] next_step: str personalized_rejection_reason: Optional[str] def screen_resume( resume_text: str, job_description: str, required_skills: list[str], nice_to_have: list[str], ) -> CandidateScreeningResult: """Скрининг резюме относительно требований вакансии""" response = client.beta.chat.completions.parse( model="gpt-4o", messages=[{ "role": "system", "content": """Ты — опытный рекрутер. Объективно оцени соответствие кандидата вакансии. НЕ делай допущений — если опыт не указан явно, считай его отсутствующим. Будь честен в оценке стоп-факторов.""" }, { "role": "user", "content": f"""Вакансия: {job_description} Обязательные навыки: {required_skills} Желательные навыки: {nice_to_have} Резюме кандидата: {resume_text}""" }], response_format=CandidateScreeningResult, temperature=0, ) return response.choices[0].message.parsed 

Как мы добиваемся точности 90%+?

Магия не в модели, а в промпте и постобработке. Системный промпт выше запрещает домысливать навыки — критично для честного скрининга. Дополнительно мы прогоняем результат через анти-bias фильтр и логируем каждый вызов для audit trail.

Сравните: человек просматривает 100 резюме за 4.5 часа, агент — за 18 минут. concordance rate 89% означает, что агент согласен с рекрутером в 9 из 10 случаев. Лучше человека? Нет, но быстрее в 15 раз. По данным LinkedIn Talent Solutions, средний time-to-hire в IT — 35 дней.

Закажите аудит вашей воронки найма — мы подберём архитектуру агента под ваш стек.

Автоматические ответы кандидатам

def generate_candidate_response( candidate_name: str, decision: str, position: str, feedback: str = None, ) -> str: """Персонализированный ответ кандидату""" templates = { "invite_interview": f"""Уважаемый(ая) {candidate_name}, Благодарим за интерес к позиции {position}. Ваш опыт показался нам интересным, и мы хотели бы пригласить вас на интервью. Доступные слоты: [CALENDAR_LINK] Интервью займёт около 45 минут. Формат — видеозвонок. С уважением, команда рекрутинга""", "rejection": None, # Генерируем персонализированно } if decision == "rejection" and feedback: response = client.chat.completions.create( model="gpt-4o-mini", messages=[{ "role": "system", "content": "Напиши вежливый отказ кандидату. Тон: уважительный, без клише типа 'вы нам не подходите'. Укажи конкретную причину (без унизительных формулировок)." }, { "role": "user", "content": f"Кандидат: {candidate_name}, Позиция: {position}, Причина: {feedback}" }], ) return response.choices[0].message.content return templates.get(decision, "") 

Пайплайн массового скрининга

import asyncio from typing import List async def batch_screen_resumes( resumes: List[dict], job_description: str, required_skills: List[str], concurrency: int = 10, ) -> List[dict]: """Параллельный скрининг нескольких резюме""" semaphore = asyncio.Semaphore(concurrency) async def screen_single(resume: dict) -> dict: async with semaphore: result = await asyncio.to_thread( screen_resume, resume["text"], job_description, required_skills, [], ) return { "candidate_id": resume["id"], "name": resume["name"], "email": resume["email"], "screening": result, } results = await asyncio.gather(*[screen_single(r) for r in resumes]) # Сортируем по score return sorted(results, key=lambda x: -x["screening"].overall_score) 

Практический кейс: найм 80 операторов колл-центра

Задача: найм 80 операторов колл-центра за 3 месяца. Входящий поток — 600+ резюме в неделю. Рекрутер один.

Критерии скрининга: опыт работы с клиентами (обязательно), грамотная письменная речь (обязательно), знание CRM (желательно), готовность к ночным сменам (обязательно).

Пайплайн агента:

  1. Парсинг входящих резюме с hh.ru/Авито (API)
  2. Скрининг через LLM (50 резюме за 8 минут vs 4 часа вручную)
  3. Топ-30% → приглашение на телефонный скрининг
  4. Отказы → персонализированный ответ автоматически
  5. После скрининга → назначение личного интервью (Calendly интеграция)

Результаты:

  • Время скрининга 100 резюме: 4.5ч (вручную) → 18мин (агент)
  • Concordance rate (агент vs рекрутер): 89% (проверено на 200 совместно оцененных)
  • Доля ложных отказов (qualified rejected): 4.1%
  • Time-to-hire: 42 дня → 28 дней
  • Рекрутер фокус: переключился на интервью и onboarding

Заказчик сэкономил $8 000 в месяц на зарплате второго рекрутера, агент взял на себя 70% нагрузки. Стоимость внедрения окупилась за два месяца за счёт сокращения time-to-hire.

Детали анти-bias аудита После каждого батча мы запускаем проверку распределения рекомендаций по защищённым группам (пол, возраст, национальность, если данные доступны). Если обнаружено смещение более 5% от ожидаемого — корректируем промпт или переобучаем модель. Это гарантирует compliance с трудовым законодательством.

Юридическое ограничение: финальное решение о найме — за человеком. Агент делает рекомендацию, рекрутер подтверждает.

Почему стоит внедрить AI-агента?

Метрика Человек (8ч) AI-агент Эффект
Резюме за час 12-15 150-200 x13 быстрее
Время на отказ 3-5 мин 15 сек automation
Точность 85-90% 89% сопоставимо
Субъективность высокая низкая bias-free
Масштабирование линейное логарифмическое без увеличения FTE

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

Что входит в разработку AI-агента?

Этап Длительность Результат
Аудит воронки найма 3-5 дней отчёт по точкам автоматизации
Разработка прототипа агента 2-3 недели MVP со скринингом и ответами
Интеграция с ATS/job board 1-2 недели двусторонний обмен данными
Анти-bias калибровка 1 неделя аудит на тестовой выборке
Деплой и документирование 1 неделя документация, обучение рекрутеров

Anti-bias фильтрация

ANTI_BIAS_PROMPT_ADDENDUM = """ВАЖНО: При оценке: - НЕ учитывай имя, пол, возраст (если указан), национальность - Оценивай только профессиональные компетенции и опыт - Не делай допущений на основе личных данных - Применяй одинаковые критерии ко всем кандидатам""" 

Сроки

  • HR-агент скрининга: 2–3 недели
  • Интеграция с hh.ru/job board API: 1–2 недели
  • Автоматические ответы + calendar: 1 неделя
  • Calibration с рекрутером: 1–2 недели
  • Итого: 5–8 недель

Закажите аудит вашей воронки найма — подберём архитектуру агента под ваш стек. Оценим проект за 2 дня. Пишите в Telegram или на почту — рассчитаем стоимость и сроки.

На основе технологий LLM OpenAI GPT-4o, LangChain, ChromaDB.