Building a one-person marketing agency with AI: assigning reports, auditing accounts, and tracking budgets for agents

October 19, 2026 Le Quoc NghiaGuide
Building a one-person marketing agency with AI: assigning reports, auditing accounts, and tracking budgets for agents

Most of an advertising agency's time goes not to ideas but to reports, account checks, and spending tracking. These are structured, recurring tasks each week — exactly the kind of work an AI agent does best. This post walks you through handing those three tasks to an agent, while you keep the decision-making, so one person can still manage many clients.

This post is based on the "How to build a one-person marketing agency with AI" process by Yarchi (@undefinedKi), rewritten in Vietnamese by OPCAIOS, with examples adjusted for Vietnam's context and a focus on building it yourself with available tools. The original post was sponsored by a paid AI product; that advertising is not included here.

The loop of an agency

Every client goes through five stages, repeating:

  1. Land the client: learn about prospects, prepare the pitch.
  2. Check: find what's broken in the ad account.
  3. Run: keep the budget on pace, every day.
  4. Report: show the client what happened and what's next.
  5. Grow: turn what works into a brief for the next campaign.

Landing and growing need analysis, need people. The three middle stages — check, run, report — are mostly pulling numbers, comparing them to rules, and writing them into documents. They take up almost your whole week, and this is where an agent helps most.

One principle throughout: the agent gathers, checks, and drafts. You decide.

Five layers of a system that runs

Miss one layer and the system breaks.

1. Access: what the agent can read

Ad accounts (Meta, Google, TikTok), Google Analytics, store (Shopify, Haravan, Sapo…), Google Sheets. Start with read-only access. The simplest way is one MCP connector per platform — see the free MCP course on Hugging Face if you're new to MCP.

2. Agent: who does the work

You need an agent that works with files and code, not just chat — for example Claude Code or Codex running in a project folder:

agency/
├── clients/
│   └── client-a/
│       ├── rules.md        # goals, limits, when to report
│       └── reports/        # everything the agent made
├── skills/
│   ├── check/SKILL.md
│   ├── spending-pace/SKILL.md
│   ├── weekly-report/SKILL.md
│   └── creative-brief/SKILL.md
└── log/runs.csv            # one line per run

3. Memory: what the agent knows about each client

Each client's rules.md file is what affects the whole system's quality most. Every time you fix something by hand, add a line here so it doesn't happen again. Example:

Target metric: CPA, goal 150,000đ
Budget: 100 million/month, Google + Meta
Never: turn on a paused campaign, touch brand campaigns
Always: note the source and date range next to every number
Report right away: spending pace off by 10%, any change over 5 million
Report tone: plain words, numbers first

(The numbers above are just examples.)

4. Clock: when work starts

Auto-run schedule (cron, scheduled task) so the agent starts without you: 7 AM every day, 8 AM Friday, first Monday of the month.

5. Review gate: what needs you

End every skill with one line: post the draft and wait for approval, never apply changes yourself. This is the layer that lets you sleep.

Start with one client and one process. Only add the next process once the first one runs smooth without your help.

A Framework for Every Process

Everything in the agency follows the same seven-step structure. Once you understand it, building a new process takes just a few minutes:

  1. Trigger: on schedule, when a new client comes in, when there's a message.
  2. Fetch data: new numbers from connected accounts.
  3. Check against: rules in the client's rules.md.
  4. Create output: a file (spreadsheet, PDF), not a chat box answer.
  5. Review: you agree or you don't.
  6. Send it: to the client or into an ad account.
  7. Log it: one line, so the next run knows what happened last time.

Write this framework once as a skill, then copy it for each process below:

---
name: [process-name]
description: [what it creates]. Use when [trigger condition].
---

1. Read clients/[client]/rules.md before anything else.
2. Fetch [data] within [time range] from all connected accounts.
3. If one source fails, stop and name which one. Never guess at numbers to fill gaps.
4. Check the data against the rules: targets, limits, when to report.
5. Create [output]. Each number comes with source and time range.
6. Post a draft and a 4-line summary. Wait for review.
   Never send or change anything on your own.
7. Write one line to log/runs.csv: date, client, what was done, result.

Step 3 is the most important. A process that quietly fills in guessed numbers where data is missing is worse than no process at all.

Close the client: research before the pitch

Most pitches fail because of poor preparation. With an agent, prepping for each prospect takes just a few minutes.

  • Trigger: new prospect arrives.
  • Input: their website, ads they're running, two or three competitors.
  • Output: a sourced summary and a slide outline for the pitch.
  • You decide: whether to pitch, and which point to open with.

Public data is enough for most of this: Meta's Ad Library and Google's Ads Transparency Center show every ad a business is running.

Research [company] before the pitch.

1. What they sell, to whom, at what price.
2. Ads running on Meta and Google: channels, angles, formats,
   how long the longest-running ad has been live.
3. Two competitors: where they position differently.
4. Three gaps we can fill, each with evidence and a link.
5. A 6-slide pitch outline centered on those three gaps.

Mark each finding as "verified" or "guess". The outline must not use guesses.

The last line is the most important: a pitch based on wrong guesses about the client's own business will end very quickly.

Audit: find what's broken in the account

Run it when you sign a new client, then once a month after. A good audit is also the most convincing case when you're pitching.

  • Trigger: new client, then monthly.
  • Input: ad account, analytics, store, keyword reports.
  • Output: a spreadsheet with health score, status of each area, reason, and one fix for each.
  • You decide: what to fix this week.

Four audit areas cover most of the ad spend:

  1. Spend pace: is each channel spending on track for the month.
  2. Wasted keywords: keywords costing money but bringing no orders.
  3. Measurement gaps: conversions counted twice or not at all.
  4. Ad fatigue: your best ads are losing effectiveness.
Audit [client] within [time range].

For each area (spend pace, wasted keywords, measurement, ad fatigue):
  status: Fix now (this week), Review (this month), or OK
  score from 0 to 100, main finding, estimated monthly impact
  evidence: which report, which numbers
  one fix proposal

Add overall health score and total possible savings per month.
Export to spreadsheet: overview tab, evidence tab.
Propose only. Change nothing in the account.

## Operations: tracking daily spending pace

Tracking spending pace is never-ending work: each customer, each channel, every morning.

- **Trigger:** 7 am every day.
- **Input:** spending by channel, monthly budget, goals in `rules.md`.
- **Output:** spending pace table and one adjustment suggestion for each customer that's off track.
- **You decide:** approve or skip each suggestion.

The logic is very simple:

1. **Pace = amount spent ÷ amount planned until today.**
2. Deviation within ±10% is on pace; outside that range is overspending or underspending.
3. For each deviation case: one suggestion for change, with reason and numbers.
4. Nothing off track, nothing sent. You only hear about customers who need you.

Example: 30 million đồng budget per month, today is day 10 of a 30-day month, plan through today is 10 million đồng. Already spent 12 million đồng → pace 120%, deviation 20%, needs reduction suggestion.

7:00 every day, for each customer in clients/:
get spending from month start by each channel
pace = spending ÷ (budget × current day ÷ days in month)
flag all channels deviating outside ±10%
for each flagged channel, suggest one budget change: from, to, reason, expected pace
Send only flagged cases. Don't change anything until I approve.


**Upgrade step: build an internal tool once.** Instead of daily reports, ask the agent to build a small web app the whole team opens each morning: customer list, pace indicator for each customer, spending chart by day, adjustment suggestions with approval buttons. Agencies usually put this off for years because no one has time—with a coding agent, this is one afternoon's work, running on a laptop or a cheap VPS.

## Reporting: weekly report for customers

Reporting is the part customers actually see from your work, and it's also what many agencies spend whole days doing.

- **Trigger:** 8 am Friday.
- **Input:** this week's and last week's numbers from ad platform and shop.
- **Output:** 3-page PDF and 4-line summary sent to customer's chat group (Zalo, Slack…).
- **You decide:** review it, then send.

Each report answers three questions:

1. **What happened:** a one-sentence headline in plain words, main metrics compared to last week.
2. **Why:** daily trends and the ads behind them.
3. **What next:** actions, marked for what needs customer approval.

One rule that prevents arguments: ad platforms usually record more conversions than the shop actually has orders. **Take revenue and order count from the shop**, and cite source for every other number.

8:00 Friday every week, make weekly report for [customer], [Monday to Sunday last week].

Page 1: one-sentence headline, spending, ROAS, CPA vs last week.
Page 2: spending and ROAS chart by day, top 3 ads with results.
Page 3: what changed, why, what's next. Mark what needs customer approval.

Revenue and order count from shop. All other numbers cite source clearly.
Export branded PDF and 4-line summary. Post as draft for me to review.


## Growth: creative iteration loop

Customers stay when results keep improving. Results improve when each new ad is built on what already works.

- **Trigger:** once a month.
- **Input:** all running ads and results from last 30 days.
- **Output:** creative brief based on common patterns in winning ads.
- **You decide:** which test to run.

The loop has five steps: get results of all ads → find what the top 20% have in common that the bottom 50% don't (format, opening line, length, angle, voice) → write brief → test each variable against current best ad → if new ad beats control by 10%+ then scale budget, otherwise pause and log reason.

Once a month, for [customer]:
Get all ads from last 30 days with spending, ROAS and CPA.
Find what the top 20% have in common that the bottom 50% don't:
format, opening line, length, angle, voice.
Write next brief:
hypothesis with expected result, 3 opening lines, scenes to shoot,
format, and one test against current best ad.
Post as draft. I pick which test to run.

A One-Person Agency Week

Put a full year of processes on schedule, and your work week changes shape:

  • Each morning: every client's rhythm chart is ready before you open your computer.
  • Each new prospect: research completed before the first call.
  • First Monday of the month: account check and creative brief done.
  • 8 AM Friday: all weekly reports written, waiting for you to read.

Your work narrows down to three things: reviewing changes, talking to clients, and deciding next steps. The work still gets done — you're just not the one who has to start it.

Work you never fully hand over to an agent

Two questions decide who keeps a task: can it be undone, and does it need judgment?

No judgment needed Judgment needed
Can be undone Pulling data, drafting, reviewing, researching — agent does it Sales angle, choosing tests — agent proposes options, you choose
Cannot be undone Changing budget, sending reports — agent suggests, you approve Service price, contracts, taking or dropping clients — only you

Increase agent autonomy gradually:

  1. Week 1: drafting only.
  2. Weeks 2 to 4: act after you approve.
  3. From month 2 onward: make small changes on their own within limits in rules.md.

Anything that cannot be undone always needs your approval first.

Where to start?

Pick one client and one process eating the most time in your week — usually the weekly report. Build it using the seven-step framework, run it alongside your old way for a few weeks to compare results, then add the next process.

If you're working alone and want to know what to automate first, read more in What should I automate first when working alone? and The AI system I use to run my work solo. Need someone to build the right processes for your work? Check out OPCAIOS's SOLO program.

Source: Yarchi — How to build a one-person marketing agency with AI (X, 18/10/2026), rewritten and adapted by OPCAIOS.

Translated from Vietnamese with AI. Read the original.

Want to apply this in your business?

Book a free 30-minute call (Vietnam time, in English or Vietnamese).

Book a call