Skip to content

tsapuanq/hh-tg-vacancy-bot-csv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

172 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HH Scraper & Publisher

Автоматизированный конвейер для сбора, очистки, фильтрации и публикации вакансий с HeadHunter в Telegram: сохранение истории, LLM‑фильтрация и генерация кратких сводок.

🔗 Быстрая ссылка на канал

👉 Перейти в Telegram-канал с вакансиями

🎯 Что делает?

  1. Scrape — находит вакансии по ключевым словам (Data Science, Machine Learning, AI, Data Analytics, BI и смежные).
  2. Clean — нормализует данные: зарплаты, даты, навыки, убирает дубликаты и вакансии без описания.
  3. Filter — использует LLM (Gemini) для отбора только профильных вакансий.
  4. Summarize — формирует компактный JSON‑блок (О компании, Обязанности, Требования).
  5. Publish — отправляет вакансии в Telegram-канал с управляемыми задержками и не дублирует уже отправленные.
  6. History — хранит список опубликованных ссылок (sent_links.txt) и результаты обработки (data/raw, data/processed).

📂 Структура проекта

├── .github/workflows/publish.yml   # CI: расписание скрап + публикация
├── Dockerfile                      # Образ для локального и прод-режима
├── run_all.py                      # Запускает scraper → cleaning → publisher
├── requirements.txt                # Зависимости Python
├── src/
│   ├── config.py                   # Переменные окружения, пути, ключевые слова
│   ├── parser.py                   # Поиск URL вакансий
│   ├── scraper.py                  # Сбор деталей страницы через Playwright
│   ├── cleaning.py                 # Очистка и нормализация DataFrame
│   ├── llm_summary.py              # LLM‑фильтрация и summary (Gemini API)
│   └── publisher.py                # Публикация в Telegram + история ссылок
└── data/
    ├── raw/                        # Сырье: CSV по датам
    ├── processed/                  # Очищенные CSV по датам
    └── sent_links.txt              # Список уже отправленных ссылок

🚀 Как это работает в GitHub Actions

  • Расписание: два запуска в сутки (обед и вечер по Asia/Almaty) или ручной старт.
  • Кэширование: сохраняет папку data/ между запусками, чтобы история ссылок и CSV сохранялась.
  • Установка Playwright: скачиваются browser‑зависимости для headless‑режима.
  • Коммит: автоматически фиксирует новые файлы из data/ обратно в репозиторий.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors