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 ReaderDiagnosticianBrief 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:

FailureWhat happens
CTR-led optimizationMeta’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 attributionHyros/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”:

TruthSignalThe move
Real WinnerStrong upstream response AND strong downstream outcomeScale it — angle and creative both work
Fake WinnerLooks good in-platform (high CTR, cheap leads) but garbage downstream conversionKill it — you’re paying for a vanity signal the pixel can see; it’s burning budget
LeakStrong 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 WinnerLow volume, strong efficiency — quietly outperforming on a small slice of budgetFeed 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.

AgentJob
Agent 1 — Data ReaderRuns 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 — DiagnosticianMaps 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 WriterTakes 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):

SkillWhat it does
meta-source-readerPulls Meta campaign, ad set, and ad performance data
page-signal-readerReads landing-page sessions, CVR, and engagement data
outcome-event-readerPulls leads, bookings, signups, purchases, or other outcome events
metadata-loaderLoads angle tags, creative tags, audience tags, and page mappings
angle-mapperGroups ads, pages, and outcomes into message families
outcome-scorerBuilds blended scoring around your chosen outcome
fake-winner-detectorFinds assets that look good upstream but fail downstream
leak-diagnoserIdentifies whether the break is in the ad, page, or follow-through
opportunity-finderFinds low-volume, high-quality angles worth scaling (the Underfed Winners)
decision-writerConverts analysis into concrete operator moves
brief-senderDelivers daily or weekly briefs to Telegram, Slack, or WhatsApp
pattern-memoryStores 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 fitBad fit
Spending money on paid traffic but unsure which message angle actually produces buyersYou 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 spinYou 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 wayAgent way
Triple Whale: $380/moMeta API: free
Northbeam: $500/moGA4 API: free
Hyros: $500/moCalendly API: free
Data analyst: $6K/moOutcome Kit: free
Total: $8K+/moTotal: $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 / email

Implementation

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.