Automated Telegram bot to scrape and publish job offers across different categories with separated scraping/sending architecture.
Use Jobspy <3
# Initialize database tables (safe, preserves existing data)
make db-init
# Migrate existing JSON data (if any)
make db-migrate
# Create backup before changes
make db-backupTELEGRAM_BOT_TOKEN=your_token_from_botfather
TELEGRAM_GROUP_ID=your_group_id
DATABASE_URL=your_database_url
SKIP_INIT_JOB=1 # Skip initial job setup (set to 0 to run init job)
DOCKER_ENV=true # true if running in Docker
FORCE_DOCKER_MODE=0
RESULTS_WANTED=10 # Number of job offers to scrape per category
SCRAPE_DELAY_MIN=2.0 # Minimum delay between scrapes (in seconds)
SCRAPE_DELAY_MAX=5.0 # Maximum delay between scrapes (in seconds)Note: All categories with their topic IDs and schedules are managed through categories.yml file.
The bot uses a separated architecture with independent scraping and sending operations:
- Scraping: Distributed across 24 hours (max 3 categories per hour)
- Sending: Runs 1 hour after scraping for each category
- Even distribution: No clustering, optimal resource usage
- Independent operations: Scraping failures don't block sending
00:00 - Scrape: aeronautique, immobilier, vente
01:00 - Send: aeronautique, immobilier, vente | Scrape: agent_assurance, industrie
02:00 - Send: agent_assurance, industrie | Scrape: agriculture, ingénieur_electronique
...
View complete schedule: python -m france_chomage utils info
See: categories.yml
- Complete Documentation - All guides and references
- Development Guide - Setup for developers
- Database Setup - Database configuration
- Safe Deployment Guide - How to add new job categories safely
For development instructions and adding new job categories, see Development Guide.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.