Resume Analysis System - Автоматизация HR скрининга
.jpeg)
Описание процесса
Данная автоматизация представляет собой полноценную HR-систему для автоматического анализа резюме кандидатов. Система принимает резюме через Gmail, обрабатывает различные форматы файлов (Word, PDF, TXT), проводит детальный AI анализ соответствия вакансии, извлекает контактную информацию и автоматически ведет базу кандидатов в Google Sheets со структурированной оценкой каждого соискателя.
API ключи и сервисы:
- Gmail OAuth2 - для получения резюме из почты
- Google Drive OAuth2 - для работы с файлами
- Google Sheets OAuth2 - для ведения базы кандидатов
- OpenAI API Key - для o4-mini и gpt-4o-mini моделей
Архитектура системы по блокам
РАЗДЕЛ 1: ПОЛУЧЕНИЕ РЕЗЮМЕ

1.1 Gmail Trigger - Получение резюме
Назначение: Автоматически получает резюме, отправленные на корпоративную почту
Настройки Gmail Trigger:
- Poll Times: Every Hour (проверка каждый час)
- Simple: false (расширенные настройки)
- Options:
- downloadAttachments: true (скачивание вложений)
- Credentials: Gmail account 2
Что получаем:
{
"subject": "Резюме на позицию разработчика",
"from": "candidate@email.com",
"attachment_0": {
"filename": "resume.pdf",
"mimeType": "application/pdf",
"data": "[binary_data]"
}
}
1.2 Upload to Drive
Назначение: Сохраняет полученное резюме в Google Drive для дальнейшей обработки
Google Drive настройки:
- Input Data Field Name: attachment_0
- Name: {{ $json.subject }} Resume (имя файла = тема письма + "Resume")
- Drive ID: My Drive
- Folder ID: Root folder
Результат: Файл сохраняется в Google Drive и возвращается его ID для дальнейшей работы.
РАЗДЕЛ 2: ОБРАБОТКА ФАЙЛА В РАЗНЫХ ФОРМАТАХ

2.1 Switch - Тип файла
Назначение: Определяет формат загруженного файла и направляет в соответствующий поток обработки
Условия Switch:
- Word Doc (Output 0):
- mimeType equals "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
- Направляет Word документы на конвертацию
- PDF (Output 1):
- mimeType equals "application/pdf"
- Направляет PDF файлы на прямое извлечение
- Text (Output 2):
- mimeType equals "text/plain"
- Направляет текстовые файлы на извлечение текста
2.2 Поток обработки Word документов
Конвертация Word в Docs: Назначение: Конвертирует Word документы в Google Docs формат
HTTP Request настройки:
- Method: POST
- URL: https://www.googleapis.com/drive/v2/files/{{ $json.id }}/copy?convert=true&supportsAllDrives=true
- Authentication: Google Drive OAuth2

Get Doc: Назначение: Скачивает конвертированный Google Doc как PDF
Настройки:
- Operation: Download
- File ID: {{ $json.id }}
- Google File Conversion: Docs to PDF format
Extract from File: Назначение: Извлекает текст из PDF версии документа
Настройки:
- Operation: PDF
- Destination Key: text
2.3 Поток обработки PDF файлов
Get PDF: Назначение: Скачивает PDF файл из Google Drive
Extract from File2: Назначение: Извлекает текст из PDF файла
Настройки:
- Operation: PDF
- Результат: Текст резюме в формате string
2.4 Поток обработки текстовых файлов
Get TXT: Назначение: Скачивает текстовый файл из Google Drive
Extract from File3: Назначение: Извлекает текст из файла
Настройки:
- Operation: Text
- Destination Key: text
РАЗДЕЛ 3: СОБИРАЕМ ВСЕ ДАННЫЕ

3.1 Подготовка
Назначение: Объединяет результаты всех потоков обработки в единую структуру
Set настройки:
{
"assignments": [
{
"name": "resume",
"value": "{{ $json.text }}",
"type": "string"
}
]
}
Что происходит:
- Получает текст резюме от любого из трех потоков (Word/PDF/TXT)
- Создает унифицированную структуру данных
- Подготавливает данные для AI анализа
3.2 Описание работы
Назначение: Получает описание вакансии для сравнения с резюме
Google Drive настройки:
- Operation: Download
- File ID: 1Kqu3gc37e5xR5z4BRfN57F9UsHaQenn7v6MN2wVLnVs (фиксированный ID документа)
- Google File Conversion: Docs to PDF
Extract from File1: Назначение: Извлекает текст описания вакансии
Результат: Текст с требованиями к кандидату, обязанностями и критериями оценки.
РАЗДЕЛ 4: АНАЛИЗ ПОЛУЧЕННОЙ ИНФОРМАЦИИ

4.1 AI Agent - Основной анализ
Назначение: Проводит детальный анализ соответствия резюме описанию вакансии
Подключенные компоненты:
- o4-mini (OpenAI o4-mini model) - самая продвинутая модель для анализа
- Structured Output Parser - структурированный вывод результатов
Входные данные:
Резюме: {{ $('Описание работы').item.json.resume }}
Системный промпт:
# Обзор
Вы являетесь экспертом в области технического рекрутинга, специализирующимся на работе с искусственным интеллектом, автоматизацией и программным обеспечением. Вам предоставили описание вакансии и резюме кандидата. Ваша задача - проанализировать резюме на предмет соответствия описанию вакансии и предоставить подробный отчет о проверке на русском языке.
Сосредоточьтесь на том, насколько кандидат соответствует основным требованиям и идеальному профилю, указанным в описании вакансии. Оценивайте как соответствие техническим навыкам, так и понимание бизнес-контекста. Используйте аргументы, основанные на фактическом содержании резюме и вакансии, - избегайте предположений.
## Выходные данные
Ваши выходные данные должны иметь именно такой формат:
Сильные стороны кандидата:
Перечислите основные сильные стороны кандидата или его квалификацию. Будьте конкретны.
Слабые стороны кандидата:
Перечислите области, в которых кандидат испытывает недостаток или не соответствует описанию вакансии.
Фактор риска:
- Присвойте балл риска (низкий / средний / высокий) - объясните наихудший сценарий, если этот кандидат будет принят на работу.
Фактор вознаграждения:
- Оцените вознаграждение (низкое / среднее / высокое) - опишите наилучший сценарий - какую ценность может открыть этот кандидат?
Подходит ли кандидат на краткосрочную или долгосрочную перспективу?
Общая оценка соответствия (0-10):
Присвойте число от 0 (ужасное соответствие) до 10 (идеальное соответствие). Не указывайте десятичные числа.
Обоснование оценки:
Четко объясните, почему данный кандидат получил именно такую оценку. Укажите конкретное содержание резюме и его соответствие или несоответствие описанию вакансии.
## Описание вакансии {{ $json.text }}
4.2 Structured Output Parser
Назначение: Преобразует ответ AI в структурированный JSON формат
Structured Output Parser Schema:
{
"name": "resume_screening_evaluation",
"description": "Парсит структурированный анализ резюме в формате, который выдает AI агент",
"type": "object",
"properties": {
"candidate_strengths": {
"type": "string",
"description": "Текстовое описание сильных сторон кандидата со всеми перечислениями и деталями"
},
"candidate_weaknesses": {
"type": "string",
"description": "Текстовое описание слабых сторон и областей несоответствия"
},
"risk_factor": {
"type": "object",
"description": "Оценка фактора риска",
"properties": {
"risk_level": {
"type": "string",
"description": "Уровень риска: низкий, средний или высокий"
},
"risk_explanation": {
"type": "string",
"description": "Объяснение наихудшего сценария при найме кандидата"
}
},
"required": ["risk_level", "risk_explanation"]
},
"reward_factor": {
"type": "object",
"description": "Оценка фактора вознаграждения",
"properties": {
"reward_level": {
"type": "string",
"description": "Уровень вознаграждения: низкое, среднее или высокое"
},
"reward_explanation": {
"type": "string",
"description": "Описание наилучшего сценария и ценности кандидата"
}
},
"required": ["reward_level", "reward_explanation"]
},
"career_perspective": {
"type": "string",
"description": "Подходит ли кандидат на краткосрочную или долгосрочную перспективу с обоснованием"
},
"overall_fit_rating": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "Общая оценка соответствия от 0 до 10 (целое число)"
},
"rating_justification": {
"type": "string",
"description": "Подробное обоснование присвоенной оценки с указанием конкретного содержания резюме"
}
},
"required": [
"candidate_strengths",
"candidate_weaknesses",
"risk_factor",
"reward_factor",
"career_perspective",
"overall_fit_rating",
"rating_justification"
]
}
ЧТО ТАКОЕ Structured Output Parser Schema: Это схема, которая заставляет AI возвращать анализ резюме в строго определенном JSON формате вместо свободного текста.
ЗАЧЕМ ЭТО НУЖНО ЗДЕСЬ:
- Структурированная оценка - все критерии анализа в отдельных полях
- Автоматическая обработка - данные можно сразу сохранить в Google Sheets
- Единообразие - каждое резюме анализируется по одним критериям
- Интеграция - результаты легко передаются в другие системы
КАК ЭТО РАБОТАЕТ:
- AI получает схему как обязательный формат ответа
- Модель заполняет каждое поле согласно анализу резюме
- n8n автоматически парсит JSON и делает поля доступными как $json.output.candidate_strengths
4.3 Information Extractor - Извлечение контактов
Назначение: Извлекает личную информацию кандидата из резюме
Подключенные компоненты:
- OpenAI Chat Model (gpt-4o-mini)
Text Input:
{{ $('Подготовка').item.json.resume }}
Attributes (требуемые поля):
{
"attributes": [
{
"name": "Имя",
"description": "Имя кандидата",
"required": true
},
{
"name": "Фамилия",
"description": "Фамилия кандидата",
"required": true
},
{
"name": "Почта",
"description": "Електронная почта кандидата",
"required": true
}
]
}
Результат:
{
"output": {
"Имя": "Иван",
"Фамилия": "Петров",
"Почта": "ivan.petrov@email.com"
}
}
4.4 Google Sheets - Сохранение результатов
Назначение: Автоматически ведет базу проанализированных кандидатов
Google Sheets настройки:
- Operation: Append or Update
- Document ID: 1RoQkdLnX2inM15C_xJS77X3XAZXMUc16d-8x9-63Mgc
- Sheet Name: Лист1
- Matching Columns: Имя (обновляет существующую запись или создает новую)
Columns Mapping:
{
"Имя": "{{ $json.output['Имя'] }}",
"Фамилия": "{{ $json.output['Фамилия'] }}",
"Почта": "{{ $json.output['Почта'] }}",
"Сильные стороны": "{{ $('AI Agent').item.json.output.candidate_strengths }}",
"Слабые стороны": "{{ $('AI Agent').item.json.output.candidate_weaknesses }}",
"Фактор риска": "{{ $('AI Agent').item.json.output.risk_factor }}",
"Фактор вознагрождения": "{{ $('AI Agent').item.json.output.reward_factor }}",
"Карьерная перспектива": "{{ $('AI Agent').item.json.output.career_perspective }}",
"Общая оценка": "{{ $('AI Agent').item.json.output.overall_fit_rating }}",
"Обоснование присвоенной оценки": "{{ $('AI Agent').item.json.output.rating_justification }}"
}
Структура итоговой таблицы:

Схема подключений нод
Основной поток:
- Получение резюме → Upload to Drive
- Upload to Drive → Тип файла
Обработка форматов:
Word поток: 3. Тип файла (Output 0) → Конвертация Word в Docs 4. Конвертация Word в Docs → Get Doc 5. Get Doc → Extract from File
PDF поток: 3. Тип файла (Output 1) → Get PDF 4. Get PDF → Extract from File2
Text поток: 3. Тип файла (Output 2) → Get TXT 4. Get TXT → Extract from File3
Объединение и анализ:
- Extract from File/File2/File3 → Подготовка
- Подготовка → Описание работы
- Описание работы → Extract from File1
- Extract from File1 → AI Agent
- AI Agent → Information Extractor
- Information Extractor → Google Sheets
AI Подключения:
- o4-mini → AI Agent (основная модель анализа)
- Structured Output Parser → AI Agent (структурированный вывод)
- OpenAI Chat Model → Information Extractor (извлечение контактов)
Необходимые сервисы и их настройки
Настройка Gmail:
- Создайте отдельную почту для приема резюме
- Настройте OAuth2 доступ для Gmail API
- Убедитесь в включении опции downloadAttachments в самой первой ноде
Настройка Google Drive:
- Создайте папку для хранения резюме
- Подготовьте документ с описанием вакансии
- Получите ID документа с описанием вакансии
Настройка Google Sheets:
- Создайте таблицу "Таблица кандидатов"
- Добавьте заголовки всех колонок согласно mapping
- Получите ID таблицы для настройки
Возможности системы
Поддерживаемые форматы:
- Microsoft Word (.docx) - через конвертацию в Google Docs
- PDF (.pdf) - прямое извлечение текста
- Текстовые файлы (.txt) - прямое чтение
Критерии анализа:
- Сильные стороны - соответствие требованиям
- Слабые стороны - области несоответствия
- Фактор риска - потенциальные проблемы при найме
- Фактор вознаграждения - возможная ценность кандидата
- Карьерные перспективы - краткосрочная/долгосрочная пригодность
- Общая оценка - числовая оценка от 0 до 10
- Обоснование - детальное объяснение оценки
Автоматизированные процессы:
- Прием резюме - автоматическая проверка почты каждый час
- Обработка форматов - универсальная поддержка разных типов файлов
- AI анализ - глубокая оценка соответствия
- Извлечение контактов - автоматическое определение имени и email
- Ведение базы - структурированное хранение всех кандидатов
Применение системы
Для HR отделов:
- Массовый скрининг - обработка сотен резюме автоматически
- Объективная оценка - AI исключает человеческие предрассудки
- Экономия времени - первичный отбор происходит без участия HR
- Структурированная база - все кандидаты в удобной таблице
Для рекрутинговых агентств:
- Масштабирование - обработка большого объема кандидатов
- Стандартизация - единые критерии оценки для всех
- Отчетность - готовые данные для клиентов
- Competitive advantage - современные AI технологии
Для стартапов:
- Автоматизация HR - нет нужды в большом отделе кадров
- Качественный отбор - профессиональная экспертиза от AI
- Гибкость - легко адаптировать под разные позиции
- Интеграция - совместимость с существующими процессами
Результат работы системы
Что получается:
- Автоматизированный HR процесс работающий 24/7
- Структурированная база кандидатов с детальной оценкой
- Объективный анализ на основе AI экспертизы
- Экономия времени HR специалистов до 80%
- Стандартизированная оценка всех кандидатов
Метрики эффективности:
- Скорость обработки - анализ резюме за 2-3 минуты
- Точность извлечения - 95%+ корректность контактных данных
- Объективность оценки - исключение человеческих предрассудков
- Масштабируемость - обработка неограниченного количества резюме
Преимущества перед ручным процессом:
- Консистентность - одинаковые критерии для всех
- Скорость - мгновенная обработка вместо дней ожидания
- Детальность - углубленный анализ каждого аспекта
- Документирование - полная история всех оценок
Эта система превращает трудозатратный процесс ручного скрининга резюме в автоматизированный конвейер с AI экспертизой!