
Two months ago I was drowning in tabs. Slack open, Linear open, YouTube Studio open, Google Docs open, Fathom open. A dozen clients. Two co-founders. One shared brain trying to keep it all straight.
I didn’t hire anyone. I wrote markdown files instead.
Not an app. Not a SaaS product. Just markdown, cron jobs and a Telegram bot running on a $6/month server. And honestly, it changed how I run this agency more than any tool I’ve paid for.
Here’s everything I built, what it replaced and what I learned.
The mess before
Vision Seek is a YouTube growth consultancy. We handle everything from ideation to publishing for our clients. That means every week there are scripts to review, thumbnails to approve, analytics to check, meetings to debrief and Slack threads to follow up on.
The problem wasn’t any single task. It was the switching. I’d finish a client call, forget to log the action items, then three days later someone asks “did we ever follow up on that thumbnail test?” and I’m scrolling through Slack like a detective.

Sound familiar? Yeah.
The first thing I automated
Every client call goes through Fathom. Great tool, records everything, gives you a transcript and summary. But the summary just sat there. Nobody went back to check it.
So I wrote a webhook. Every time a Fathom meeting ends, it sends a notification to my server. A script catches it, reads the meeting title, figures out which client it’s for and creates a task in Linear with the summary, action items and a link back to the recording.
That’s it. Meeting ends, task appears in the right project, tagged with the right labels. No one has to remember to do it.
The whole script is maybe 80 lines of Python. No framework. No database.
Then I built Jeeves

Jeeves is a Telegram bot. I message it from my phone and it does things. Not chatbot things. Actual things.
It can:
- Read and search my entire knowledge vault (40+ skills worth of reference material)
- Run commands on the server
- Fetch web pages and summarize them
- Load specialized skills for different workflows
It runs Claude Sonnet through OpenRouter. Costs almost nothing. The whole thing is one Python file, a container and a folder for the vault.
Why Telegram? Because I’m already there. I don’t need another app. I message Jeeves like I’d message a colleague. “What did we decide about content strategy for this month?” and it searches the vault and tells me.
The real power isn’t the bot itself. It’s that everything I learn gets written into the vault, so the bot gets smarter over time without me touching the code.
Slack messages that turn into tasks
This one solved a specific pain point. Our clients message us in Slack. Sometimes it’s feedback, sometimes it’s a new idea, sometimes it’s “hey can we try this?” And those messages would just… sit there until someone remembered to act on them.

Now there’s a poller. Every 5 minutes it checks our client Slack channels. Any new message that isn’t from me or my co-founder automatically creates a task in Linear. It pulls the first 80 characters as the title, includes the full message as the description, adds a “Slack” label and even detects keywords to tag it as script, thumbnail, strategy, edits etc.
Thread replies get added as comments on the parent issue. So a Slack conversation becomes a tracked, assignable task without anyone doing anything.
The deduplication alone saved my sanity. No more “wait, did I already make a ticket for this?”
The boring stuff actually matters
Then there’s the stuff nobody would put in a blog post because it’s not exciting. But it’s the stuff that was eating hours every week:
Todoist recurring tasks. Every Monday: check YouTube analytics for each client. Every Wednesday: review thumbnail pipeline. Every Friday: follow up on script feedback. These aren’t automated in a fancy way. They’re just recurring tasks that show up and remind me to do the thing. Five minutes to set up. Saves me from ever forgetting.
Daily Slack digest. A cron job runs every weekday morning, pulls yesterday’s activity from all client channels and summarizes it into a markdown file. I read it with coffee. Takes 2 minutes instead of 20 minutes of scrolling.
Weekly client updates. Monday mornings, another script drafts performance updates for each client. YouTube stats, what shipped last week, what’s coming this week. I review it, tweak a few lines and send it.
Just in time AI

Here’s the thing nobody tells you about automation. It’s not about saving time. I mean, it does save time. But the real value is that things stop falling through the cracks.
Before, my mental model of each client was whatever I could hold in my head plus whatever I remembered to check. Now it’s everything, logged, tracked and searchable.
A few specific things I’d tell someone starting this:
Start with the thing that makes you feel guilty. For me it was forgetting to follow up on meeting action items. That’s why the Fathom webhook was first. Fix the guilt, then move to the nice-to-haves.
Don’t build a platform. Build scripts. I don’t have a unified dashboard or a fancy orchestration layer. I have individual scripts that each do one thing. They run independently. If one breaks, nothing else breaks. That’s the whole architecture.
The stack
For the nerds:
- Server: Hostinger VPS
- Bot: Telegram + Claude Sonnet via OpenRouter
- Task management: Linear
- Communication: Slack API
- Scheduling: cron
- Remote access: Tailscale
Total lines of code across all automations: maybe 800. Total monthly cost: $12 (VPS + OpenRouter credits).
What’s next

I’m not done. The next thing I want to wire up is automatic short-form clip generation from client videos. And I want Jeeves to proactively surface insights, not just answer questions.
But that’s the thing about building this way. Each piece is small. Each piece is independent. And each piece makes the next one easier because the foundation is already there.
You don’t need to be a developer to do this. You need to be annoyed enough by your workflow to spend an afternoon fixing it.
If you want to see the actual code or hear more about how I run a YouTube agency and a bunch of scripts, that’s what this site is for.