Media buying
Your AI team buys your media. You approve.
Six ad platforms, checked every morning. Your AI team works out what should change, shows you before and after in Slack, and makes the change the moment you say yes. Every move is logged.
Blended return on ad spend, with your AI team's changes marked
Weekly, last 12 weeks, one made-up brand · spend up 36% over the same weeks · every marker is a change you approved in Slack
- Blended return
- Your floor
- W4· 3 ad sets paused
- W7· Duvet-03 scaled
- W10· 6 new ads live · tests cost a week
Example numbers.
Meta
Google Ads
TikTok
Snapchat
AppLovin
Amazon Ads
Six platforms
One media buyer who never sleeps, on every platform you spend on.
Your AI team runs all six the same way: it looks at every ad every morning, works out what should change, and shows you before and after. The details differ by platform. The discipline does not.
Changes your AI team made · per platform, per day
One example week. Every square is a day it read every ad; the shade is how many changes it made.
AppLovinAppLovin
AmazonAmazon AdsExample week. A blank square is a day it read every ad and changed nothing.
Meta
Return, last 12 weeks2.9×What your AI team does here
- Every ad judged against the others in its set, every morning
- Budgets moved to the winners, losers paused, new ads tested weekly
Last change
Prospecting · UGC-07Pause$300/day → paused
Google Ads
Return, last 12 weeks2.1×What your AI team does here
- Search, Shopping, Performance Max and YouTube built from a plan you can read first
- Wasted searches blocked, winning searches given their own budget
Last change
Search · SheetsBlock“free sheets” → blocked
TikTok
Return, last 12 weeks1.7×What your AI team does here
- Creator videos that sell on TikTok Shop become Spark ads and Shop ads
- Budget follows the creators whose videos keep selling
Last change
@thecozyhome videoLaunchShop post → Spark ad · $50/day
Snapchat
Return, last 12 weeks2.2×What your AI team does here
- Your Meta winners rebuilt as Snapchat ads, never launched twice
- Bids moved in small steps so one bad day never becomes a bad week
Last change
Catalog · cost per saleLower$28 → $26

AppLovin
Return · Live since week 62.1×What your AI team does here
- Each video reported on its own, so you can see what each one earns
- On-brand end cards made and swapped in when a new video arrives
Last change
Video 04 end cardSwapspring card → new card

Amazon Ads
Return, last 12 weeks4.2×What your AI team does here
- Sponsored Products, Brands and Display run against your target
- Search terms that waste money cut, ones that sell get their own campaign
Last change
“cooling sheets queen deep pocket”Scaleshared campaign → own campaign · $60/day
Return lines and last changes are examples, drawn the way the hourly change log shows them.
What a morning looks like
Your AI team proposes. You approve. The work gets done.
No dashboard to open. Your AI team brings the decision to Slack with the numbers behind it, and nothing changes until you say so.
approvals
- Prospecting · Broad · UGC-070.9×
3 days under your 1.6× floor
Pause$300 → paused - Retarget · 7d · Bedskirt1.1×
3 days under floor · 7-day window
Pause$150 → paused - Catalog · All products1.0×
Break-even for 5 days
Pause$200 → paused - Prospecting · Broad · Duvet-033.4×
Above floor 9 days, room to grow
Scale$400 → $625 - Retarget · 30d · Sheets2.8×
Above floor 12 days
Scale$250 → $475
| Ad set | 7d | Change | Daily |
|---|---|---|---|
| Prospecting · Broad · UGC-073 days under your 1.6× floor | 0.9× | Pause | $300 → — |
| Retarget · 7d · Bedskirt3 days under floor · 7-day window | 1.1× | Pause | $150 → — |
| Catalog · All productsBreak-even for 5 days | 1.0× | Pause | $200 → — |
| Prospecting · Broad · Duvet-03Above floor 9 days, room to grow | 3.4× | Scale | $400 → $625 |
| Retarget · 30d · SheetsAbove floor 12 days | 2.8× | Scale | $250 → $475 |
Names and numbers are examples.
How much it's allowed to do
You set the limits for every AI employee. Per platform. In writing.
Every platform starts at Watch. You move it up one step at a time, once you've seen what your AI team would have done. Any platform can be moved back down in a message.
- Step 1 of 3
Watch
Your AI team suggests. Nothing changes. You see exactly what it would have done, and why.
- Step 2 of 3
Approve
Suggestions arrive in Slack at 9:00 as one card per platform, with before and after on each. You tap Approve or Skip. An unanswered card is a Skip.
- Step 3 of 3
Run
Inside three numbers you set — a daily budget ceiling, a return floor, a daily scale cap — your AI team acts on its own and reports every hour.
The limits you set before it runs
On Run, your AI team acts on its own only inside three numbers you sign off on, per channel. They're yours to change any time. The black line is the limit; the bar is today. Example numbers.
Daily budget ceiling
Ceiling $9,000 a day · $7,240 spent today
Your AI team never spends past it. Near the ceiling, it stops scaling and tells you.
Return floor
Floor 1.6× · running 2.7×, well above
Ad sets under the floor for three days are paused or proposed for pause.
Daily scale cap
Max change per day +25% · largest move today +12%
How far your AI team may grow an ad set on its own in one day. Anything bigger comes to you as a proposal, like the two raises in the approval card above. Small steps also mean the platform never has to relearn who to show the ad to, so a raise never costs you a week of results.
The worst day on Run
With these three numbers, here is the most a bad day on Meta can cost. Every change can be reversed. Spend already out the door cannot, which is why the ceiling exists.
- Most it can spend in a day
- $9,000
- the ceiling, whatever happens
- Biggest single move
- +25%
- of one ad set's budget
- Most a loser can cost
- 3 days
- at its current budget, then it is paused
The line it never crosses
The limits cover spend. This covers everything else. Even on Run, the right-hand column always waits for someone on your team.
Your AI team may, inside your limits
- Pause an ad set under your floor
- Grow an ad set, up to your daily cap
- Move budget between ad sets you already approved
- Block a search term that wastes money
- Nudge a bid toward the return you set
Only with a tap from your team, even on Run
- Launch a new campaign or a new ad
- Change a product price
- Edit a live Amazon listing
- Send a customer an email or a text
- Add a new ad platform
- Spend past your ceiling, or raise it
The kind of numbers it sends
Return up, waste down, budget where it earns the most.
Your AI team posts charts like these in Slack and keeps a Google Sheet behind each one that refreshes itself every hour. You always know where the money went and what it came back as.
Return on ad spend by platform
Weekly, last quarter · spend up 36% over the same weeks, return held above your floor
- Meta
- Amazon
- TikTok
- Meta 2.9×
- Google 2.1×
- Amazon 4.2×
- TikTok 1.7×
Where this month's budget went
Last 30 days
- Meta43%
- Google21%
- Amazon19%
- TikTok8%
- Snapchat5%
- AppLovin3%
Ad spend by platform
Monthly, last six months · August spend +36% vs March at the same blended return
- Meta
- Amazon
- TikTok
- Snapchat
- AppLovin
Example numbers for a made-up brand. Yours read from your own ad accounts, live to the hour.
One ad, sixty days
What your AI team does with an ad after you approve it.
A real CGK Linens ad, and the sixty days that follow a launch: a small test, a Thursday read, more budget for a winner, the tired version spotted early and the next cut swapped in.

- Format
- Video · 4:5
- Staged
- Day 1 · $50/day
- Best day
- Day 19 · 3.4×
- Peak budget
- $400/day
- Retired
- Day 37 · next cut in
Thu
Staged
$50 a day in the testing campaign. Approved in Slack in one tap.
Day 7
First read
2.9× against a 1.6× floor. Budget raised to $150.
Day 19
Winner
3.4× at $400 a day. Re-cut for TikTok, Snapchat and AppLovin.
Day 35
Tiring
Same people seeing it four times. Return slipping toward the floor.
Day 37
Next cut in
A fresh version swapped in while the ad set was still healthy.
Return on this ad, day by day
Against your 1.6× floor · the first week is noise, your AI team waits for the Thursday read · next cut in on day 37
- Return
- Your floor
- D7· Thursday read · first week is noise
- D35· Tiring
- D37· Next cut in
The ad is real. The timeline and numbers are an example of the system, not a result we promise.
Ads we've run
Real ads, for real brands we run.
Static and video, every one served on Meta for a brand Growth Dept runs. Our AI team staged, tagged and budgeted them; the team approved them in Slack.
3 ads
4 ads
5 ads
10 static · 2 video
Swipe to see more. 12 ads.
Real ads from brands we run today · results vary by brand.
Graded on what it really sold
Not the platform's own number.
Every ad platform grades its own homework, and every one of them takes credit for the same sale. Your AI team grades each ad on what it actually brought in across your whole business, including the Amazon orders the platform can't see. Same ad, two scorecards. Decisions are made on the honest one.
- The platform's number is shown next to your AI team's, labeled, never mixed in.
- Amazon orders an ad drove are counted, even though Meta cannot see them.
- An ad that looks great in Meta and poor everywhere else gets paused.
- Northbeam or Triple Whale stays yours. Your AI team reads it; it does not replace it.
Same five ad sets, two scorecards
Return on ad spend, last 7 days · what Meta reports vs what your AI team counts across every store
- What Meta reports
- What it actually brought in
Counted by Northbeam across every store
plus the Amazon orders the ad drove
Example numbers. Your AI team decides on the blue bars.
approvals
Every change is logged
Every change has a name, a reason and a record.
Once an hour, your AI team posts every change made on every platform, by anyone on the team, with the before and after value and who did it. A quiet hour posts nothing.
- Before and after on every budget, bid, status and search term.
- Changes by your people and your AI employees sit side by side.
- When a person changes something, your AI team leaves it alone for two days.
- The full history is kept on your machine, forever.
media-buying
- Meta · Prospecting · Duvet-03Daily budget$400 → $625
Johnson · approved by Sarah
- Meta · Prospecting · UGC-07StatusActive → Paused
Johnson · approved by Sarah
- Google · Search · SheetsBlocked search— → “free sheets”
Johnson · inside your limits
- Meta · Retarget · 30d · SheetsDaily budget$475 → $500
Maya
- Snapchat · Catalog adsTarget cost per purchase$28 → $26
Johnson · inside your limits
| Where | What changed | Before → after | Who |
|---|---|---|---|
| Meta | Prospecting · Duvet-03Daily budget | $400 → $625 | Johnson · approved by Sarah |
| Meta | Prospecting · UGC-07Status | Active → Paused | Johnson · approved by Sarah |
| Search · SheetsBlocked search | — → “free sheets” | Johnson · inside your limits | |
| Meta | Retarget · 30d · SheetsDaily budget | $475 → $500 | Maya |
| Snapchat | Catalog adsTarget cost per purchase | $28 → $26 | Johnson · inside your limits |
Maya raised the Sheets budget itself at 9:47. I’ll leave that ad set alone for two days so we don’t work against each other.
media-buying
Back where it was at 9:04. Logged as undone by Maya. I will leave this ad set alone for two days.
Every change keeps its before, so any of them can be walked back in a sentence. Names and numbers are examples.
Questions
The ones founders ask on the first call.
Will your AI team touch my ad accounts on day one?
No. Every platform starts at Watch: for at least a week it only tells you what it would have done and why. You move it up to Approve when you like what you see, and to Run only for platforms where you've signed off on the limits.
What happens when my media buyer and your AI team disagree?
Your person wins. If someone on your team changes a budget, bid or status, your AI team leaves that ad set alone for two days and says so in the hourly summary. The two changes sit side by side, so it's a conversation instead of a tug-of-war.
Which number does it optimize to?
The honest one: what each ad actually brought in across your whole business, including Amazon orders the ad platform can't see. The platform's own number is shown next to it, labeled, and never mixed in.
Can I keep my agency on some platforms?
Yes. Autonomy is set per platform. Leave your AI team at Watch on the ones your agency runs and you still get the morning brief, the hourly summary of everyone's changes and the honest return numbers. Hand it the rest.
Next step
Forty-five minutes with our team. Your AI team in your Slack a week later.
Bring your ad accounts and the return you need. You leave with the three numbers your AI team will run inside, per platform, and the date it starts watching.
- Johnson
- Nova
- Emily
- Carley
growth-dept
Your department's first week. Roles are examples.











