Агент поиска работы
Mahashwetha/Job-search-email-system-claudeСквозной пайплайн поиска работы: ежедневные HTML-дайджесты вакансий, сканирование удалённых API, адаптация резюме через Gemini AI, рассылка HR-аутрич и черновики LinkedIn-сообщений. Управляется 9 голосовыми командами Claude Code Skills.
Установка
pip install openpyxl requests beautifulsoup4 python-docxREADME
Claude Job Search Agent 🎯
Сквозной автоматизированный пайплайн поиска работы, который берёт на себя всё — от поиска вакансий до подготовки заявок. Отправляет ежедневные стилизованные HTML-дайджесты из вашего Excel-трекера, сканирует удалённые job API на EMEA-совместимые роли, адаптирует резюме под каждую компанию с помощью Gemini AI, отправляет аутрич-письма HR с вложениями и составляет шаблоны сообщений для LinkedIn — всё на автопилоте через Windows Task Scheduler.
Полностью управляется Claude Code Skills — 9 голосовых команд на обычном языке покрывают весь рабочий процесс: добавление вакансий, отклонение, открытие горячих вакансий, письма HR, адаптация резюме и многое другое. Никаких скриптов для запоминания, никаких флагов.
Возможности
- Ежедневные email-отчёты — стилизованные HTML-письма в 11:00 CET с компаниями, сгруппированными по роли и статусу
- Раздел горячих вакансий — закреплённые листинги с LinkedIn + Welcome to the Jungle + BuiltIn (настраиваемые категории ролей, 5–8 слотов на категорию), которые сохраняются до добавления компании в трекер, затем заполняют только освободившийся слот — 1 слот в каждой категории всегда зарезервирован за BuiltIn, с автоматическим фолбэком на WTTJ/LinkedIn при отсутствии результатов — каждая вакансия отображает цветной бейдж источника (🔵 LI / 🟢 WTTJ / 🟠 BuiltIn) — WTTJ имеет приоритет внутри каждого уровня локации (hitsPerPage 30, сортировка по приоритету источника)
- Сканер удалённых вакансий — получает данные из API RemoteOK, Remotive и Arbeitnow каждые 2 дня, фильтрует EMEA-совместимые роли
- Адаптация резюме — персонализированные резюме под каждую компанию с помощью Gemini 2.5 Flash (бесплатный тариф) — никаких выдумок, только перестановка и выделение существующих навыков
- Генератор аутрич-сообщений — автоматически создаёт короткие/средние/длинные шаблоны LinkedIn-сообщений для каждой компании, куда вы подали заявку
- HR-аутрич письма — CLI-скрипт для отправки персонализированных холодных писем HR-контактам с прикреплёнными резюме и портфолио — автоматически определяет роль из трекера, всегда показывает превью перед отправкой
- Интеграция с Excel — ежедневно читает трекер заявок для получения статусов, ссылок на роли и HR-контактов
- Управление HR-контактами — ведёт базу рекрутеров с кликабельными ссылками на LinkedIn
- Агрегаторы платформ — подобранные поисковые ссылки (Glassdoor, LinkedIn, WelcomeToTheJungle и др.)
- Автоматизация Windows — работает на автопилоте через Task Scheduler
- Claude Code Skills (9) — команды на обычном языке для каждого шага: добавить вакансии, отклонить, открыть горячие вакансии, написать HR, адаптировать резюме, запустить поиск — никаких флагов, никаких скриптов, просто скажите что нужно
Превью писем
Все данные ниже являются вымышленными.
Ежедневный отчёт о вакансиях (11:00)

Компании сгруппированы по статусу с кликабельными ссылками на роли, HR-контактами (фиолетовый) и быстрыми поисковыми ссылками. Ссылки агрегаторов платформ отображаются под каждой категорией ролей.
Сканер удалённых вакансий (каждые 2 дня, 12:00)

EMEA-совместимые удалённые роли из API RemoteOK, Remotive и Arbeitnow, отфильтрованные по настроенным ключевым словам ролей и предпочтениям по локации.
Что входит в поставку
Отслеживаемые роли
Роли определяются в daily_job_search.py — отредактируйте их под свой поиск работы. Стандартная конфигурация включает роли Java-бэкенда и продуктового менеджмента, но подойдёт любой стек или функция. Каждая роль связана с набором поисковых ссылок на job-бордах и запросами горячих вакансий.
Отслеживание статусов
- ⬜ Не связывались
- 🕐 На рассмотрении / В процессе
- ✅ Подано
- ⏸️ Нет доступных вакансий
- ❌ Отказ
🌍 Важно: настройте под свою локацию
Инструмент поставляется с примерами поисковых ссылок. Перед использованием:
- Откройте
daily_job_search.py - Обновите переменные локации в начале файла (строки 15–16):
py
LOCATION_CITY = "YourCity" # Замените "Paris" LOCATION_COUNTRY = "YourCountry" # Замените "France" - При необходимости обновите URL job-бордов под вашу локацию (см. раздел Настройка URL ниже)
Требования
- Python 3.7+
- Аккаунт Gmail с включённым паролем приложения
- Excel-трекер (опционально, но рекомендуется)
- Windows OS (для автоматизации через Task Scheduler)
Быстрый старт
1. Установите зависимости Python
pip install openpyxl requests beautifulsoup4 python-docx
2. Настройте конфигурацию
ВАЖНО: Создайте файл конфигурации:
- Скопируйте
config.template.pyвconfig.py - Отредактируйте
config.py, указав свои данные:
EMAIL_CONFIG = {
'smtp_server': 'smtp.gmail.com',
'smtp_port': 587,
'sender_email': 'YOUR_EMAIL@gmail.com', # ← Ваш Gmail
'sender_password': 'YOUR_APP_PASSWORD', # ← Пароль приложения Gmail (16 символов)
'recipient_email': 'YOUR_EMAIL@gmail.com', # ← Email получателя
}
TRACKER_FILE = r'C:\Path\To\Your\Tracker.xlsx' # ← Путь к вашему Excel-трекеру3. Получите пароль приложения Gmail
- Перейдите в Безопасность аккаунта Google
- Включите двухэтапную верификацию (если ещё не включена)
- Перейдите в Пароли приложений (внизу страницы)
- Выберите «Почта» и ваше устройство
- Скопируйте 16-символьный пароль (без пробелов)
- Вставьте его в
config.pyкак значениеsender_password
4. Тестовый запуск
python daily_job_search.py
Проверьте почту — вы должны получить отчёт о поиске работы!
5. Настройте ежедневную отправку (11:00)
Простая настройка (рекомендуется):
- Нажмите правой кнопкой на
setup_task_admin.bat - Выберите «Запуск от имени администратора»
- Нажмите «Да» при появлении запроса
- Вы должны увидеть «SUCCESS! Scheduled task created»
Альтернативные способы:
- Запустите
setup_scheduled_task.ps1(версия для PowerShell) - Ручная настройка через GUI Task Scheduler (см.
SETUP_INSTRUCTIONS.txt)
Настройка Excel-трекера
Вариант 1: Использовать шаблон (рекомендуется)
-
Скопируйте шаблон:
bash# Репозиторий включает tracker_template.xlsx # Скопируйте его и заполните своими компаниями -
Обновите путь к трекеру в
config.py:TRACKER_FILE = r'C:\Path\To\Your\tracker.xlsx'
Вариант 2: Использовать существующий трекер
Отформатируйте Excel-файл следующим образом:
| Company | Role | Role link | status of applic