HackerRank выложил AI-агента для честной оценки резюме

Команда HackerRank (организация interviewstreet на GitHub) опубликовала open-source проект Hiring Agent — pipeline (конвейер обработки данных), который превращает PDF-резюме в структурированную объективную оценку кандидата. Агент парсит резюме в формат Markdown, извлекает данные по секциям через локальную или облачную LLM, обогащает результат сигналами из GitHub-профиля и репозиториев, а затем выдаёт оценку с категорийными баллами, доказательствами, бонусами и штрафами. Запустить его можно полностью локально через Ollama или подключить Google Gemini.


Как устроен пайплайн

Hiring Agent — это резюме-в-оценку pipeline, который проходит три стадии: автоматическое извлечение данных, обогащение и оценка. Система выдаёт структурированные, честные и объяснимые оценки кандидатов с разбивкой по категориям, поддерживая как локальное исполнение через Ollama, так и облачное через Google Gemini.


graph TD
    A[PDF резюме] --> B[pymupdf_rag.py\nКонвертация в Markdown]
    B --> C[pdf.py\nИзвлечение секций через LLM]
    C --> D[github.py\nОбогащение данными GitHub]
    D --> E[evaluator.py\nСтрогая оценка с fairness-ограничениями]
    E --> F[score.py\nВывод отчёта + CSV]

Ключевые этапы

1. Извлечение из PDF. PyMuPDF читает страницы и преобразует их в Markdown-подобный текст с заголовками, ссылками и таблицами.

2. Парсинг по секциям. Jinja-шаблоны задают строгие инструкции для каждого раздела: Basics, Work, Education, Skills, Projects, Awards. LLM обрабатывает каждый раздел отдельно и собирает объект JSONResume.

3. GitHub-обогащение. Модуль github.py извлекает имя пользователя из профилей в резюме, получает профиль и репозитории, классифицирует каждый проект. Затем LLM выбирает ровно 7 уникальных проектов с минимальным порогом коммитов от автора, отдавая предпочтение значимым вкладам.

4. Оценка. Оценки включают категории open_source, self_projects, production и technical_skills, а также бонусы, штрафы и пояснения с доказательствами.

5. Вывод результатов. При включённом DEVELOPMENT_MODE=True система создаёт или дополняет файл resume_evaluations.csv с ключевыми полями и кэширует промежуточный JSON в директорию cache/.


Поддерживаемые LLM-провайдеры

ПараметрOllama (локально)Google Gemini (облако)
LLM_PROVIDERollamagemini
Пример моделиgemma3:4bgemini-2.5-pro
API-ключне нуженGEMINI_API_KEY
Приватность данныхполная (offline)зависит от политики Google
Требования к железуот 4 ГБ ОЗУлюбое устройство
💡 Выбор модели Ollama
Для слабых машин подойдёт gemma3:1b, для стандартных конфигураций — gemma3:4b, а для мощных серверов — gemma3:12b. Качество оценки заметно растёт с увеличением модели.

Быстрый старт

Установка занимает несколько минут:

git clone https://github.com/interviewstreet/hiring-agent
cd hiring-agent
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
pip install -r requirements.txt

# Подтянуть модель (для Ollama)
ollama pull gemma3:4b

# Настроить переменные окружения
cp .env.example .env

# Запустить оценку
python score.py /path/to/resume.pdf

Если включён режим разработки, результат извлечения из PDF кэшируется в cache/resumecache_<basename>.json. При наличии GitHub-профиля в резюме репозитории загружаются и кэшируются в cache/githubcache_<basename>.json. Оценщик выводит отчёт и в режиме разработки добавляет строку CSV в файл resume_evaluations.csv.

ℹ Python 3.11
Репозиторий явно фиксирует версию Python 3.11.13 в файле .python-version — убедитесь, что у вас установлена именно эта версия, чтобы избежать конфликтов зависимостей.

Сообщество уже расширяет инструмент

Проект активно развивается силами community. Среди открытых pull request’ов — добавление LeetCode-обогащения и LLM-оценки задач, улучшенные критерии open-source scoring, поддержка анализа вакансий (JD-augmented scoring) и пакетная обработка нескольких кандидатов.

Логика оценки из interviewstreet/hiring-agent уже используется в сторонних форках: один из них добавляет веб-интерфейс поверх пайплайна и расширяет поддержку провайдеров до Claude и OpenAI.

«Честная, объяснимая оценка» — именно это позиционирование отличает Hiring Agent от закрытых ATS-систем, которые принимают решения по резюме без какой-либо прозрачности.


Почему это важно для отрасли

В 2026 году AI-ассистированный найм перестал быть нишевым экспериментом: инженерные команды от стартапов Series A до компаний Fortune 500 используют AI на каждом этапе технического рекрутинга, сокращая time-to-hire на 30–50%.

Hiring Agent предлагает принципиально иной подход: не чёрный ящик корпоративного ATS (Applicant Tracking System — система отслеживания кандидатов), а открытый, аудируемый инструмент. Рекрутер или разработчик может изменить Jinja-шаблоны, подстроить критерии под конкретную роль и проверить, почему кандидат получил те или иные баллы.

⚠ Важно об этике
Автоматическая оценка резюме — мощный, но рискованный инструмент. Используйте Hiring Agent как первый фильтр и инструмент аудита, а не как единственного арбитра при найме. Финальное решение должно оставаться за человеком.

Исходный код распространяется под лицензией MIT и доступен на GitHub.