Как я построил автоматизированный рекрутинг в Claude Code на базе Playwright и субагентов

от автора

Claude Code — это CLI, в которой AI-агент запускает команды, пишет код и управляет браузером. Я использовал его для задачи, которую не закроет ни один рекрутер с рынка: найти .NET-разработчика, который уже делал интеграции с конкретными МФО-вендорами, нужными нашей платформе. Не «senior .NET с опытом в финтехе», а человек, который подключал именно тех партнёров, которых нам предстоит подключить.

За 10 раундов Playwright-агент прочесал 150+ поисковых запросов на hh.ru, просмотрел 1000+ резюме и выдал шорт-лист из 50 кандидатов, разбитых по тирам. Одного из них мы захантили.


Архитектура: Claude Code + Playwright + субагенты

Система работает так: я описываю критерии поиска в промпте, Claude Code запускает Playwright-субагент, который заходит на hh.ru, заполняет поисковые формы, листает результаты, открывает каждое резюме, читает полный текст и возвращает оценку.

Почему не API hh.ru? Оно платное и требует верификации юрлица. Playwright работает от лица обычного пользователя: вбил запрос, получил результаты. Бесплатно.

Субагенты — ключевой элемент. Каждый раунд поиска — отдельный субагент со своим контекстом. Основной агент формулирует задание на раунд, запускает субагент, получает результаты, анализирует и формулирует задание на следующий раунд. Это позволяет не терять контекст и наращивать понимание рынка от раунда к раунду.

Техническая находка: URL-поиск на hh.ru не работает. Если передать параметры через URL с фильтрами (experience=between3And6), hh.ru возвращает кэшированные рекомендации вместо реальных результатов. Решение — навигация на /search/resume, заполнение поля ввода через Playwright и Enter. Только так hh.ru обрабатывает запрос честно.


Задача: найти не должность, а конкретный опыт

Я PO в B2B-платформе на стыке страхования и финансов. Мы агрегируем финансовые продукты для 200+ партнёров — банков, МФО, маркетплейсов. Платформа на .NET, и каждый новый партнёр — это интеграция: API-подключение, маппинг данных, обработка коллбэков, сверки.

Нам нужен был не просто «.NET-разработчик». Мы искали человека с опытом внешних интеграций — того, кто подключал десятки МФО-вендоров к платформе. Не того, кто пишет внутренние сервисы, а того, кто строил мосты между системами: парсил чужие API, обрабатывал вебхуки, бился с документацией партнёров и доводил интеграции до прода.

Разница критическая. 60% .NET-разработчиков на hh.ru — «внутренние»: enterprise, ERP, внутренние системы. По тексту резюме это неочевидно — все пишут «разработка REST API» и «микросервисная архитектура». Но одно дело писать API для своего фронтенда, другое — подключить 30 разных МФО с 30 разными форматами данных.

Рекрутер с рынка эту разницу не увидит. Значит, нужен AI-агент с моими критериями.

Раундовая методология: 10 раундов за 3 дня

Ключевое решение — не искать идеального кандидата за один проход. Вместо этого: серия раундов, каждый уже предыдущего.

Раунды 1-2: широкий поиск. Запросы общего плана: «.NET разработчик финтех» и «C# интеграции МФО». Цель — понять ландшафт: какие компании занимаются интеграциями в финансовом секторе, какие роли бывают, как люди описывают этот опыт в резюме. Результат: карта рынка и первые кандидаты. Главное открытие — hh.ru кэширует результаты по URL, поэтому для надёжности нужен только form-based search через Playwright.

Раунды 3-4: поиск по компаниям. Запросы с названиями конкретных компаний из нашей вертикали: агрегаторы финансовых продуктов, платёжные системы, кредитные брокеры. Логика: если человек работал в компании, которая подключает МФО, — он делал те же интеграции, что нужны нам. Золотая находка раунда 3: блок «Похожие резюме» внизу каждого профиля на hh.ru. ML-рекомендации оказались золотой жилой — там всплывали кандидаты, которых текстовый поиск не находил. Находка раунда 4: длинные запросы из 5+ слов на hh.ru бесполезны. hh.ru токенизирует каждое слово отдельно и выдаёт миллионы нерелевантных результатов. Оптимум — 2-3 слова.

Раунды 5-7: целевой хантинг. Запросы вида «компания + роль». Параллельно — поиск через WebSearch: LinkedIn, профильные конференции, статьи на vc.ru и Хабре. Открытие: небольшие финтех-компании на 15-20 человек не публикуют резюме на hh.ru. Их разработчики находятся только через косвенные источники: конференции, публикации, GitHub.

Раунды 8-10: снайперский поиск. К этому моменту я знал конкретные имена и компании. Раунды стали точечными. Diminishing returns — в основном дубликаты, но каждый раунд приносил 1-2 точных попадания.


Отчёт: 50 кандидатов в тирах

Финальный шаг — я попросил Claude Code сгенерировать наглядный HTML-отчёт. Агент использовал встроенный скилл для публикации HTML на GitHub Pages с паролем: собрал интерактивную страницу с таблицей сравнения кандидатов, карточками профилей, тир-разбивкой и фильтрами. Зашифровал AES-256-GCM, запушил в репозиторий — на выходе ссылка, которую я открыл как эталонный шорт-лист и передал нашему HR.

Это не CSV и не Google Sheet. Полноценный дашборд: клик на кандидата — раскрывается карьерный путь, стек, анализ. Сортировка по тирам, фильтр по статусу. HR получил готовый инструмент для работы, а не сырые данные.

Система оценки:

  • Бриллиант (10/10) — внешние интеграции с МФО-вендорами, 10+ подключений, готов к переходу

  • Суперзолото (9/10) — опыт интеграций в финтехе, 5+ лет на .NET

  • Серебро+ (8/10) — .NET + финтех + работа с внешними API

  • Серебро (7/10) — хороший .NET-бэкграунд, но внутренняя разработка

  • Бронза (5-6/10) — релевантный стек, но нет опыта интеграций

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

Этот анализ — то, что не сделает рекрутер без понимания разницы между «написал API» и «подключил 30 вендоров с разными форматами». Claude Code делал его, потому что я задал критерии в промпте.


Результат: нашли разработчика с нужными интеграциями

Из шорт-листа я отобрал Tier S — 6 человек для звонков:

  • 2 отказа: доволен текущей позицией

  • 1 ограниченный интерес: хочет руководящую роль

  • 1 нет контакта

  • 2 встречи назначены

Главная находка — разработчик из компании-конкурента, который уже подключал именно тех МФО-вендоров, которые стояли в нашем бэклоге. Не абстрактный «опыт интеграций в финтехе», а конкретный человек, который уже прошёл путь, который нам предстоял: те же API, те же форматы данных, те же подводные камни. Мы его захантили.

Что работает и что нет

Работает:

  • короткие запросы из 2-3 слов — точные результаты

  • поиск по названиям компаний — находит людей из нужной ниши

  • ML-блок «Похожие резюме» — расширяет выборку за пределы текстового поиска

  • раундовая методология — каждый раунд уточняет критерии на основе предыдущего

  • субагенты — изоляция контекста каждого раунда, основной агент не теряет нить

Не работает:

  • длинные запросы из 5+ слов — hh.ru разбивает на токены и выдаёт мусор

  • URL-фильтры — кэширование ломает результаты

  • кавычки и OR-операторы — hh.ru их игнорирует

  • поиск сотрудников мелких компаний — их нет на hh.ru

Грабли Playwright:

  • anti-bot: задержки 2-3 секунды между действиями, не более 5 резюме подряд без паузы

  • /tmp переполняется при длительных сессиях, 18 ГБ файл однажды уронил браузер

  • вёрстка hh.ru нестабильна, поэтому лучше использовать data-qa-атрибуты вместо CSS-классов


Цифры

  • Раундов поиска: 10

  • Поисковых запросов: 150+

  • Просмотрено резюме: 1000+

  • Кандидатов в шорт-листе: 50

  • Tier S (финалисты): 6

  • Назначено встреч: 2

  • Время: 3 дня по ~2 часа, всего около 6 часов

  • Без AI это заняло бы: 40-60 часов


Вывод

AI-агент не заменяет рекрутера. Он заменяет месяц ручного скроллинга. 150 запросов, 1000+ резюме, анализ каждого на «внешние интеграции vs внутренняя разработка» — ни один человек не сделает это за 6 часов.

Главное — правильно задать критерии. Claude Code не угадывает, кто вам нужен. Он методично прочёсывает весь рынок по параметрам, которые вы описали. Ваша экспертиза в нише + скорость AI-обработки = результат, который ни рекрутер, ни вы в одиночку не получите.

Мы нашли не просто senior .NET-разработчика. Мы нашли человека, который уже подключил тех вендоров, которых нам предстояло подключить. Это не про замену людей — это про то, что AI делает невозможный объём поиска возможным.


Об авторе: Георгий Мотренко — PO / Head of Product Growth в B2B InsurTech/FinTech-платформе. Строит AI-автоматизацию продуктовых процессов с помощью Claude Code.

Подписывайтесь:

ссылка на оригинал статьи https://habr.com/ru/articles/1023648/