If you run paid social or paid search at an agency, you know the Monday ritual: ten clients, each with three to five competitors worth watching, which means somewhere between thirty and fifty ad libraries to check — across that many browser tabs, screenshot folders, and half-maintained spreadsheets. Competitor intelligence for one brand is a habit. Competitor intelligence for 10 clients is an operations problem, and most agencies quietly stop doing it.
This is the workflow we built the Agency plan for: every client's competitive landscape in one place, queryable from one chat, with reporting output your account managers can actually send.
What the Agency plan is
The shape of it, so the rest of this post makes sense:
- $149/month, flat. Not metered per tool call — your team can research all day and the bill doesn't move. (For contrast on why metered pricing punishes research work, see our Adspirer comparison.)
- 10+ brands. Each "brand" is a tracked ad library — so one client's competitor set might be four brands, another's might be six.
- 50 ad clones/month, with one-time credit packs (10/$19, 30/$39, 100/$99) if a heavy month needs more.
- Cross-brand comparison — the tool that makes agency-scale research different from doing single-brand research ten times.
It runs as an MCP server inside Claude, ChatGPT, Claude Code, or Cursor, and as a web app with a dashboard, creative library, and cross-brand compare view. Setup notes for Claude Code and Cursor are on the blog.
The workflow, client by client
1. Track each client's competitors once
For every client, add their real rivals with add_brand (or find already-tracked ones via search_brands — at the time of writing the library covers 380+ brands and roughly 194,000 ads). This is a one-time setup per client, not a weekly chore: once a brand is tracked, its library stays current via daily snapshots.
"Add these four competitors for my skincare client: [brands].
Which of them has the longest-running active ads?"
That last question matters because days-running is the honest performance signal — brands don't keep paying for losing ads. It's the proxy we use instead of fabricated metrics, and it's what lets a strategist separate "competitor posted an ad" from "competitor found a winner."
2. Read a whole category with compare_brands
This is the step that doesn't exist when you're doing research one tab at a time. compare_brands puts a client's entire competitor set side by side:
"Compare the four competitors for my skincare client. Who's iterating
fastest, what hooks dominate the category, and what offers appeared
in the last 30 days?"
One prompt replaces the cross-referencing spreadsheet. Because every ad is AI-classified (hook, format, tone, offer), the comparison reads at the strategy level — "three of four rivals moved to founder-story hooks" — not the screenshot level. Do this per client per week and each account gets a standing competitive read for a few minutes of a strategist's time.
3. Turn research into client reporting with generate_brief
Agencies don't just need to know things; they need to show clients they know things. generate_brief compiles the competitive picture into a brief with PDF export (Markdown too, if it's feeding your own deck pipeline):
"Generate a competitive brief for my skincare client covering
these four competitors, and export it as a PDF"
That's the monthly "here's what your market did" deliverable — the one clients forward internally, and the one that quietly justifies the retainer — produced from research you already ran instead of assembled by hand on the last day of the month.
4. Clone and launch, per client
When the research surfaces a proven winner in a client's category, clone_ad (or clone_tiktok_ad) rebuilds the concept for that client's brand — the validated structure with their product and positioning. The 50 clones/month pool covers a realistic testing cadence across a ten-client roster.
And since June 2026, the loop closes: Google Search and Performance Max launch are generally available, TikTok launch is generally available, Meta launch is in beta. The insight-to-live-campaign handoff — historically the part where an AM rebuilds everything in Ads Manager by hand — happens in the same chat:
"Clone [competitor]'s longest-running ad for [client] and launch it
on Google Search with a $75/day budget"
An honest note on what this isn't
If your agency's core problem is heavy multi-account execution — bulk operations across LinkedIn, Amazon, and every other platform, with automated monitoring on top — that isn't our lane, and we're not going to pretend otherwise. We execute on Google and TikTok (Meta in beta), and execution-focused MCP servers like Adspirer cover more platforms than we do; our comparison post lays that out honestly.
Our lane is competitor intelligence at agency scale — the research, creative, and reporting layer that execution-only tools structurally don't have — plus enough launch capability that the winners you find actually ship. If we're being direct: most agencies already have execution covered. What they don't have is a repeatable way to know what every client's market is doing this week.
The weekly rhythm
| Cadence | Action | Tools |
|---|---|---|
| Once per client | Track their competitor set | add_brand, search_brands |
| Weekly | Category read per client | compare_brands, get_brand_ads |
| Monthly | Client-facing competitive brief (PDF) | generate_brief |
| As winners surface | Clone for the client, launch | clone_ad, launch_search_campaign / launch_tiktok_campaign |
Ten clients, no tab farm, and the research compounds — every week's read builds on tracked history instead of starting from a blank Ad Library search.
If you want to pressure-test it, start free (5 tool calls, 1 brand) on one client's competitor set before committing to the $149/month Agency plan. Setup instructions for every assistant are at adwhispr.com/integrations, or start at adwhispr.com.