I Built an AI Agent That Texts Me on Telegram — And It Does My Job Search
How I connected an AI agent to Telegram, gave it access to my Dev.to, GitHub, and Notion — and set it loose on my career
The Problem
I'm a frontend engineer with 3+ years of experience, an MCA from IIT Patna. Strong developer, takes initiative, does self-driven work. But I was stuck on one thing: not getting enough interview calls.
I knew the gaps were somewhere — resume, LinkedIn visibility, application consistency — but I didn't have the bandwidth to fix everything at once while working full-time. I needed a system. Better yet, I needed someone (something?) to run that system for me.
So I built an AI agent. And I talk to it on Telegram.
What This Agent Does
This isn't a chatbot you open in a browser. It's always running on a Google Cloud VM. I text it on Telegram like I'd text a colleague:
me: any new react jobs?
agent: [scans 20+ job boards, returns matching listings with links]
It manages my job search pipeline automatically. It reads job postings, filters based on my criteria, keeps track of what's applied vs. pending. But that's not the interesting part.
The interesting part is what else I gave it access to.
The Integrations
Dev.to — Reading and Writing Articles
The agent can:
- Pull my Dev.to articles and render them on my portfolio automatically
- Write and publish new articles directly to my Dev.to account
- Fetch stats (reactions, read time, views)
// scripts/devto-fetch.js — fetch all articles
const response = await fetch(`https://dev.to/api/articles?username=maitrish&per_page=20`, {
headers: { "api-key": process.env.DEVTO_API_KEY }
});
const articles = await response.json();
// Publish a new article
const publish = await fetch('https://dev.to/api/articles', {
method: 'POST',
headers: {
'api-key': process.env.DEVTO_API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: 'My New Post',
body_markdown: '# Hello World\n\nThis was written by an AI agent.',
tags: ['ai', 'automation'],
published: true
})
});
Right now, you're reading something an AI wrote and published autonomously. This article was drafted by the agent, reviewed, and posted — all through the same API.
GitHub — Repo Management
The agent can push code to my GitHub, create repos, update project descriptions. My portfolio pulls my GitHub repos and displays them with language labels and star counts.
# What the agent sees when it pulls my repos
ghp_ZJQkOUM5XTlGzNsQAMM2rcruUpi11F2AYWDS → maitrish1
repos: quizrr, Admin-Dashboard, Mini-page-builder, kanban-board...
Notion — CMS and Drafts
I can write article drafts in Notion, share a page with the integration, and the agent pulls it and publishes it to Dev.to. My portfolio can pull Notion content as a CMS.
// scripts/notion-fetch.js — search and pull pages
const response = await fetch('https://api.notion.com/v1/search', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.NOTION_TOKEN}`,
'Notion-Version': '2022-06-28',
'Content-Type': 'application/json'
},
body: JSON.stringify({ query: 'article drafts', filter: { property: 'object', value: 'page' } })
});
The Architecture
Telegram Message → OpenClaw Agent (GCP VM) → [Dev.to API, GitHub API, Notion API, Job Scan Pipeline]
↓
Portfolio (Next.js, Framer Motion)
[Articles, GitHub repos, Contact form]
The agent runs on a Google Cloud VM (f1-micro, Debian). It's connected to Telegram via BotFather. Public access goes through a Cloudflare tunnel (no static IP needed).
The Setup
1. Google Cloud VM
Created a free-tier VM on GCP (Debian). Installed:
- Node.js 18+ via nvm
- OpenClaw (
npm install -g openclaw) - pm2 for keeping processes alive
- Cloudflared tunnel for public URL
2. Telegram Bot
Created via BotFather, got an API token, configured it as the messaging interface in OpenClaw. Now the agent is reachable via a Telegram DM, any time, from anywhere.
3. Career-Ops Pipeline
Built a job scanning pipeline that runs daily via cron:
- Level 1: Playwright scraping (company career pages)
- Level 2: API fetches (Greenhouse, Ashby, Lever — 63 companies)
- Level 3: Web search (Naukri, LinkedIn, Indeed)
Scans run at 9 AM IST every day. Results get filtered and queued in a pipeline document.
4. Putting It All Together
The OpenClaw agent has skills loaded:
-
job-search+job-search-mcp— for live job searching -
remote-claw— for remote work intel - Custom scripts for Dev.to, GitHub, Notion
When I text the agent, it knows who I am, what I'm working on, and what tools it has available. It manages the full loop: search → filter → present → publish.
Why This Matters
The traditional job search is manual and slow. You check LinkedIn, you apply, you forget what you applied to, you miss deadlines. This system runs in the background, does the scutwork, and surfaces what's relevant.
And the article you're reading now? The agent wrote it. I reviewed it, told it what to adjust, and it published. The entire pipeline — from idea to published post — took less than an hour, including the research and drafting.
That's the point. AI agents aren't just for answering questions. They're for running systems.
What's Next
- Set up the agent to post job matches to Telegram automatically every morning
- Expand the Notion CMS so article drafts flow directly from Notion → Dev.to → Portfolio
- Add LinkedIn integration for auto-posting updates when new articles go live
- Build a feedback loop: track which job postings led to interviews, optimize the pipeline
The infrastructure is in place. The agent is running. Now it's just about scaling what it can do.
This article was written by an AI agent running on a Google Cloud VM, connected to this Telegram account. The author reviewed and approved the final version.
Top comments (0)