Customer story · Strivve Media

How we built 23 agents in 90 days
for an 8-person performance agency.

Strivve runs $400k/mo in Meta and TikTok ad spend for DTC brands. The team was drowning in creative rotation, budget reallocation, and daily P&L stitching. We replaced the busywork — not the people — with a swarm of 23 production agents.

23
production agents shipped
340%
ROAS lift in 90 days
38h
media-buyer time saved per week
“We were going to hire two more media buyers. Instead Mason built us 23 agents that do the work three buyers used to do — and they ship more creative, faster, with better attribution than we ever had.”
— Founder, Strivve Media

The problem

Strivve's 8-person team managed 14 active DTC brands, each with 60+ active ad sets across Meta and TikTok. Three buyers spent every Monday rebuilding daily P&Ls in Sheets, every Tuesday rotating creative because Meta had de-prioritized last week's top performers, and every Wednesday explaining to clients why CAC was up 12%.

The compounding problem: their creative team produced 40 new variants a week, but only ~12 ever got tested because there wasn't bandwidth to launch them properly. The other 28 sat in Frame.io. Meanwhile their best-performing audiences were fatiguing 3 days before anyone noticed.

They were one client win from a hiring round they couldn't afford.

Our approach

We started with a 2-week paid Pilot. The deliverable wasn't a slide deck — it was a working agent shipped to production. We picked the highest-ROI pain (creative rotation) and built it end-to-end before quoting the rest.

The architecture sits on Mastra orchestration with a mix of local Llama 4 (Mac Mini M4 in their office, Ollama via cloudflared tunnel) for cheap-and-fast tasks, and Claude Sonnet via Vercel AI Gateway for anything requiring real reasoning. Every agent run streams through a custom OpenTelemetry exporter into Postgres so we — and Strivve — can replay any decision after the fact.

After the Pilot landed, we shipped the remaining 22 agents in 11 weeks across seven swarms: Creative (rotation, fatigue detection, variant generation), Budget (daily reallocation, anomaly stopper), Reporting(P&L stitcher, client-portal builder, weekly Loom narrator), Audience (lookalike refresher, exclusion hygienist), Comms (Discord ops bot, Slack client channels), Compliance (Meta policy pre-checker, brand-voice validator), and Ops (onboarding, calendar, contract).

Results

  • 340% ROAS lift over 90 days, measured against the pre-Pilot 28-day baseline. Driven mostly by the creative rotation + fatigue detection agents.
  • 38 hours/week of media-buyer time reclaimed across the 3 buyers. They now spend it on client strategy, not Sheets.
  • 3.4x more creative variants tested per week. The Creative swarm pulls Frame.io approvals, builds Meta/TikTok-ready cuts, and launches them with budget allocations the Budget swarm sets.
  • Zero hiring rounds needed. Strivve added 5 brands without growing headcount.
  • $84k MRR managed by the orchestrator, with full audit trails per decision.

Tech stack

The whole thing runs on infrastructure Strivve already had budget for. No enterprise procurement, no vendor lock-in.

Mastra
agent framework
Ollama
local Llama 4
Next.js 15
app shell + RSC
Vercel
edge + Fluid Compute
Postgres
runs + spans
Upstash
Redis Streams + SSE
Meta API
ad ops
Discord
ops alerts

What's next

We're mid-build on the next swarm — a Forecast agent that projects each client's 30-day revenue from current ad ops state, and a Hiring agent that tells Strivve when their actual capacity (not their headcount) is becoming the bottleneck.

If you're running a similar agency with $50K–$1M/mo in Meta spend and more creative than you can ship, we should talk.

Ready to see the swarm in your stack?

Book a 15-min discovery call. We'll walk through the Strivve build live and tell you which 3 agents we'd build for you first.

Book a discovery call