How I'm Building a One-Person Local Ad Agency With Grok Bot (Before the First Client)
Most local businesses don't need a big agency. They need someone to turn their own footage into ads, run them in their own account, and tell them what each booked customer cost. That's a job a small
Article
Job breakdowns

Most local businesses don't need a big agency. They need someone to turn their own footage into ads, run them in their own account, and tell them what each booked customer cost.
That's a job a small bot team can do most of. Here's how I'm setting mine up. Fair warning: it's pre-launch. No clients yet, nobody contacted yet. This is the build, in public.
What this covers:
-
The niche and why
-
The offer
-
The stack
-
The research loop
-
The gate
-
What I never hand off
- The niche: fitness studios first
Gyms and studios run on new members, already film themselves for Instagram, and sell one clear thing: a first class. That's a clean fit for short vertical ads and a simple lead page.
My research bots ranked 36 gyms and studios in Palm Beach County: CrossFit boxes, boxing gyms, yoga, pilates, spin. Every row has the owner where public records or the gym's site show it, the Instagram account, the latest post, the video style, and the source for each fact.
Then they checked Meta's Ad Library for the top 10. None were running Meta ads as of Oct 19. Caveat: that's one page load per gym, by Page name, and three of the ten had no Page found at all. It's an opening, not proof that nobody has ever advertised.
- The offer: a Local Lead Package
My Agency Lead bot drafted it. Every month the studio gets:
-
4 short vertical videos, cut from footage they send (I don't film on site)
-
captions and offer cards on each one
-
one lead page with a simple form and Meta Pixel tracking
-
Meta ads set up and watched in their own ad account
-
a short monthly report: spend, leads, booked customers, cost per booked customer, and what changes next
Two lines in the offer matter more than the rest. They pay Meta directly, so I never hold their ad budget, and there are no spend changes without their OK. And it says, in writing: no guaranteed results and no made-up numbers.
- The stack
Layer 1. Access. Public web for research. Their own Meta ad account for the work, only once they say yes.
Layer 2. Agents. One bot owns the agency: Agency Lead. Research bots dig. A writing bot (Humanizer) turns drafts into emails that sound like me.
Layer 3. Memory. One ranked file of prospects with sources, one offer template, one folder of outreach drafts. Every run updates the same files, so nothing starts from zero.
Layer 4. Clock. Research reruns and records what changed since the last check: rank moves, new studios, changed offers.
Layer 5. Gate. Nothing is sent without me. The prospect file has a "contacted" column. Right now it says "no" for all 36.

- The research loop
Every pass follows the same steps:
-
Pull: public sites, Instagram, business filings, the Meta Ad Library.
-
Check: does each fact have a source? Is the Instagram account really theirs, or just a name match?
-
Build: update the ranked file and say what changed.
-
Flag: anything that couldn't be confirmed stays marked as unconfirmed.
Step 2 is the one that matters. One gym's original Instagram had been hacked and replaced. Another had two accounts, and only one was active. A bot that guesses would have pitched the wrong page.

- The first pitch: a free sample ad
The first outreach email is drafted. It offers a free sample ad before any talk of a contract. It hasn't been sent. It waits for my review, together with the sample.
- What I never hand off
-
Sending anything to a prospect
-
Any change to a client's ad spend
-
Promising results
-
Deciding which business to pitch
The bots gather, check and draft. I decide.

That's the whole agency today: one person, one niche, one offer, and a file of 36 studios nobody has emailed yet. When the first one says yes, I'll post what happens.
Published on grokbot.sh. Cite the public log, not a prompt pack.