Nikita Boiko
Contact
All case studies
Social media · AI agents7 networks on autopilot, 24/7

SocialPilot: AI finds clients on six networks, with Telegram as the remote

First 9 days: 1,949 posts read and rated, 135 personal comments, DMs and replies sent

SocialPilot: AI finds clients on six networks, with Telegram as the remote

At a glance

Client
Founder of a small AI video studio selling video work to companies on the English-speaking market. No marketing team.
My role
I designed and built the whole thing — core app, Chrome extension, Telegram bot and AI prompts — with Claude Code as my AI engineering team, then tested it on live accounts and tuned it on the first results.
The task
Find people who need the studio's services, start real conversations and keep the accounts alive, without spam, proxies or disguised automation.
What I built
A desktop app, a Chrome extension and a Telegram control panel; Claude writes and scores the texts.
Timeline
Development Oct 26 – Nov 4, 2026 (10 calendar days). First live run on day 2, daily use since Oct 27.
Platforms
Live: X, LinkedIn, Instagram, Threads, Facebook, Reddit. Ready but not live-tested yet: Bluesky, Mastodon, Indie Hackers, Quora.
First 9 days (as of Nov 4, 2026)
1,949 posts read and rated · 352 posts the AI flagged as possible clients · 135 personal comments, DMs and replies · 32 posts · $1.60 of AI for Oct 26 – Nov 4, setup included. Operational numbers; too early for sales.
Quality
600+ automated tests, an end-to-end test in a real browser, four code reviews by a separate AI reviewer, live checks on real accounts.

Built for a video-studio founder with no marketing team: it finds clients on six networks, drafts messages in the founder's voice and runs the founder's accounts, all from one Telegram chat.

Why this was built

The studio's buyers post daily on X, LinkedIn, Threads and in Facebook groups: "hiring a YouTube video editor", "need a scriptwriter for my channel", "looking for someone to automate my business". A day or two later, those posts are stale.

By hand, that's hours a day: six feeds, hundreds of posts, a thoughtful reply to each good one, on top of running a studio. Meanwhile the studio's own accounts sit silent, so anyone who clicks through finds an empty profile.

The client wanted personal drafts, approvals, and no proxies or browser disguise; none of the ready-made options considered offered all of that. Schedulers only publish and never find or talk to anyone. An assistant is a permanent cost, and the founder still wanted control over every outgoing message.

The brief, and how it changed

The rules came before any code:

  1. No message to a stranger without approval: every comment and DM waits for a tap in Telegram.
  2. No disguise: no proxies, fingerprint spoofing, stealth plugins or captcha solving. Only the founder's own Chrome, accounts and IP.
  3. Limits: a daily cap per platform (10–20 actions in the first brief), 2–10 minute pauses, quiet hours at night.
  4. A circuit breaker: a captcha, a warning or repeated errors pause the platform and send a screenshot.
  5. Everything from the phone, in one Telegram chat.
  6. Learning: once a week, a look at what worked and adjustments.

On the first live day the client refined two rules: "I don't want to confirm every tiny action." Likes, follows and the founder's own posts now run automatically, and likes and follows ramp up over 28 days from a few a day to the configured targets.

Outreach stayed capped and approved: in these nine days each platform allowed 10–20 comments, DMs, replies and posts a day in total. Week two added an optional auto mode for comments, but DMs and replies to people always wait for approval.

What SocialPilot does

1. Finds people who need the service

Several times each morning, the extension runs the founder's searches on every platform ("hiring youtube video editor", "#videoeditorwanted", "looking for a youtube scriptwriter") and passes the posts to the AI.

The AI scores each post on two 1–10 scales, potential client? and on-topic?, with a one-line reason. Freelancers' self-promotion ("hire me", "my portfolio", "open for work") is filtered out before the AI sees it, which saves money.

2. Writes personal comments and messages in the founder's voice

The best posts get a short public comment draft, the strongest leads a DM draft too. Each draft refers to that specific post and sounds like the founder, because the AI knows:

  • the product: what the studio sells, to whom, at what price;
  • the voice: a style profile built from the founder's Telegram channel (tone, length, favorite phrases);
  • current work: a profile built from 742 daily work notes over 22 months, plus the last two weeks of notes;
  • what worked before: the weekly analysis.

Drafts arrive in Telegram as cards: ✅ approves, ✏️ edits (in the founder's words, or with an instruction like "make it shorter"), ⏭ skips. "Show in my language" translates a draft for the founder; the original English is what gets sent.

A lead card

3. Keeps the conversations going

Twice a day the extension checks inboxes and replies to comments, and the AI drafts an answer to every new message, again for approval. The card shows the whole exchange (what the person wrote, what the founder replied, what's new) and an interest score.

When someone is ready to talk business, the card says "time to pitch": one tap turns the answer into a soft offer, "DM me" in public or a concrete next step in private, such as a paid trial video.

A reply card

4. Keeps the accounts alive

The founder sends the bot raw material: photos, videos, a quick note ("the pipeline now voices videos automatically") or a long text file. The AI files it into a knowledge base and a media library and describes each photo and video once.

From that comes a monthly content plan in series such as "How the pipeline was built", "SocialPilot" and "the YouTube channel". Each post gets matching photos and a caption per network: short for X, longer for LinkedIn, three or four sentences with the series hashtags for Instagram.

Posts go out on their own in the morning and evening windows. The founder gets a notice for each, can edit or cancel it, and can switch post approval back on. Reddit gets a long developer-log draft twice a week instead of daily posts.

It also likes relevant posts and follows relevant people on its own, within daily limits and never the same post or person twice.

A scheduled post

How it works

Architecture
Part Role What it does
Telegram bot the remote Cards, approvals, settings, statistics; understands plain text ("turn off Instagram")
Core app (on the founder's PC) the brain Scheduler, limits and ramp-up, approval policy, circuit breaker, a memory of every lead, draft and conversation, weekly learning
Chrome extension the hands In the founder's own browser, in a separate window: searches, likes, follows, comments, posts, reads inboxes
Claude the writer and judge A fast model scores posts and drafts texts; a stronger one plans content, builds the style profile and runs the weekly analysis
The Telegram control panel

The daily rhythm

Until 13:00 the system only searches and ranks posts: no likes, no messages. At 13:00 the approval cards arrive, as many as the day's comment limit allows; then likes, follows, comments and messages spread across the day until quiet hours.

Inboxes are checked at 13:00 and 19:00, and replies to people who wrote first go out as soon as they're approved.

Daily rhythm

Guardrails that reduce account risk

An account restriction would hurt the client's business, so approvals, limits and pause rules live in code, not just in prompts. Honestly, that lowers the risk, but browser automation can still break a platform's rules or get an account restricted.

LinkedIn and Instagram are the strictest; the owner's manual recommends the smallest limits there.

Guardrails
  • Only the text you saw gets sent. The ✅ button is tied to the exact text shown: if the text changes, the old button stops working, so another version can't slip out.
  • A 28-day ramp-up. A new account starts at ~5 likes, 1 follow and 1 comment a day; the day-28 targets on X are ~80 likes, 25 follows and 12 comments a day. These are project settings, not limits approved by the platform.
  • It pauses itself when something's wrong. A captcha, a warning or a logout pauses the whole platform and sends a screenshot. Three failures in a row of one action, say DMs on Facebook, stop just that action until tomorrow. A deleted post or a closed inbox isn't an error: the card is skipped and the next one takes its place.
  • Forbidden buttons. Delete, block, report, unfollow, log out and the like are hard-blocked in the extension; no scenario and no AI decision can press them.
  • Buttons moved? It copes. Layouts change all the time. When a button disappears, the AI gets a list of the page's elements and picks a replacement, and strict rules in code check it: a "send" button, for example, must sit right next to the text just typed. Working replacements are remembered, failed ones forgotten. Never in DMs: writing to the wrong person is worse than not writing.
  • No disguise. No proxies, spoofing or fake mouse movements: SocialPilot doesn't hide that it's automation and relies on low daily volumes, approvals and the circuit breaker instead.

It learns every week

Every Sunday the stronger model reviews the funnel: which queries found people, which platforms answered, which comments got replies and which were ignored. Then it switches off queries that don't work, adds new ones and updates the style rules automatically, with a report in Telegram and one-tap rollback for any change.

After the first week it suggested short comments about one concrete detail of the post, ending with one question, instead of pitching in comments. It switched off 18 queries that had found 15–44 posts each without one worth approving, and added 18 new ones.

Weekly learning report

Results

The first 9 days

Real totals from the app's own database for nine days of live operation (Oct 27 – Nov 4, 2026, six networks):

Metric Value
Posts found, read and scored by the AI 1,949 (~$0.0005 per post scored)
Posts the AI flagged as possible clients (score ≥ 6/10) 352
Drafts cleared for sending 172 (147 approved by the founder, 25 cleared in comment auto mode)
Personal comments, DMs and replies sent 135
Conversations picked up from inboxes, each with a drafted reply 19
Posts published (9 posts across up to 5 networks) 32
Likes / follows on relevant posts and people 447 / 117
Browser tasks that succeeded 96% (1,367 of 1,423, every attempt counted: searches, inbox checks, likes, follows, comments, DMs, posts)
AI cost, setup on Oct 26 included $1.60 for Oct 26 – Nov 4

The $1.60 covers every Claude call the app made, ~$0.24 of it one-time setup: building the style profile, importing 742 work notes and describing 61 photos and videos.

Of the 172 cleared drafts, 132 were sent, five were still queued under the daily limits on Nov 4, and 26 were dropped later. The last nine couldn't go out because the post or the messaging permission was gone: a deleted post, closed DMs, replies limited by the author. Three more comments went out on Oct 28, the second live day, without an approval timestamp in the log, hence 135.

Statistics screen

What the numbers mean. By hand, the same would take ~25–30 hours over the nine days. That's a task-time model, not measured time saved: ~30 seconds to read and judge a post, ~4 minutes per personal message, plus posts, captions, likes and follows. With SocialPilot, the founder's part is two short sessions with the cards a day.

Lead quality. The first night's search found 222 posts. A manual review found about five real hiring posts and eight on-topic ones, and none had scored 6 or more😅

The same day brought new scoring rules, Reddit narrowed to relevant communities, a pre-filter for freelancer self-promotion, and queries in the buyer's words instead of the seller's. That was calibration, not a check of the 352 posts flagged later, whose precision hasn't been measured by hand yet. The best queries since then are the plainest hiring phrases: "hiring youtube video editor" on X, "looking for a youtube scriptwriter" on LinkedIn, "#videoeditorwanted" on Instagram.

What it costs

  • AI: usually $0.10–0.50 a day, under a hard daily cap ($1 by default, adjustable from the bot).
  • Other recurring fees: none for this deployment. No paid social-network access, proxy services, third-party subscriptions or servers. The founder supplies the computer and the internet; maintenance and support are separate.

I quote the build after a short brief; a narrower version (one or two platforms, search and drafts only) is possible too. The proposal says plainly which networks are in, what "done" looks like, and what support covers.

Development: 10 days, many iterations

Date What happened
Oct 24 The client wrote the brief: goals, platforms and the six rules
Oct 26 Architecture and plan; core app, database, safety layer, AI agents, local bridge. A Chrome extension with scenarios for 10 platforms, a demo social network for safe testing, the Telegram bot. First code review: 11 issues found and fixed
Oct 27 The bot rebuilt into the two-message control panel; work-notes import, style profile, content engine. Live checks on the client's real accounts on X, Facebook, LinkedIn, Instagram and Threads with nothing published, plus layout fixes per network. Two more reviews: bot and content engine (11 fixes), extension and self-healing (15). First live run
Oct 28 Review of the first night and recalibration (see "Lead quality"); Instagram and Facebook search added
Oct 29 The daily rhythm and a monthly content plan in series
Nov 1 The first weekly learning report
Nov 3 Fixes from live traffic (examples below) and Threads inbox parsing. Fourth review: no critical issues
Nov 4 Comment auto mode, a new statistics screen, an Instagram caption fix, the Reddit devlog generator

Funny thing: most of the work wasn't "the AI part" but deciding what counts as a failure, what counts as a skip, and what must never happen twice. Three examples from live traffic:

  • X sometimes shows "Something went wrong" after Reply and leaves the text in the box. At first it was flagged "unknown, check by hand". Now the reply is retried at most twice, and only if no reply with the same text is already under the post.
  • Instagram silently dropped captions: it saves one only when the field loses focus. Now focus moves away before "Share", and if the caption counter still reads 0, the post isn't published and is retried later.
  • Instagram and LinkedIn don't give links to chats. A reply opens the chat by the person's exact name and checks that their last message is visible. If two people share the name, nothing is sent.

How the client uses it today

SocialPilot has run every day since October 27. The founder starts it in the morning and stops it at night; there's deliberately no autostart. A typical day:

  1. Start the app.
  2. Open the bot a couple of times and go through the cards: ✅ / ✏️ / ⏭.
  3. Got news? Send the bot a note or a photo for the content plan.
  4. On Sunday, read the learning report and glance at the stats.

It all lives in one chat with two messages: a live menu on top, the current card below. Every setting, from limits and quiet hours to the AI budget and comment mode, changes from the phone without a restart.

Who this is for

  • Freelancers and small agencies selling B2B services (video, design, development, marketing, automation) who find clients on social media.
  • Founders doing founder-led sales and building in public, who need regular posting and real conversations.
  • Consultants and experts who want to show up on five networks without spending the day there.

It's not for mass spam, follower farming, or anything that has to hide from the platforms. The same architecture could also monitor brand mentions, answer comments on a company page or collect leads into a CRM.

Engineering details

Engineering details

Data and privacy

  • Stored locally: the database of leads, drafts and conversations, plus screenshots, logs and the media library, outside the synced OneDrive folder. Some of it also goes out.
  • Sent out: found posts, messages and the founder's notes go to Claude (Anthropic's API) for scoring and drafting; photos and one frame from each video go once, for a description. For self-healing, Claude gets the page's button labels, never text typed into fields. Cards, notifications and diagnostic screenshots go through Telegram, only to the founder's chat.
  • Retention: nothing is deleted automatically; the founder can remove knowledge-base items from the bot. An imported Telegram export is deleted right after import, keeping only the founder's own messages.
  • Keys live in a local .env file that is never committed.
  • Scraped text is data: it goes into prompts as quoted material, and permission to send anything comes from code-level checks, not the prompt.

Requirements

You control it from your phone, but the assistant itself lives on the founder's PC: Windows, Chrome logged in to the accounts, the app running. When the computer sleeps, so does the assistant. There's no cloud server, but internet access is needed for Claude and Telegram. Self-healing handles simple layout changes; otherwise the platform pauses and the scenario is fixed under support.

Quality

  • 600+ automated tests: ~380 for the core app and ~240 for the extension.
  • An end-to-end test runs the real core with the real extension in a real Chrome against a built-in demo social network: search → card → approval → the comment appears on the page → inbox → keyword auto-reply → a captcha pauses the platform. 17 of 17 checks pass; Telegram and the AI are mocked, so nothing leaves the machine.
  • Four code-review passes by a separate AI reviewer, each asking one question: where could this press the wrong button or write to the wrong person? 37 findings across the first three passes, all fixed and covered by tests; the fourth found nothing critical.
  • Live checks on the client's real accounts before anything was published.

Tech stack

Layer Technology
Core Python 3.12, asyncio; one background process runs the bot, the bridge and the scheduler
Telegram aiogram; a two-message UI edited in place; only the founder's chat has access
Browser Chrome extension (Manifest V3, JavaScript) acting inside the page, in a dedicated window. Site scenarios are JSON in a small step language (click, type, near, if, fail…) and reload without restarting the extension
Bridge aiohttp on 127.0.0.1 with a token; tasks via long-polling; pairing with a 6-digit code from Telegram
AI Claude Haiku for scoring, drafts, captions and image descriptions; Claude Sonnet for content planning, the style profile and weekly learning. Per-call cost tracking and a daily budget
Data SQLite with migrations
Quality pytest, the Node test runner, ruff, a Playwright end-to-end test

About 20,000 lines of code (≈14,400 Python, ≈6,000 JavaScript), plus an owner's manual written for a non-developer.

Want something similar?

Tell me about your task, and I'll come back with a plan: what we'll build, how long it'll take and how we'll know it worked.

Discuss a project
Contact