Build an AI system that pulls your organic content data, learns what converts, and generates ad variations that improve every cycle. One ad hit 12.43x ROAS.
Time2–4 weeks to build
ToolsMeta Ads, APIs, Claude
Cost$200–500/month
How This Works
Most teams run ads the old way: build creative, hope it works, maybe test 3 variations. The result? 77 ads with a 2–3x average ROAS. Hormozi's system is different. He pulls his best organic content (the stuff people already love), runs it directly as paid ads, then feeds the performance data back into an AI loop that learns what converts. The system then generates new ad variations calibrated to what actually works in your market.
One ad hit 12.43x ROAS. But here's the honest part: half the content-as-ads flopped at first. That's where the AI feedback loop comes in. By measuring organic performance, analyzing ad performance through Hyros (better attribution than Facebook's native pixel), and having Claude find the patterns between winners and losers, you build a scoring rubric that gets smarter every cycle. Instead of 77 blind ads, you start with 8. Then you expand based on what's working.
This playbook walks you through building that system from scratch—from connecting your data sources, to teaching an AI what converts, to running the feedback loop that compounds your ROAS over time.
Start 12-20% ROAS, scale to 3-8x within 3-6 months
Who this is for: Marketing teams or founders who want to move beyond guesswork. You need access to organic data (Instagram/Facebook metrics), willingness to spend $1–2k/month testing ads, and comfort with connecting APIs. Time investment: 40–60 hours over 2–4 weeks to get the system running, then 5–10 hours/week to maintain it.
1
Connect Your Data Sources
Build the raw data pipeline: organic metrics, ad metrics, and attribution into one place
This phase is the foundation. You need three streams of data flowing reliably:
Organic metrics from Instagram/Facebook: Views, saves, comments, follows per post (via Meta Graph API)
Ad performance from Meta Ads Manager: Impressions, clicks, conversions, spend (via Meta Ads API)
Attribution via Hyros or Triple Whale: Pixel-level accuracy—who converted and at what cost (more reliable than Facebook's native attribution)
Example: Acme Inc., a 12-person accounting firm, posted a tax strategy video on Instagram that got 1,200 views, 180 saves, and 45 follows. They then ran the same video as a paid ad and tracked its ROAS through Hyros. By the end of Phase 1, they had a spreadsheet linking organic metrics to ad performance.
Action Item
Step 1: Meta Graph API Access
Go to developers.facebook.com, create an app (type: Business)
Add Instagram Graph API and Facebook Marketing API products
Generate a long-lived token (expires in ~60 days; automate refresh later)
Test the endpoint: GET /ig_user?fields=media{like_count,comments_count}
Document your Instagram Business Account ID and page ID (you'll need these in Phase 2)
Action Item
Step 2: Meta Ads API Setup
In Ads Manager, go to Settings → Accounts → Your Ad Account ID (note it down)
Use the same app from Step 1; verify it has access to your ad account
Test the endpoint: GET /act_ACCOUNTID/campaigns?fields=name,status,spend
Create a simple script (Node.js, Python, or Google Sheets + Apps Script) to pull daily ad metrics into a spreadsheet or database
Action Item
Step 3: Hyros / Triple Whale Setup
Sign up for Hyros (hyros.io) or Triple Whale (triplewhale.com) — both track conversions with better accuracy than Facebook's pixel
Install the Hyros pixel on your website or CRM
Create a feed that connects Hyros data to your spreadsheet (API or Zapier)
Validate: run a test ad, confirm you see the conversion in Hyros within 1–2 hours
Timeline concern: Meta API approval can take 1–2 weeks. Start this early. If you're not approved yet, use Zapier or Make to auto-export your Ads Manager data to Google Sheets as a workaround (less ideal, but faster).
Example Data Flow for Acme Inc.
Date
Post ID
Organic Views
Saves
Ad Spend
Ad Conversions
ROAS
2026-03-01
tax_video_001
1,200
180
$85
3
3.2x
2026-03-02
tax_video_001
1,200
180
$120
5
4.8x
2026-03-03
payroll_tips_002
450
22
$75
0
0x
Why this table matters: You're now seeing which organic posts performed well AND which ads converted. Posts with high saves but zero ad conversions are clues (maybe the hook is viral but doesn't convert). Posts that flopped organically might fail as ads too.
What if I don't have a website or e-commerce store?
Hyros and Triple Whale are strongest with e-commerce. If you're B2B (like Acme Inc.), track conversions as: demo requests, email signups, calendar bookings, or phone calls. You can still feed this data into Claude by logging it manually into your spreadsheet or connecting your CRM (HubSpot, Pipedrive, etc.) via Zapier.
✓
Meta Graph API app created, token generated, and tested with Instagram data
✓
Meta Ads API connection verified; daily ad metrics flowing to spreadsheet or database
✓
Hyros or Triple Whale pixel installed and validated with test conversion
✓
Master spreadsheet created linking organic metrics + ad spend + conversions
✓
Last 30 days of data backfilled (or as far back as available)
2
Build the Content Intelligence Layer
Teach AI to understand what your content actually contains, then match it to performance
Raw metrics (views, saves) are signals, but they don't tell you why a post worked. You need to understand the content itself: the hook, the structure, on-screen text, social proof, format (skit vs talking head), pacing, etc. That's where Gemini API comes in. It's not just transcription—it actually annotates videos with hooks, captions, emotional triggers, and format details.
Acme Inc. posted a video titled "3 Tax Mistakes That Cost My Clients $50k Each." The video opened with a stat ("Did you know..."), showed client case studies, and ended with a CTA. Regular transcription would miss the hook structure. Gemini annotates all of this, so Claude later can say: "Posts with stats-first hooks convert 3x better than story-first hooks."
Action Item
Step 1: Download Your Organic Video Content
Export all videos posted in the last 60–90 days from Instagram/Facebook (use download tools like instaloader or manually)
Organize in a folder: /organic_videos/
Create a CSV with: video filename, post caption, organic views, saves, follows (pull from your Phase 1 data)
Action Item
Step 2: Set Up Gemini API for Video Analysis
Sign up for Google Cloud, enable Gemini API (formerly Vertex AI Video)
Use Gemini's video understanding model to analyze each video
Prompt: "Analyze this video. Provide: (1) the hook in the first 3 seconds, (2) on-screen text or captions, (3) format (skit, talking head, case study, etc.), (4) social proof used (testimonials, stats, data), (5) the CTA at the end, (6) overall emotional tone."
Save the annotation output as JSON for each video
Action Item
Step 3: Analyze Ad Creatives the Same Way
Export your winning ad videos from Ads Manager (the ones with high ROAS)
Run them through Gemini with the same prompt
Compare: organic winners vs ad winners. Are they the same type of content? Same hooks?
Action Item
Step 4: Build a Content Database
Create a master database (Google Sheets or Airtable) with columns: Video ID, Original Caption, Hook, Format, Social Proof, CTA, Organic Views, Saves, Ad ROAS
Populate with all annotated videos from Steps 2 and 3
This is your training data for Phase 3
Example Annotations from Acme Inc.
Video
Hook Type
Format
Social Proof
Organic Saves
Ad ROAS
tax_mistakes
Stat ("3 mistakes cost..."))
Case study
Real client numbers
180
4.8x
payroll_tips
Question ("Are you...?")
Talking head
Personal authority
22
0.8x
tax_deadline
Fear/urgency ("Only 14 days...")
Skit (employee x boss)
Relatability
450
6.2x
Pattern spotted: Stat-based and urgency-based hooks convert 2–3x better than questions. Format: case studies and skits outperform talking heads. This insight—from data—now guides ad generation.
Can I use Claude's vision API instead of Gemini?
Yes. Claude 3.5 Sonnet can analyze video frames as well. Use Claude Code to extract key frames from each video, then prompt Claude: "Analyze these frames from a video. Provide annotations for hook, format, social proof, etc." The advantage of Gemini Video is that it processes the full video in sequence (not just frames), so it understands pacing and timing better. But if you're already in the Claude ecosystem, it's faster to stay there.
✓
Downloaded last 60–90 days of organic videos; organized with metadata
✓
Gemini API enabled and tested on 2–3 sample videos
✓
All organic videos annotated (hook, format, social proof, CTA, tone)
✓
Ad creatives from high-ROAS campaigns annotated with same framework
✓
Master content database created and populated (Google Sheets or Airtable)
3
Train the Pattern Engine
Feed your data to Claude and let it find what actually converts in your market
This is where the magic happens. You're not guessing. You're not following a guru's template. Claude analyzes your actual data and tells you what works for your audience. The output is a scoring rubric—a framework for evaluating ad ideas before you film or spend money.
For Acme Inc., the insight was: stat-based hooks (tax law changes, cost impacts) convert 3x better than motivational hooks. Case studies beat talking-head advice. Urgency (tax deadlines) triggers more response than general education. This is their rubric, based on their data.
Action Item
Step 1: Prepare Your Data Dump for Claude
Export your content database (from Phase 2) as JSON or CSV
Also export: ad performance metrics, Hyros attribution data, conversion types (demo vs email vs call)
Add context: "We're a B2B accounting firm targeting small business owners aged 35–55. Our conversion is a 15-min consultation call. AVL is $2k."
Action Item
Step 2: Brief Claude with the Analysis Task
Use Claude Code or a simple prompt like:
"I'm attaching data from 60 days of Instagram ads. For each high-ROAS ad (above 3x), tell me: (1) what was the hook structure? (2) what format was it? (3) what social proof was used? (4) what was the body copy tone? Then identify patterns. Tell me the top 3 hook types, top 2 formats, and the social proof tactics that correlate with ROAS above 4x. Finally, create a scoring rubric: if I give you a new ad script, how would you score it 1–10 based on these patterns?"
Claude will analyze your data and output a detailed report
Save this report; it becomes your scoring framework
Action Item
Step 3: Create a Scoring Rubric Document
From Claude's analysis, distill a one-page scoring rubric: hook types (with scores), formats (with scores), social proof (with scores), tone, CTA patterns
Example row: "Stat-based hook (specific numbers, cost impact): +3 points. General question hook: +1 point."
Example row: "Case study format: +3 points. Talking head: +1 point. Skit with relatability: +3 points."
Store in a shared doc or Claude Code skill so the whole team can reference it
Action Item
Step 4: Ask Claude to Build a Skill
Provide your rubric + examples and ask Claude to create a reusable skill: "Ad Script Scorer" that ingests a new ad script and returns a 1–10 score + improvement suggestions
Real numbers: +3 pts Testimonial: +2 pts Authority: +1 pt
Example application: New script idea: "Are you leaving money on the table? Let me show you 3 tax deductions you're missing." Hook is a question (-1) but promises savings (stat-adjacent, +2). Format is talking head (+1). No social proof (0). Score: 2/10. Recommendation: reframe as "3 tax deductions costing my clients an average of $18k/year" (stat hook, +3). Format: case study with real numbers (+3). Total: 6/10. Better.
Calibration check: Run your rubric against your top 5 performing ads. If they all score 8+, great. If they score low, your rubric needs adjustment. This is normal—refine it in Phase 5.
✓
Data prepared and shared with Claude (organic metrics + ad performance + annotations)
✓
Claude's pattern analysis completed (hook types, formats, social proof correlations)
✓
Scoring rubric document created (1 page, easy to reference)
✓
Claude Code skill built for "Ad Script Scorer" (takes script, returns 1–10 score + tips)
✓
Team trained on rubric (everyone knows why stat hooks score higher than questions)
4
Generate and Test Ad Variations
Use Claude to generate high-scoring ad scripts, test them against synthetic audiences, then refine before filming
Now you generate. The default framework is 10 hooks × 3 bodies = 30 variations per batch. But you don't film 30 videos. You test them first against synthetic personas—AI-trained avatars of your ideal customer. This cuts waste and surfaces which scripts will actually convert before you spend money on production.
Acme Inc. generated 30 ad scripts in one batch. They tested them against 3 synthetic personas: (1) the skeptical CFO, (2) the growth-focused founder, (3) the compliance-worried business owner. The CFO persona rejected 12 scripts for being too salesy. The founder loved stat-heavy scripts. The compliance owner wanted guarantees. This feedback revealed that they needed 2 different ad tracks—one for ROI seekers, one for risk-averse businesses.
Action Item
Step 1: Brief Claude for Script Generation
Provide: your scoring rubric, top-performing examples, your ICP description, and the product/service you're promoting
Prompt: "Generate 10 distinct hooks optimized for my market (use stat-based and urgency, avoid questions). For each hook, create 3 body variations: one ROI-focused, one risk-focused, one urgency-focused. Return as a spreadsheet: Hook | Body 1 | Body 2 | Body 3."
Claude outputs 30 ad scripts, each scored against your rubric (already built into the prompt)
Action Item
Step 2: Create Synthetic Personas
Based on your customer data (CRM, interviews, analytics), define 3 core personas: name, role, pain points, objections, buying triggers, deal-breakers
Ask Claude to become each persona: "You're Jane, a 45-year-old CFO at a $5M company. You're skeptical of consultants. You care about ROI and compliance. What would make you book a call?" Repeat for personas 2 and 3
Claude embodies these personas and provides feedback on scripts
Action Item
Step 3: Test Scripts Against Personas
For each of your 30 scripts, ask Claude (as each persona): "Would this ad make you want to book a call? Why or why not? What's your biggest objection?"
Collect feedback in a spreadsheet: Script ID | Persona 1 Response | Persona 2 Response | Persona 3 Response | Red Flags
Scripts that get positive response from 2/3 personas move to production. Scripts rejected by all 3 are archived.
Action Item
Step 4: Refine Based on Feedback
For scripts that got mixed feedback, ask Claude to iterate: "This persona thought it was too salesy. Rewrite it to focus on education, not pitch."
Re-test the refined versions
Keep iterating until you have 8–12 finalists (high scores across personas)
Action Item
Step 5: Plan Production
For your 8–12 finalists, create a shooting schedule. Batch record similar formats together (all case studies in one day, all skits in another)
Brief your production team on the formats and hooks from the rubric
Track: which script (ID), which video produced, production cost, when it ships as organic + paid
Generation Example (First 5 of 30 Scripts for Acme Inc.)
1
Stat Hook (ROI Focus)
Hook: "My clients left $47k on the table last year. Here are the 3 deductions they missed."
Body: Case study with real numbers. CTA: "See your deduction checklist."
2
Stat Hook (Risk Focus)
Hook: "The IRS is auditing 23% more businesses this year. Are you ready?"
Hook: "6 weeks left to lock in Q1 tax savings. Here's how."
Body: Time-sensitive strategy. CTA: "Claim your savings."
4
Stat Hook (Skit Format)
Hook: "Most small business owners pay 2-3x more in taxes than needed."
Body: Skit: business owner vs CFO discovering deductions. CTA: "Book a strategy call."
Synthetic Persona Feedback Summary
Script
Jane (CFO)
Alex (Founder)
Morgan (Compliance)
Status
1. ROI Stat
Like it ✓
Love it ✓
Too sales-y ✗
Refine
2. Risk Stat
Love it ✓
Not interested ✗
Perfect ✓
Produce
3. Urgency
Not sure ✗
Love it ✓
OK ✓
Produce
4. Skit
Love it ✓
Love it ✓
OK ✓
Produce
Key insight from testing: You don't need to pick one winner. Acme Inc. will produce all 4 finalists and run different scripts to different audience segments (CFO-focused ads to business managers, ROI-focused ads to growth-minded founders, risk-focused ads to compliance-conscious owners). The AI testing revealed that different people need different hooks.
✓
30 ad scripts generated (10 hooks × 3 bodies) using Claude + your rubric
✓
3 synthetic personas created (based on your ICP)
✓
All 30 scripts tested against personas; feedback collected
✓
Scripts refined based on persona objections (8–12 finalists identified)
✓
Production plan created (formats, schedule, cost, timeline)
5
Close the Feedback Loop
Run ads, measure results, refine the system—automatically improve every cycle
The loop is what compounds. You release ads, collect data, feed it back to Claude, refine the rubric, generate better scripts next month. By month 3, your ROAS is 2–3x higher than month 1, not because you're spending more, but because every cycle is smarter.
Acme Inc. started with 8 ads. After 2 weeks of Hyros data, they identified 2 winners (4.8x and 6.2x ROAS) and 2 losers (0.8x). Claude analyzed why: the losers had weak hooks and no urgency. The winners had both. They killed the losers, doubled down on winners, and generated 20 new variations on the same winning patterns. By week 4, they had 12 ads with 4+ ROAS. By month 2, their average had climbed to 3.2x. By month 3, they had a few outliers hitting 8–10x.
Action Item
Step 1: Launch Your Initial 8–12 Ads
Upload finalized scripts as both organic content (on Instagram) and paid ads (in Ads Manager)
Allocate $300–500/week of ad spend (low initial budget to test, not optimize spend yet)
Run for 2 weeks to collect meaningful data (Hyros needs at least 15–20 conversions per ad to be reliable)
Feed this data to Claude: "Here's how my 8 ads performed. Tell me: which 3 are winners (above 3x ROAS)? Which 3 are losers? What patterns do you see?"
Claude updates the scoring rubric with real-world validation
Action Item
Step 3: Refine and Regenerate
Take the 3 winners: what do they have in common? (hook type, format, tone, social proof)
Ask Claude: "Generate 20 new variations that double down on the winning pattern, but with fresh angles and hooks."
Test these 20 against personas again (quick validation, 2–3 days)
Produce the top 8 and launch in week 3
Action Item
Step 4: Set Up Automated Monthly Cycles
Create a monthly calendar: Week 1 (analyze last month's data + refine rubric), Week 2–3 (generate + test new scripts), Week 4 (produce + launch + optimize spend)
Assign roles: Data analyst pulls Hyros + Ads Manager data. Claude Code skill scores new scripts. Creative team produces videos. Ads manager optimizes spend
Goal by month 3: 20–30 ads in active rotation, with 3–4 hitting 5x+ ROAS
Action Item
Step 5 (Optional): Competitive Angle Discovery
As you mature, analyze competitor ads using Gemini (annotate their hooks, formats, tone)
Ask Claude: "Here's what my competitors are running. How can we differentiate? What angles are they missing?"
Feed this insight back into script generation (e.g., "My competitor uses fear; I'll use hope + proof.")
Results Timeline (Acme Inc.)
Period
Active Ads
Avg ROAS
Best Ad ROAS
Weekly Spend
Week 1–2 (Launch)
8
1.8x
4.8x
$400
Week 3–4 (1st Refresh)
12
2.4x
6.2x
$600
Month 2 (Week 5–8)
18
3.2x
8.1x
$900
Month 3 (Week 9–12)
24
3.8x
10.2x
$1,200
The compounding effect: Notice the pattern. By month 3, Acme Inc. is running 3x as many ads, with 2x the average ROAS, and spending 3x more—but their cost per lead has dropped by 50%. That's the loop working.
Monthly Checklist Template
Every month, repeat this cycle:
Week 1
Analyze
Pull Hyros + Ads Manager data from last month. Identify winners (3+ ROAS) and losers. Ask Claude to find patterns.
Week 2
Generate
Claude creates 20–30 new scripts based on winning patterns. Refine rubric if patterns have shifted.
Week 3
Test & Produce
Test scripts against personas. Produce top 8–12 videos (batch shoot similar formats).
Week 4
Launch & Optimize
Upload new ads as organic + paid. Optimize spend based on early performance. Prepare to kill underperformers by day 7.
What if some months the data is inconclusive?
This happens, especially early on. If you don't have 15+ conversions per ad, data is noisy. Solution: (1) double your spend, or (2) extend the cycle to 3 weeks to collect more data. Claude will flag this: "You need more data to draw conclusions." Don't panic. Run with the best-performing creatives from the previous month and add 2–3 experimental scripts to test new angles.
Should I pause bad ads immediately or let them run longer?
If an ad hits 7 days with 0 conversions and positive spend, pause it. No need to burn money. If an ad has 1–2 conversions and positive ROAS, let it run to day 14 to confirm. By day 7, you'll have enough signal for 90% of ads. Acme Inc. pauses by day 3 if it's clearly broken (100+ impressions, 0 clicks).
Hyros data collected for 2 weeks; winners and losers identified
✓
Winning patterns analyzed by Claude; scoring rubric updated with real-world data
✓
20–30 new script variations generated; tested against personas and approved for production
✓
Monthly cycle established and team trained (Week 1: Analyze, Week 2: Generate, Week 3: Test & Produce, Week 4: Launch & Optimize)
Next Steps & Scaling
You've built a self-improving ad system. The rubric gets smarter every month. Your ROAS compounds. Here's what happens next:
Months 4–6: Scaling
Increase spend: As you have winners, scale spend on proven ads. Acme Inc. was spending $400/week initially; by month 6, they're at $2k/week on the 5 best ads.
Expand audience segmentation: You now know that CFOs like risk-focused ads and founders like ROI-focused ads. Create audience segments and serve different ads to each.
Test new channels: LinkedIn, YouTube, TikTok. Your rubric applies across channels—test it.
Automation: Set up a scheduled Claude Code workflow that pulls Hyros data every Monday, analyzes it, flags winners/losers, and emails the team insights.
Months 7+: Optimization
Refine attribution: Hyros gives you pixel-level accuracy. Use it to optimize landing pages and post-click experience (the ad is only half the equation).
Competitive analysis: Run Gemini annotations on competitor ads monthly. Stay one step ahead.
Consider advanced AI: By month 6, consider letting Claude generate ad variations automatically every week (instead of monthly). The system is now confident enough.
Cost warning: Your Gemini API bill will grow as you annotate more videos. Budget $200–400/month for API costs once you're at 50+ active ads being analyzed monthly. Claude Code calls are minimal ($5–20/month). Meta ads, of course, depend on your spend.
Success metrics to track: (1) Average ROAS across portfolio (target: 3x+ by month 3). (2) Number of ads hitting 5x+ ROAS (target: 3–5 by month 3). (3) Cost per lead (should drop 40–60% by month 3). (4) Volume of qualified leads (should increase 100%+). (5) Rubric accuracy (score vs actual ROAS—should be 85%+ correlated by month 2).
Final note: This system works because it's honest. You're not guessing. You're not copying someone else's template. You're learning from your actual audience, your actual data, your actual market. That's why it compounds.