Logo Lanfrica

OsamaMohammed3332/job-bot

Domain:

digital infrastructure

Record type:

software
Creator:
Osa
Host:
Telegram bot posting LinkedIn + remote jobs (Egypt & worldwide) # Telegram Job Bot Posts new LinkedIn jobs (Egypt + remote worldwide) to a Telegram channel, DMs you filtered alerts, and answers `/search` on demand. ~~~ Software Engineer ll - Flutter 🏒 talabat πŸ“ Dubai, Dubai, United Arab Emirates πŸ•’ 6 minutes ago πŸ“Œ via LinkedIn ➑️ Apply Here ~~~ ## Setup 1. **Create the bot** β€” message @BotFather, send `/newbot`, copy the token. 2. **Create a channel** β€” add your bot as an Administrator with **Post Messages**. Public channel ID is `@yourchannel`; for a private one, forward a message to @userinfobot to get the `-100...` id. 3. **Secrets** β€” Settings β†’ Secrets and variables β†’ Actions: - `BOT_TOKEN` β€” the BotFather token - `CHANNEL_ID` β€” `@yourchannel` or `-100...` (skip for DM-only) 4. **Permissions** β€” Settings β†’ Actions β†’ General β†’ Workflow permissions β†’ **Read and write**. Without this the bot cannot save `state.json` and will re-post the same jobs every run. 5. **Run it** β€” Actions β†’ Job Bot β†’ Run workflow. After that it runs itself every 10 minutes, around the clock. 6. **Subscribe** β€” message your bot `/start`. ## Commands | Command | What it does | |---|---| | `/start` | Subscribe to DM alerts | | `/stop` | Unsubscribe | | `/keywords python, flutter` | Only DM jobs matching these words | | `/keywords clear` | Remove the keyword filter | | `/locations egypt, remote` | Only DM jobs in these places | | `/status` | Show your current filters | | `/search flutter egypt` | Search right now | On GitHub Actions, commands are answered on the next cron run (up to ~10 min). In `serve` mode they are answered in about 3 seconds. ## Tuning Everything lives in **`config.yaml`**, which is commented throughout. - **Too few jobs?** Loosen or empty `filters.title_must_include`. - **Too much noise?** Add words to `title_must_not_include`. - **Different roles?** Edit the `searches` list. - **Junior only?** Add `exp: [1, 2, 3]` to a search entry. - **Rate-limited a lot?** You have too many searches. Cut the list to the 6-8 that matter. T …