A Telegram job alert bot in 60 lines of Python
Learn how to build a Telegram job alert bot using Python in 60 lines, fetching live ATS data, salaries, and custom filters.

Stock photo for illustration only, not from the actual event
- Build a Telegram job alert bot using only 60 lines of Python
- Fetch live data from HiringIndex APIs published by applicant tracking systems
- Filter job postings and salary percentiles calculated from real data disclosures
Job boards go stale fast, as weekly digests usually reach you after interesting roles have been open for a month. Building a lightweight solution is the best fix. This Telegram bot wakes up, requests all job postings from the past seven days via an API, and delivers new listings straight to you.
We utilize HiringIndex, featuring job listings sourced directly from applicant tracking systems' catalogue APIs. This ensures every row carries the employer's direct application link rather than an aggregator's redirect. Two live slices measured between 2026-09-13 04:47–04:50 UTC demonstrate the data structure before writing any code.

Stock photo for illustration only, not from the actual event
The filter used by the bot is intentionally narrow to yield about nine postings per morning—a manageable read rather than a firehose. You can broaden the results simply by dropping the job_titles parameter.
Salaries do not come from search queries; instead, they are retrieved from /jobs/insights broken down by currency. Each percentile indicates how many disclosures it relies on. For instance, across the wide slice, 744 USD job postings yield a 25th percentile of 115,000–150,000 and a 50th percentile of 155,650–200,000. Percentiles appear only when at least 30 salary disclosures are available.
Leveraging real-time job data APIs via a custom Telegram bot offers a powerful workflow for developers seeking tech roles without browsing traditional aggregators daily. Combining Python with direct ATS feeds eliminates intermediaries and delivers accurate, timely listings.
The days_ago parameter filters by the employer's publication date rather than when the crawler indexed the row. That is why the median can be four days instead of four hours, as the filter focuses on the job itself rather than the crawler.
Errors are delivered as a single envelope, and you should branch on the error rather than the message text. Furthermore, the free tier provides 200 postings and 5 insights calls per month with no credit card required.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment