Telegram Job Radar is a local-first job discovery and triage automation tool designed to turn noisy Telegram job groups into a structured, personalized job inbox. Instead of manually reading every message posted in a placement or opportunities group, the application continuously ingests Telegram messages, identifies individual job opportunities, filters them based on a user's eligibility, optionally evaluates them using an LLM, and presents the relevant opportunities in a simple web dashboard where they can be reviewed, approved, rejected, and exported.
Job and internship opportunities are frequently shared through Telegram groups, especially in student and placement communities. The problem is that these groups can generate a large number of messages, often with several jobs bundled into a single post, inconsistent formatting, eligibility conditions, deadlines, and links buried inside long messages. Keeping up with them manually means repeatedly opening Telegram, reading every alert, checking whether the graduation batch is eligible, separating relevant roles from irrelevant ones, and then maintaining a separate spreadsheet of opportunities worth applying to. Telegram Job Radar automates this repetitive workflow by converting unstructured Telegram messages into structured job records and filtering them before they reach the user's attention.
The application connects directly to a configured Telegram group or channel using Telethon and can process both new messages and historical posts through a backfill mechanism. A single Telegram message containing several openings can be separated into multiple job entries. The pipeline then applies eligibility checks such as graduation-batch filtering and can use an LLM to assign relevance scores to opportunities. The resulting jobs appear inside a master-detail web inbox where users can browse opportunities, inspect their details, approve useful jobs, reject irrelevant ones, and maintain a separate list of approved opportunities. Approved jobs can then be exported to Google Sheets, with CSV available as a fallback. The system also includes reprocessing utilities, configurable settings, historical-message ingestion, tests for parsing job posts, and local persistence so that the workflow remains under the user's control.
Backend and Web Application: Python 3.11+ with FastAPI and Uvicorn.
Frontend: Server-rendered HTML using Jinja2 and HTMX, keeping the interface lightweight without requiring a separate JavaScript SPA.
Telegram Integration: Telethon is used to authenticate with Telegram, read groups/channels, listen for incoming messages, and backfill historical messages.
Database: SQLite provides local persistent storage for jobs and processing state.
AI Integration: The scoring layer supports OpenAI-compatible LLM providers such as OpenAI, OpenRouter, or Groq through configurable API endpoints and models.
Google Integration: Google Sheets API and OAuth are used to export approved opportunities, with CSV export available when Sheets is not configured.
Supporting technologies include Pydantic for configuration/data validation, HTTPX for HTTP communication, Pytest for testing, and an in-process queue for coordinating ingestion with the processing pipeline.
The project intentionally uses a compact local-first architecture rather than distributing the workflow across several services. A Telethon listener receives Telegram messages and sends them into an in-process queue. A pipeline worker processes those messages, parses and filters the job opportunities, performs optional AI scoring, and persists the resulting records in SQLite. FastAPI and HTMX then expose the processed data through the browser-based inbox.
Conceptually, the flow is: Telegram → Telethon Listener → In-Process Queue → Parsing / Filtering / AI Scoring Pipeline → SQLite → FastAPI + HTMX Dashboard → Google Sheets or CSV export.
This keeps deployment and operation simple while still separating ingestion, processing, persistence, and presentation responsibilities within the application.
The project is motivated by a very practical problem: useful job opportunities often arrive faster than they can reasonably be reviewed manually. Telegram placement and job groups may contain dozens of posts, many of which are irrelevant because of graduation year, role requirements, location, or other eligibility constraints. Manually reading every message and then copying promising opportunities into a spreadsheet creates unnecessary repetitive work.
Telegram Job Radar was built to automate that personal workflow — let software continuously watch the job feed, reduce the noise, and leave the human decision only for the opportunities that are actually worth considering. Unlike a generic job-board scraper, the tool focuses specifically on an existing Telegram community or private group that the user already relies on for opportunities.