Source: raw/This AI agent knows which ads actually print money.pdf
Author: Matt (Matthew Berman / The Mattberman newsletter), ForwardFuture lineage
Repo: github.com/TheMattberman/outcome-kit
Published: April 2026
An open-source multi-agent analysis pipeline that connects Meta Ads + GA4 + a real business-outcome source (Calendly, HubSpot, or a CSV/JSON) and tells you which message angles are driving actual revenue — not vanity clicks. The premise: “scale what wins” is broken when “winning” = CTR and ROAS from Meta’s own attribution. Outcome Kit is opinionated, MIT-licensed, and runs on any agent runtime — including Claude Code.
Key Takeaways
- “Attribution” is the wrong metric. Matt argues it’s become a dashboard-theater word. Real signal is outcomes — bookings, signups, purchases — tied back to the creative that caused them.
- Angles are the unit of analysis, not creatives. An angle is
{angle, audience, creative_family, page}. Multiple creatives share an angle; angles are what you scale. - Four Outcome Truths classify every angle (categories are mutually exclusive):
- Real Winner — strong upstream response AND strong downstream outcome; the angle that drives clicks and buyers (scale it)
- Fake Winner — looks good in-platform, weak on real outcomes (high CTR, cheap leads, garbage conversion downstream); it’s burning your budget (kill it)
- Leak — strong ad performance, weak page conversion; the interest is real but something after the click breaks (message-page mismatch) — the fix is the page/follow-through, not the ad
- Underfed Winner — low volume, strong efficiency; quietly outperforming on a small slice of budget — the one you’re starving while you feed the fake winner (scale/feed it)
- Three-agent pipeline (built for Cowork, the Claude Code multi-agent framework): Data Reader → Diagnostician → Brief Writer. Each agent has one job and explicitly does NOT do the other agents’ work; they coordinate through shared artifacts.
- 12 skills install into
.claude/skills/with full Cowork support (CLAUDE.md,.claude/agents/, skills, rules, hooks); also run on OpenClaw or Hermes. MIT-licensed, “no upsell — fork it.” - Cost delta is the pitch. Agency stack: Triple Whale 500/mo + Hyros 6K/mo → 0/mo (you pay for LLM inference only).
- Launch cadence: v1 runs Meta Ads → the report cadence is weekly; confidence “scales with data” (Week 1 / ~30 conversions = medium; Week 4 / 200 = high; below that, recommendations are withheld).
The Core Insight — “Scale What Wins” Is Broken
Two failure modes:
| Failure | What happens |
|---|---|
| CTR-led optimization | Meta’s optimizer pushes clicks, which aren’t outcomes. You scale a “winner” that converts at 0.3% and burn budget on a fake. |
| Last-touch attribution | Hyros/Northbeam/Triple Whale give you vendor-branded dashboards. They claim the outcome; Meta claims the outcome; GA4 claims the outcome. None agree. Analyst-theater follows. |
Matt’s reframe: stop trying to resolve attribution. Map angles → outcomes directly from the business-of-record system (Calendly for a booking, HubSpot for a deal, Shopify for an order).
The Four Outcome Truths (Angle Classification)
Every run sorts each angle into exactly one of four mutually-exclusive buckets — “that’s the entire diagnosis model”:
| Truth | Signal | The move |
|---|---|---|
| Real Winner | Strong upstream response AND strong downstream outcome | Scale it — angle and creative both work |
| Fake Winner | Looks good in-platform (high CTR, cheap leads) but garbage downstream conversion | Kill it — you’re paying for a vanity signal the pixel can see; it’s burning budget |
| Leak | Strong ad performance, weak page conversion — the click is real, something after it breaks (message-page mismatch) | Fix the page / follow-through, not the ad |
| Underfed Winner | Low volume, strong efficiency — quietly outperforming on a small slice of budget | Feed it — the one you’re starving while you feed the fake winner |
The framework deliberately separates the two ways a “winner” can be misjudged: a Fake Winner wins on the platform but not in reality, while an Underfed Winner wins in reality but is denied budget. A Leak is neither an ad nor an angle problem — it lives downstream of the click.
The Angle Schema
{
"angle": "time-savings",
"audience": "heads-of-growth",
"creative_family": "founder-direct",
"page": "/time"
}Auto-sourced from calendar invite notes in Calendly / HubSpot by matching naming patterns to angles. Each angle-audience-page tuple becomes the analysis grain.
The Three Agents
Built for Cowork (the Claude Code multi-agent framework); the three agents coordinate through shared artifacts, each with explicit guardrails about what it owns and what it doesn’t.
| Agent | Job |
|---|---|
| Agent 1 — Data Reader | Runs the three reader skills (meta-source-reader, page-signal-reader, outcome-event-reader), validates the source data — and explicitly does NOT interpret strategy. |
| Agent 2 — Diagnostician | Maps angles, scores each against your primary outcome, and classifies everything into the Four Outcome Truths (the judgment layer). Categories are mutually exclusive; it flags confidence concerns but does NOT write recommendations. |
| Agent 3 — Brief Writer | Takes the diagnosis and turns it into concrete operator moves (scale, cut, rewrite), then delivers the brief to Telegram / Slack / WhatsApp. |
One cron. Three agents. Report lands where you want it. Confidence rules actively suppress recommendations when evidence is thin (roughly below the ~30-conversion / medium threshold).
The 12 Skills Shipped
The source enumerates all 12 (each runs standalone or as part of the full pipeline):
| Skill | What it does |
|---|---|
meta-source-reader | Pulls Meta campaign, ad set, and ad performance data |
page-signal-reader | Reads landing-page sessions, CVR, and engagement data |
outcome-event-reader | Pulls leads, bookings, signups, purchases, or other outcome events |
metadata-loader | Loads angle tags, creative tags, audience tags, and page mappings |
angle-mapper | Groups ads, pages, and outcomes into message families |
outcome-scorer | Builds blended scoring around your chosen outcome |
fake-winner-detector | Finds assets that look good upstream but fail downstream |
leak-diagnoser | Identifies whether the break is in the ad, page, or follow-through |
opportunity-finder | Finds low-volume, high-quality angles worth scaling (the Underfed Winners) |
decision-writer | Converts analysis into concrete operator moves |
brief-sender | Delivers daily or weekly briefs to Telegram, Slack, or WhatsApp |
pattern-memory | Stores recurring patterns and learns over time |
Install into .claude/skills/ as Claude Code / Cowork skills, or as OpenClaw / Hermes skills. You can also invoke them in natural language: “Find fake winners in my Meta funnel,” “Which angle is driving booked calls?”, “Give me the daily outcome brief.”
Who Outcome Kit Is For
| Good fit | Bad fit |
|---|---|
| Spending money on paid traffic but unsure which message angle actually produces buyers | You already have 5-person data team + pristine multi-touch attribution + Snowflake warehouse |
| Agency managing multi-channel accounts and need outcome-level truth, not platform-level spin | You want one-click magic — you still need to define your angles, configure data sources, and read the brief |
| SaaS founder with demo bookings or signups as your true metric, and tired of sorting by CPL | — |
| Messy tracking, disconnected tools, needing to make decisions anyway | — |
| Commerce brand who knows CTR and ROAS tell different stories per creative | — |
V1 Limitations (Matt’s Own List)
- V1 is Meta-first. Google Ads support is coming but isn’t native yet. If Meta is your primary paid channel, you’re good. If Google-only, wait.
- You need at least one outcome source. Calendly, HubSpot, or a CSV/JSON of your bookings/purchases. Without ≥1 outcome source, the agent can’t find fake winners.
- Angle tagging is manual to start. The system doesn’t auto-discover message strategy — you tell it what an “angle” is. Takes ~10-15 min of upfront thinking.
- Confidence scales with data. Week 1 with ~30 conversions = medium confidence. Week 4 with 200 conversions = high confidence. Below that, the agent withholds the recommendation rather than guess (low confidence = “revenue linkage is too weak to call this”). The agent reports confidence; it doesn’t hide it.
- No automatic budget changes in V1. Matt’s own line: “You approve. Same philosophy as my Meta Ads AI. Start with visibility. Graduate to autonomy when you trust it.”
Cost Comparison (From the Article)
| Old agency way | Agent way |
|---|---|
| Triple Whale: $380/mo | Meta API: free |
| Northbeam: $500/mo | GA4 API: free |
| Hyros: $500/mo | Calendly API: free |
| Data analyst: $6K/mo | Outcome Kit: free |
| Total: $8K+/mo | Total: $0/mo (MIT, pay for LLM inference only) |
| “Still says ‘it depends’" | "Says ‘cut this, scale that, fix this page‘“ |
Try It
From the article — a 6-step quickstart:
# 1. Clone and configure
git clone https://github.com/TheMattberman/outcome-kit
cd outcome-kit
cp .env.example .env
cp config.example.json config.json
# 2. Define angles (edit config.json) — the 10-minute part
# 3. Sanity check
npm run doctor
# 4. Sample pipeline
npm run run:sample
# 5. Run for real
npm run run
# 6. Set up a cron
# Outputs land in Telegram / Slack / emailImplementation
Tool/Service: Outcome Kit — github.com/TheMattberman/outcome-kit, MIT license.
Setup: Meta Ads access token + ad account ID + GA4 property ID (service account JSON) + one outcome source (Calendly API, HubSpot private API token, or CSV/JSON) + the Outcome Kit repo.
Cost: Free (runtime), plus LLM inference cost via Claude Code / OpenClaw / Hermes.
Integration notes:
- Runs identically on Claude Code or similar agent runtimes — cookbook/skill model is portable.
- Good candidate for integration with Claude Cowork for Marketing — feed Outcome Kit’s “kill/scale” brief into Cowork’s ad-creative variants.
Open Questions
- How does Outcome Kit handle cross-device / cross-session attribution when an ad click → outcome spans multiple sessions? Article doesn’t specify.
- Claim that agency stacks like Triple Whale + Hyros + analyst = “$8K+/mo still dashboard theater” is not independently validated and reads as rhetorical framing.
- Google Ads roadmap timing not disclosed. “Coming but isn’t native yet” as of April 2026.
- MIT license + “free” framing doesn’t account for API rate limits at scale — large accounts (100+ ad sets) may hit Meta Marketing API throttles; article doesn’t mention.
Related
- B Testing — video-level metrics (hook rate, retention, completion rate) that sit below Outcome Kit’s angle-to-outcome layer; use together to see both which creative element worked and whether it printed money
- Claude Cowork for Marketing
- AI Marketing Automation Use Cases
- Stanford HAI AI Index 2026 — Marketing Cuts — macro adoption + productivity data that contextualizes Outcome Kit’s “stop paying for dashboard theater” thesis
- AI-Assisted Marketing Attribution — The 2026 Landscape — the mainstream MTA/MMM landscape Outcome Kit’s outcomes-first approach deliberately routes around
- AI Marketing ROI Measurement Framework — Outcome Kit’s cost comparison is effectively an unstructured Simple-ROI calculation
- Claude Code Subagents
- Claude Code Agent Teams