Repository navigation
Getting Started
This gets JobRadar running on Linux, macOS or Windows (WSL) and filling Notion from your Telegram channels. Plan on 20–30 minutes, most of it creating the accounts and keys.
Docker files are in the repo, but the Docker setup hasn't been tested end to end yet. Use the
uvsteps below for now.
-
Python 3.11+, git, and uv (
curl -LsSf https://astral.sh/uv/install.sh | sh) - A Telegram account that has joined the job channels you want to watch
- A Notion account
- A Gemini API key (free at aistudio.google.com), optional but needed for job details
git clone https://github.com/ThePlator/JobRadar.git
cd JobRadar
uv sync
cp .env.example .env
.env variable |
Where to get it |
|---|---|
TG_API_ID, TG_API_HASH
|
my.telegram.org → API development tools → create an app (Platform: Desktop). See below |
NOTION_TOKEN |
notion.so/profile/integrations → New integration → Internal → copy the secret. See Notion Setup |
NOTION_DATABASE_ID |
The 32 characters before ?v= in your Jobs database link. See Notion Setup
|
GEMINI_API_KEY |
aistudio.google.com → Get API key |
Rules for .env: one KEY=value per line, no spaces around =, no quotes, and save the file.
Telegram app form (my.telegram.org): App title JobRadar, short name jobradar (letters/numbers only), URL your fork or the repo, platform Desktop. If the page shows a bare "ERROR", turn off VPN or ad-blockers and try another short name.
uv run jobradar initThis creates config/config.yaml and config/profile.yaml from the examples. It then logs in to Telegram: enter your phone number and the code Telegram sends to your Telegram app, plus your 2-step password if you use one. Finally it checks that the Notion database matches the template.
Your login is saved in data/tg.session with owner-only permissions. Treat it like a password; it gives full access to your Telegram account.
uv run jobradar chatsCopy the ids of the job channels (numbers like -1001234567890) into config/config.yaml:
sources:
telegram:
chats: [-1001234567890, -1009876543210]uv run jobradar runOn first start JobRadar reads the last 3 days of each channel, then listens live. Rows appear in Notion within seconds, and the details fill in shortly after. Press Ctrl+C to stop. Next time it catches up from where it stopped.
To keep it running after you close the terminal:
tmux new -s jobradar 'uv run jobradar run 2>&1 | tee -a data/run.log'Detach with Ctrl+B then D; come back with tmux attach -t jobradar.
uv run jobradar stats --days 3You should see posts per channel, jobs created, reposts merged, hidden ads, and Queue: 0 waiting, 0 failed.
Jobs that were already in Notion before you added a Gemini key can be read afterwards with:
uv run jobradar extract --missingSomething wrong? See Troubleshooting.
JobRadar is MIT-licensed and self-hosted. You submit every application yourself. · Report a security issue privately
JobRadar
Repository