Skip to content
Go back

I built a Telegram bot that tracks job market trends using Claude and n8n

I’ve been tracking the AI engineering job market for a few months now, manually. Copy a job description, paste it into a spreadsheet, fill in columns. Company, role, stack, salary. Repeat.

It’s exactly the kind of work you should never do manually.

So I automated it.

The problem

I’m already on LinkedIn regularly, mostly reading posts from people I follow. Job postings are right there too. But I didn’t want to spend time building and maintaining scrapers. More importantly, I don’t want everything, I want signal. I know which local companies I’d never work for. Pulling all of them in would just pollute the data. And I’m specifically interested in new companies appearing in the market, not the same usual names I’ve already filtered out mentally. A scraper doesn’t know any of that. I do.

So I didn’t want automation that pulls everything. I wanted a filter, my own judgment, built into the collection step. If I see a posting worth tracking, I track it. If not, I scroll past.

When you’re researching a job market, you’re trying to answer questions like:

A single job posting doesn’t tell you much. Twenty postings, properly structured, tell you everything.

The solution

A Telegram bot that does the extraction automatically.

When I find a job posting I want to track, I copy the full description and paste it into the Telegram chat. Claude extracts the structured data and logs it to Google Sheets. That’s it.

When I want a report, I send /report. Claude reads all logged postings and returns a pattern analysis directly in Telegram. After 20 postings, this is what came back:

📊 Job Market Report — 20 postings

🔧 Top Skills
• Python (19/20 roles)
• LLM/GenAI experience (18/20 roles)
• RAG systems (10/20 roles)
• Prompt engineering (10/20 roles)
• Docker & Kubernetes (8/20 roles)
• API development (8/20 roles)
• Cloud platforms AWS/Azure (8/20 roles)
• Vector databases (7/20 roles)
• Production deployment (12/20 roles)

💰 Salary Range
• Mid: €2,000–€6,600/month
• Senior: €5,500–€6,500/month
• Average Mid: ~€4,200
• Average Senior: ~€6,000

📈 Seniority
• Mid: 70% | Senior: 25% | Junior: 5%

🏭 Domains
• SaaS, Fintech, Healthcare, Other (construction/logistics/classifieds)

💡 Key Signal
Market demands production-ready AI engineers who ship working LLM
systems to real clients, not researchers or prototype builders.
Emphasis on end-to-end ownership, business impact, and moving fast
with modern AI stacks.

That’s the kind of signal that actually changes what you study next.

How it works

The workflow runs in n8n and has two paths:

n8n workflow screenshot Add screenshot of the n8n workflow here before publishing

Log a job:

  1. Telegram Trigger receives the message
  2. Auth check, only my user ID can trigger it
  3. Claude Haiku extracts structured fields from the raw text: company, role, seniority, tech stack, salary, location, domain, key signal
  4. Data gets appended to Google Sheets
  5. Telegram sends back a confirmation

Get a report:

  1. Send /report to the bot
  2. Workflow reads all rows from the sheet
  3. Claude analyzes patterns across all postings
  4. Report arrives in Telegram, formatted for mobile, no tables

The whole thing runs on n8n with a Telegram bot, Google Sheets (Service Account), and the Anthropic API. No servers, no dashboards. Just a Telegram chat and a spreadsheet.

What I actually learned

Claude Haiku is fast and cheap enough to run on every message. I was worried about cost, it’s negligible. A thousand job postings would cost less than a coffee.

The extraction prompt matters more than the model. Haiku works fine here because the task is structured and well-defined. Clear output schema, explicit instructions, no ambiguity. The model doesn’t need to think hard, it needs to be consistent.

Telegram is underrated as a personal automation interface. No frontend to build, no auth to manage. You already have the app on your phone. For personal tools that only need to work for you, it’s the fastest interface that exists.

Good workflow structure is documentation. When I submitted the template to the n8n Creator Library, it got rejected, not because the workflow was broken, but because the sticky notes didn’t meet their quality standards. The logic was sound; the communication wasn’t. Renaming nodes properly, grouping them with sticky notes, writing clear setup steps, this isn’t polish, it’s part of the work. A workflow that only you can understand is a half-finished tool.

The template

The workflow is available on the n8n Creator Library if you want to use or adapt it.

It takes about 10 minutes to set up: create a Telegram bot via @BotFather, connect Google Sheets with a Service Account, swap in your own user ID for the auth check, and activate.

The Google Sheet needs one row of headers (Date, Company, Role, Seniority, Hard Requirements, Tech Stack, Salary, Location, Domain, Key Signal) and then it runs itself.


Built with n8n, Claude Haiku, and Google Sheets. Template available on the n8n Creator Library.


Share this post on:

Previous Post
How to Teach Claude Code to Know Your Workflow
Next Post
Hello World: Welcome to Abek.io