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

Как я построил автоматизированный рекрутинг в 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-разработчик». Мы искали человека с опытом внешних интеграций — тот, кто подключал десятки МФО-вендоров к платформе. Не тот, кто пишет внутренние сервисы (бэкенд, CRM, админки), а тот, кто строил мосты между системами: парсил чужие 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.

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

Telegram — https://t.me/danielspe_chanel (канал «Гео в IT»)