Clearhire
Open-source-платформа, сделана с Claude Code · AI-найм с доказательствами
AI-платформа для найма: проверяет резюме по каждому требованию вакансии и показывает строку резюме за каждым выводом — слепой отбор, локальная LLM, обязанная ссылаться на источник, и журнал аудита, закреплённый в блокчейне.

Задача
Инструменты отбора ранжируют резюме по одному числу сходства, которое никто не может объяснить, на него влияют имя и возраст, и не остаётся записи, которую мог бы проверить кандидат или аудитор.
Решение
Проверка по каждому требованию с цитатой из резюме, слепой отбор до любой модели, LLM, которая может только объяснять со ссылками, и журнал аудита, защищённый от подмены и закреплённый в блокчейне.
Под капотом
nDCG@10 0,972 на 312 синтетических резюме (одни эмбеддинги — 0,603); одинаковые баллы во всех 486 слепых заменах; живое демо и CI для Python, трёх фронтендов, контракта и сквозного теста в Kubernetes.
Обзор
Clearhire — open-source-платформа для найма, которую я сделал с Claude Code, чтобы показать AI-продукт целиком, от разбора резюме до развёртывания. Кандидат может проверить резюме по вакансии до отклика и увидеть по каждому требованию, найдено ли оно и какая строка резюме это показывает; рекрутер видит то же самое, уже в рейтинге.
Бэкенд на Python: резюме в PDF, Word или сканах проходят через OCR Tesseract и превращаются в профиль с датированными должностями и доказательствами навыков, эмбеддинги в pgvector дают гибридный поиск, а навыки ищет матчер на C++ с запасной реализацией на Python. Рейтинг строится по требованиям, а не по одному числу сходства. Персональные данные заменяются до того, как текст прочитает модель эмбеддингов; локальная Qwen 3.5 9B пишет сводки, из которых удаляются предложения без ссылок; каждое решение попадает в журнал аудита со сцеплением SHA-256, а корни дерева Меркла раз в час закрепляются в смарт-контракте на Solidity.
Качество измерено на сгенерированном наборе из 312 резюме и 39 вакансий с известными ответами: nDCG@10 0,972 против 0,603 у одних эмбеддингов, навыки извлекаются с F1 0,997, а во всех 486 слепых заменах пола, происхождения и возраста баллы не меняются. Демо работает на GPU-сервере в Docker Compose, а Helm-чарт проверяется сквозным тестом на kind в GitHub Actions.
Что делает
- Читает резюме в PDF, Word, сканах и фото (OCR Tesseract) на русском и английском: навыки, должности с датами, языки и образование
- Ранжирует кандидатов сначала по невыполненным обязательным требованиям, затем по баллу и сходству, с цитатой за каждым выводом
- Слепой отбор до того, как модель видит текст; локальная LLM (Qwen 3.5 9B) пишет сводки и ответы, обязанные ссылаться на резюме
- Консоль на Angular, сайт вакансий на Next.js и Telegram-бот на NestJS поверх одного API на FastAPI; журнал аудита в смарт-контракте на Solidity; Helm-чарт проверяется на kind в CI
Что дальше
Ищете full-stack- или Python-разработчика — или нужно сделать что-то похожее? Давайте обсудим.
Открыт к предложениям: офис или гибрид в Москве, либо удалённо; полная занятость или контракт. Отвечаю в течение 48 часов, в Telegram — быстрее.