Как сделать ИИ-агента для анализа и скоринга резюме
Найм — очень долгий процесс. Иногда нужно отсмотреть сотни резюме, отклонить 90% из них и работать с оставшимися 10 процентами. При этом первичный отсев занимает очень много времени. Но работу можно ускорить — создать ИИ-агента, который будет сравнивать резюме кандидата с открытой вакансией и выдавать заключение: стоит ли приглашать человека на собеседование или лучше ему отказать.
В гайде рассказываем, как создать подобного ИИ-агента в сервисе n8n.
Научитесь создавать умных помощников в n8n, которые будут автоматически выполнять ваши задачи — отвечать на сообщения, обрабатывать данные и принимать решения без вашего участия.
- Миникурс
- n8n
А если не хотите читать гайд — смотрите короткий видеообзор, где мы разбираемся со структурой агента и показываем, как он работает.
Шаг 1. Подключаем нужные сервисы
Для работы понадобятся:
- OpenRouter (сервис с разными нейросетями под капотом). Либо другая нейросеть на ваш выбор: ChatGPT, Gemini, Claude и т. д;
- OpenAI для интеграции текста в базу данных;
- Google Drive;
- Google документы;
- Supabase (для базы данных);
- Postgres (для обращения к базе данных);
- Telegram.
Если ранее не подключали к n8n Google-сервисы, сначала изучите наш другой гайд:
Шаг 2. Импортируем код агента
Для импорта агента скачайте файлы с готовой структурой бота из этой папки и импортируйте их в редактор.
Если ранее этого не делали — вот урок из мини-курса по n8n.
Сначала нужно импортировать файл с именем ai resume checker.json и активировать в нем все нужные узлы: Telegram, OpenAI, Supabase, Google Drive, Postgres, OpenRouter.

Один из самых важных узлов агента — RAG AI Agent. Это — главный агент, мозг всей операции. Он работает в роли HR-аналитика: получает резюме, а затем активирует агентов поменьше, которые специализируются на одной конкретной задаче:
- агент для анализа требований вакансии (tool_Vacancy_Requirements_Check);
- инструмент для поиска по базе знаний (documents);
- агент для анализа структуры, навыков и опыта (tool_Resume_Structure_Check);
- финальный сборщик для составления отчета и скоринга (tool_Final_Score_Report).
Главный агент работает на системном промпте, который определяет всю логику его действий. Промпт написан на английском, потому что так нейросеть лучше справляется с анализом. А еще так расходуется меньше токенов и содержание агента обходится дешевле. При желании вы можете изменить промпт на любой свой.
Настраиваем базу знаний
Теперь настроим Google Drive, чтобы агент мог использовать ваши внутренние документы. Я, например, загрузил в базу примеры резюме успешных кандидатов и описания двух вакансий.
Для настройки перейдите в Google Drive (в тот аккаунт, который вы привязали к n8n) и создайте там папку, в которую будете помещать файлы для базы знаний.
Затем вернитесь в n8n, откройте узел File Created и выберите там созданную в Google Drive папку. Эту же папку нужно выбрать для узла File Updated.

После этого можно загружать файлы на Google Drive. Агент их проанализирует, добавит в векторную базу данных и будет к ним обращаться при генерации ответов.
Подключаем мини-агентов
Далее необходимо настроить три вспомогательных агента: для анализа вакансии, для анализа структуры резюме, для финального отчета.
Подключаем агента для анализа вакансии
Дважды кликните на узел tool_Vacancy_Requirements_Check, в разделе Workflow откройте раскрывающийся список и выберите Create a Sub-Workflow in ‘Personal’.
Откроется окно с новым workflow, куда нужно импортировать json-файл этого мини-агента. В открывшейся схеме вам нужно присоединить блок агента к When Executed…

В самом агенте нужно заменить раздел Credential to connect with для OpenRouter. Здесь же вы найдете другой системный промпт, на основе которого нейросеть анализирует вакансию. Промпт также написан на английском. При желании вы можете заменить его на свой.
Подключаем агента для анализа структуры резюме
Повторите те же действия для узла tool_Resume_Structure_Check. Импортируйте соответствующий json-файл, соедините узлы и настройте модели. Здесь используется свой системный промпт, который вы можете заменить на свой.
Подключаем агента для финального отчета
Сделайте то же самое для узла tool_Final_Score_Report. Импортируйте его схему, соедините узлы и, при желании, отредактируйте системный промпт.
Чтобы агент заработал, нажмите кнопку Save и переведите переключатель в левом верхнем углу в активное положение.
Как работать с агентом
Откройте бота в телеграм и отправьте ему резюме в формате PDF. Агент получит файл, проведет полный анализ и пришлет в ответ структурированный отчет.

Чтобы лучше понять, как работать с агентом и как он устроен, смотрите короткое видео в начале статьи.
Спасибо! Очень интересно.
Хочу запустить и попробовать на нас.
Вопросы такие:
Здравствуйте!
1. Если бы вакансий не было, я бы сделал просто несколько разных workflow под разную вакансию и работал бы так, потому что так будет проще мониторить вообще весь процесс.
2. Да, лучше отдавать все в PDF, и лучше хорошо сгенерировать портрет идеального соискателя. Опишите: какие задачи человек будет решать, какие навыки критичны, какой опыт важен, какие soft skills нужны
Описание типичных ошибок кандидатов, которых вы не взяли (без имён, просто паттерны: «часто приходят люди с опытом только в SMM, но без понимания воронок» и т.п.)
Внутренние критерии оценки, если они у вас есть
3. Да, можно создать распаковщика, но это не настолько необходимо. Можно просто причёсывать вакансию перед тем, как загружать её в агента:
Какие 3-5 задач человек будет решать каждый день?
Без каких навыков он физически не сможет работать?
Какой минимальный опыт реально нужен (не «от 3 лет», а что именно человек должен был делать)?
Какие результаты мы ждём через 3 месяца?
Какая реальная вилка зарплаты и за что готовы платить больше?
В общем, нужно просто подготовить информацию, и проще это сделать руками или через какую-то нейронку, чем разрабатывать под это отдельного агента.
4. Как с этим работать:
Не используйте агента как финальный фильтр. Он хорош для отсева явно неподходящих кандидатов (оценка 1-3 из 10). Но кандидатов с оценкой 4-6 лучше просматривать вручную.
Если вы знаете, что в вашей нише сильные специалисты часто пишут слабые резюме — понизьте порог отсева. Пусть агент отсеивает только совсем нерелевантных.
Добавьте в промпт инструкцию не снижать оценку за «скромную» подачу, если навыки и опыт соответствуют. Можно дописать в системный промпт: «Оценивай содержание, а не качество самопрезентации. Лаконичное резюме с релевантным опытом лучше красивого резюме без нужных навыков».
Примеры резюме в базе знаний — загружайте реальные резюме тех, кого взяли, даже если они не идеальные.
5. Да, нужно грузить по одному. Так сейчас настроен агент, и это еще ограничение самого Telegram. Экспорт в таблицу можно настроить, просто конкретно в этом workflow этого нет, но это все можно доработать.
С тем же кодом просто загрузить ему JSON этого агента нашего и сказать, мол, пожалуйста, доработай так, чтобы импорт шел в таблицу. Буквально одна нода, и он все доработает.
Просто изначально нельзя сделать настолько универсального агента, чтобы он подошел всем резидентам нейроцеха. Поэтому я его представил в таком виде, а дальше его уже можно модернизировать.
Михаил, спасибо большое за такой развернутый ответ!
Я понимаю, что это по большей части пример. Но так как слабо понимаю подкапотную часть, приходится уточнять.
Маленькое уточнение по п.1
То есть, сейчас рекомендация такая: отдельная вакансия — отдельный агент и отдельный чат для нее, верно?
С каждой новой вакансией тогда HR будут дергать меня, чтобы создал им еще один ТГ чат и агента или как-то можно это решить, чтобы они могли сами попросить в ТГ боте создать новую вакансию и агент это понял и все сделал?
Такое сделать можно, но лучше без n8n
Я считаю n8n отличным сервисом для создания mvp и простых решенний. Где нод немного и задания всегда примерно одни и те же. Но когда агент должен решать много сложных задач, учитывать много факторов, переключаться между разными процессами — такое лучше кодить с нуля, потому что в будущем управлять этим будет проще