Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
AI Recruiting CLI

Консольный Python-инструмент для рекрутингового агентства. Автоматизирует весь цикл обработки вакансий: от сырого текстового файла работодателя — до строки в Google Sheets.

Проблема

Агентство ежедневно получает от работодателей файлы с вакансиями в произвольных форматах — TXT, CSV, DOCX. У каждой компании свой макет, язык (украинский / польский / русский) и свой способ разделять вакансии внутри файла. Операторы вручную переносили данные в таблицу — медленно и с ошибками.

Решение

Пайплайн из 6 этапов с интерактивным подтверждением оператора на каждом ключевом шаге:

Входящий файл → Разбивка на блоки → Очистка текста → Gemini LLM → Excel → Google Sheets

Парсинг — распознаёт 6+ форматов разделения вакансий: пустые строки, tab-дайджест в первой строке. Убирает дубли на разных языках (компании присылают одну вакансию на 3–4 языках сразу).

Очистка — вырезает ссылки, телефоны, email и шаблонные токены перед отправкой в LLM, снижая стоимость запроса.

Structured Output — Gemini заполняет 13 полей через Pydantic-схему и response_schema. Маппинг ответа на объекты — по vacancy_id из XML-тега, а не по индексу (защита от потерь при частичном ответе батча). Три уровня парсинга: response.parsed → model_validate_json() → JSON fallback.

Дедупликация — SHA-256 для точных совпадений + MinHash (порог 0.85) для нечётких, с хранением в SQLite.

Excel — сохраняет результат в .xlsx с timestamp, оператор может отредактировать вручную перед загрузкой.

Google Sheets — дозапись через gspread (OAuth). Загрузка только после явного подтверждения оператора (y/n).

Технологии

LLM: google-genai — Gemini Flash
Structured Output: pydantic v2 + response_schema
Консоль/UI: rich
Google Sheets: gspread + google-auth (OAuth)
Excel: openpyxl
Дедупликация: datasketch MinHash + sqlite3
Конфиг: pyyaml
Ключи API: keyring (Windows Credential Manager)
Логи: loguru
Retry: tenacity

При первом запуске мастер-визард запрашивает API-ключ Gemini и сохраняет его в Windows Credential Manager через keyring — ключ не хранится в файлах проекта.

Интересные детали

thinking_budget=1024 — у Gemini включен режим размышлений для повышения точности структурированного вывода.
Батчинг — вакансии отправляются в LLM группами (XML-теги vacancy id="...") маппинг по id защищает от потери вакансии при неполном ответе.
Трекинг стоимости — считает токены и USD за сессию, предупреждает при превышении порога из конфига.
Portable — собирается в .exe через PyInstaller для передачи оператору без Python-окружения.

#python #automation #AI #LLM #Gemini #GoogleSheets #recruiting #CLI #pydantic #opensource
Детали работы
Бюджет 6652 UAH
Добавлена 4 июня
18 просмотров
Фрилансер
Anton P.
Украина Киев  6  0

Свободен для работы Свободен для работы
6 Сейфов завершены
На сервисе 3 года