Skip to content

EgorBodnar/job-scanner-tg-notification

Repository files navigation

Job scanner with alert telegram notification

Table of Contents

📜 Description:

The scanner has a MongoDB based storage for previously viewed job posts to prevent duplicate notifications. It will only send notifications for new job postings.

Technologies and Libraries Used

Telegram integration Viewed job posts storage Bot HTTP client Parsing HTML Browser with user context, in case of anti-bot system Control the browser and parse, in case of anti-bot system Containerization & Orchestration
telegraf mongodb axios cheerio fakebrowser puppeteer docker-compose

🧰 Required settings and dependencies:

No additional installations or configurations are required on your computer.

This means it operates independently of your technology stack and doesn't add any unnecessary bloat to your system.

⚙️ Job scanner configuration:

  • Define the list of required keywords to match when parsing the job title in JOB_KEYWORDS config/default.json
  • Set Telegram bot token. TELEGRAM.TOKEN config/default.json| How to generate the TOKEN
  • Set id of the Telegram chat to send job alerts to. TELEGRAM.CHAT_ID config/default.json| Don't forget to add the bot to this chat.
  • Extend the Job Sites list by the required ones in config/jobSites.json. Note: jobTitleSelector - css selector of the job post title. If there is some anti bot system except captcha, enable flag antiBotCheck and the Job Scanner will parse it anyway by FakeBrowser.
  • It scans sites each 30 minutes. The interval parameter could be configured in SCAN_INTERVAL_MINUTES config/default.json.

▶️ How to start the scanner:

  • run docker compose up
  • If you have changed some data, but the scanner is already running. Then stop it and restart it by rebuilding docker-compose up --build --force-recreate

🎥 Demo how it works

 Scanner in work