AI Job Automation

Система автоматизации поиска, AI-анализа и приоритизации вакансий с локальной LLM, CRM и email-дайджестом.

AI Job Automation

О проекте

AI Job Automation — self-hosted система для автоматизации поиска и первичного анализа вакансий. Проект построен как распределённая архитектура из n8n, отдельного Worker-сервиса и Orchestrator API. Worker отвечает за сбор вакансий, дедупликацию, обработку данных и AI-анализ с локальной моделью Qwen через Ollama. Orchestrator хранит историю вакансий и результатов анализа, а n8n управляет запуском pipeline, синхронизацией с Google Sheets CRM и отправкой email-дайджеста. В проекте используется гибридный подход: проверяемые признаки вакансии извлекаются и оцениваются Python-кодом, а локальная LLM применяется для семантического анализа задач и характера роли. Итоговый score и приоритет рассчитываются детерминированно, а не полностью делегируются AI.

Какую задачу решает

Сокращает объём ручной работы при поиске вакансий: вместо просмотра сотен предложений система автоматически собирает вакансии, удаляет дубли, выполняет первичную фильтрацию, загружает полные карточки перспективных позиций и ранжирует их по релевантности. Основная цель — не автоматизировать принятие решения за пользователя, а сократить шум и оставить для ручного просмотра уже отобранный shortlist с приоритетом, объяснением и рисками.

Что реализовано

- Сбор вакансий HH из авторизованных подборок по резюме и расширенного поиска. - Пагинация, нормализация и точная дедупликация вакансий. - Двухступенчатый анализ: preliminary-фильтрация по краткой карточке и полный анализ перспективных вакансий. - Локальный AI через Ollama и qwen3:4b-instruct. - Гибридная оценка: детерминированное извлечение признаков на Python + семантический анализ LLM. - Расчёт score и приоритета P1 / P2 / P3 / ALT. - Хранение вакансий, истории анализов, run history и processing events в Orchestrator DB. - n8n-оркестрация полного pipeline. - Preflight-проверки Orchestrator, Worker, Ollama и HH-сессии перед запуском. - Синхронизация релевантных вакансий с Google Sheets CRM без перезаписи ручных полей. - Идемпотентное обновление CRM по CRM Key и поддержка legacy-строк по HH URL. - Gmail-дайджест с результатами запуска, приоритетами, рисками и ссылками. - Обработка частичных ошибок: сбой отдельной вакансии не останавливает весь batch.

Результат

В результате получился рабочий self-hosted MVP, который заменяет значительную часть ручного просмотра вакансий полноценным автоматизированным pipeline. Система собирает сотни вакансий за один запуск, сокращает их до релевантного shortlist, сохраняет историю анализов и автоматически обновляет CRM. Пользователь получает уже приоритизированные позиции с score, объяснением AI-оценки и отмеченными рисками. В реальном production run система обрабатывала крупную выборку вакансий, сохраняла результаты в Orchestrator DB, синхронизировала P1/P2/ALT-позиции с Google Sheets и формировала итоговый email-дайджест. При этом финальное решение об отклике остаётся за пользователем — автоматизирован именно поиск и первичный анализ, а не ответственное действие от его имени.

Практическое применение

Архитектура проекта применима не только к вакансиям, но и к другим задачам, где нужно автоматически собирать большой поток однотипных данных, отсеивать шум, выполнять AI-анализ, ранжирование и передавать результат в рабочую систему. Такой подход можно использовать для обработки заявок, лидов, тендеров, обращений клиентов, документов, входящих запросов и других бизнес-процессов, где важно сочетать автоматизацию, детерминированные правила, AI-анализ и ручное принятие финального решения. Сам проект уже используется как рабочий инструмент для сокращения времени на поиск вакансий и формирования приоритетного списка позиций для ручного отклика.

Технологии

Python, FastAPI, n8n, Ollama, Qwen, Playwright, SQLAlchemy, SQLite, Docker, Google Sheets, Gmail API

Ссылки