Skip to content

TexosDev/hr-bot

Repository files navigation

🤖 HR Bot - Telegram бот для подбора вакансий

Telegram бот с персонализированными уведомлениями о вакансиях на основе предпочтений пользователя.


🚀 Быстрый старт

# 1. Установите зависимости
npm install

# 2. Настройте .env файл
cp env.template .env
# Заполните все переменные

# 3. Создайте таблицы в Supabase
# Выполните database/simple-new-tables.sql

# 4. Запустите бота
npm run dev-full

📋 Команды бота

  • /start - Главное меню
  • /vacancies - Список вакансий
  • /my_subscriptions - Просмотр подписки
  • /webapp - Открыть форму подписки
  • /help - Справка
  • /sync - Синхронизация (админ)

🎯 Основные функции

1. Просмотр вакансий

Пользователи могут просматривать актуальные вакансии по категориям и откликаться прямо в боте.

2. Подписка на уведомления

Через WebApp форму пользователи заполняют свои предпочтения (направления, технологии, опыт, формат работы).

3. Персонализированные уведомления

Каждые 2 часа бот автоматически находит подходящие вакансии для каждого пользователя на основе совпадения тегов и отправляет уведомления.


🔄 Автоматические процессы

  • Каждые 30 минут - синхронизация вакансий из Google Sheets
  • Каждый час - синхронизация вопросов для WebApp
  • Каждые 2 часа - рассылка персонализированных уведомлений
  • Ежедневно в 9:00 и 18:00 - полная синхронизация

🗂️ Структура проекта

kate_bot/
├── src/
│   ├── commands/          # Команды бота
│   ├── actions/           # Callback действия
│   ├── services/          # Бизнес-логика
│   │   ├── supabase/     # Работа с БД
│   │   └── notification/ # Рассылка уведомлений
│   ├── api/              # API endpoints для WebApp
│   └── handlers/         # Обработчики сообщений
├── webapp/               # WebApp форма подписки
├── database/             # SQL схемы
└── scripts/              # Утилиты

⚙️ Настройка

.env файл

# Telegram
BOT_TOKEN=your_bot_token
ADMIN_ID=your_telegram_id

# Supabase
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_key

# Google Sheets
GOOGLE_SHEETS_ID=your_sheets_id
GOOGLE_QUESTIONS_SHEET_ID=your_questions_sheet_id

# WebApp
WEBAPP_URL=http://localhost:3001/webapp/index.html

# Webhook (optional)
ENABLE_WEBHOOK=true
WEBHOOK_PORT=3001

📊 База данных

Основные таблицы:

  • vacancies - Вакансии
  • responses - Отклики пользователей
  • user_preferences - Предпочтения пользователей
  • user_tags - Теги пользователей
  • vacancy_tags - Теги вакансий
  • notifications - История отправленных уведомлений
  • survey_categories - Категории вопросов
  • survey_fields - Поля вопросов

🔔 Алгоритм уведомлений

  1. Получить всех пользователей с активными подписками
  2. Для каждого пользователя найти его теги (user_tags)
  3. Найти вакансии с совпадающими тегами (vacancy_tags)
  4. Отфильтровать (минимум 2 совпадения, не отправленные ранее)
  5. Отправить топ-5 самых релевантных вакансий
  6. Записать факт отправки в notifications

📚 Документация

Полная документация: SYSTEM_FLOW.md


🛠️ Технологии

  • Node.js - Runtime
  • Telegraf - Telegram Bot Framework
  • Supabase - База данных
  • Express - WebApp API
  • Google Sheets API - Управление контентом
  • node-cron - Планировщик задач

📝 Лицензия

MIT


Версия: 3.2.0
Дата: 2025-10-01

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors