name: fb-ads-creative description: When the user wants to generate Facebook/Instagram ad creatives at scale. Also use when the user mentions "fb ads," "facebook ads," "ad creative," "hormozi style," "meta ads," "ad hooks," or "bulk ad variations."
FB Ads Creative Generator
Generate Hormozi/School-style Facebook ad creatives at scale. Produce 60+ hooks, full ad copy variations, and image specifications in a single session.
This skill teaches a systematic 4-step process for generating high-converting ad creative using AI. It is methodology-focused: everything here works with Claude, ChatGPT, or any LLM -- no custom tooling required.
Claude.ai Quick Start
Copy this entire block into a Claude.ai Project's custom instructions (or paste at the start of any conversation). It teaches Claude the full Hormozi/School ad creative methodology.
You are an elite performance marketer and direct-response copywriter. You specialize in
Hormozi/School-style Facebook and Instagram ad creative -- the white-background, black-text,
"I feel personally attacked" style that stops the scroll.
Your process follows 4 steps. Execute all 4 in order when given an avatar.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 1: AVATAR DEEP DIVE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Before writing anything, define the avatar in detail:
- Who are they? (role, company size, revenue range)
- What keeps them up at 2am? (specific fears, not generic worries)
- What have they already tried that failed?
- What would they pay anything to fix right now?
- What embarrasses them that they won't admit publicly?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 2: PAIN POINT MINING (30 pain points)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Generate 30 pain points. Each MUST include:
- A specific number, timeline, or measurable outcome
- Emotional specificity (not "struggling" -- HOW are they struggling?)
- A situation the avatar would recognize from their own life
GOOD: "You've burned through $15K in ad spend this month with a 0.8x ROAS and your
CFO is asking why marketing headcount grew 40% while pipeline shrank."
BAD: "Your ads aren't performing well." (vague, no numbers, no emotion)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 3: HOOK GENERATION (60 hooks -- 2 per pain point)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
For each pain point, write 2 hooks using these formulas (vary them):
Formula 1 — The Callout:
"If you're a [specific avatar] who [specific pain with numbers]..."
Formula 2 — The Uncomfortable Truth:
"Most [avatars] don't realize that [counterintuitive insight]..."
Formula 3 — The Timeline:
"[X] months ago, you [action]. You're still [same painful situation]..."
Formula 4 — The Comparison:
"Your competitors are [achieving X] while you're still [stuck at Y]..."
Formula 5 — The Question:
"Why does your [metric] drop every time you try to [scale tactic]?"
Formula 6 — The Confession:
"Nobody talks about this, but [uncomfortable industry truth]..."
Score every hook on two dimensions:
- Specificity (1-10): How precisely does this target the avatar?
- Emotional Impact (1-10): How much does this sting?
Output all 60 hooks in a table: Hook ID | Hook Text | Formula Used | Specificity | Emotional Impact
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STEP 4: AD COPY + IMAGE TEXT (for top 10 hooks)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Sort hooks by combined score (specificity + emotional impact). Take the top 10.
For each, write:
- Primary text (max 125 characters) — the ad body copy
- Headline (max 40 characters) — appears below the image
- Description (max 30 characters) — smaller text below headline
- CTA button recommendation (Learn More, Sign Up, Get Offer, etc.)
- Image text — the exact text for a white-background ad image (keep under 20 words,
must be readable on a phone screen)
Use these copy frameworks (rotate among the top 10):
- PAS (Pain → Agitate → Solve)
- BAB (Before → After → Bridge)
- Social Proof Lead ("We helped [X type of client] achieve [Y result]")
Quality rules (non-negotiable):
- Every hook must be specific to THIS avatar -- not generic motivational copy
- Pain points must include numbers, timelines, or measurable outcomes
- No fabricated testimonials, case studies, or performance claims
- All copy must pass brand safety review (no fear-mongering, no health claims)
- Image text must be readable at 375px mobile width
My avatar: [DESCRIBE YOUR TARGET AVATAR HERE -- include role, company size, revenue,
and the specific problem they're trying to solve]
The 4-Step Process
This is the core methodology. Each step builds on the previous one.
Step 1: Avatar Definition
A great ad campaign starts with a painfully specific avatar. "Small business owners" is not an avatar. "Plumbing company owners in the $500K-$2M range who've tried Google Ads and got burned" is an avatar.
Avatar components:
- Role: Job title, decision-making authority
- Company profile: Industry, revenue range, team size, growth stage
- Current situation: What they've tried, what failed, what they're doing now
- Emotional state: Frustrated, overwhelmed, skeptical, desperate, cautious
- Secret fears: What they won't post on LinkedIn but think about at 2am
Example avatar brief:
Marketing agency owners doing $50K-$200K MRR. They've been stuck at the same revenue for 6+ months. They've tried hiring more account managers, raising prices, and running their own ads, but nothing moved the needle. They're working 60-hour weeks, handling client escalations personally, and watching competitors with worse work land bigger accounts. They're starting to wonder if they should just go back to freelancing.
The more specific your avatar, the higher your hook scores will be. Every vague avatar produces vague hooks.
Step 2: Pain Point Mining
Generate 30 pain points for the avatar. The goal is emotional specificity -- you want the reader to think "how do they know this about me?"
Pain point anatomy:
- The situation (what's happening)
- The number (how bad it is, quantified)
- The emotion (how it feels)
- The timeline (how long it's been happening)
Strong pain points (with all 4 elements):
- "You've been stuck at $80K MRR for 8 months and every 'growth hack' you've tried added maybe $2K before plateauing"
- "Your best client -- 30% of revenue -- just asked for a 'competitive review' of their contract, and you know exactly what that means"
- "You hired a $120K/year marketing director 4 months ago and they haven't produced a single campaign that beat your scrappy in-house stuff"
Weak pain points (missing elements):
- "Your business isn't growing" (no number, no emotion, no timeline)
- "You need better marketing" (no situation, no specificity)
- "Things are tough right now" (no avatar connection at all)
Step 3: Hook Generation
Generate 2 hooks per pain point = 60 hooks total. Use the hook formulas below (rotate among them for variety).
Step 4: Ad Copy and Image Specifications
Take the top 10 hooks (highest combined specificity + emotional impact score) and write full ad copy for each. See the "Ad Copy Frameworks" section below for the three frameworks to use.
Hook Generation Framework
Hook Formulas
Use these 6 formulas. Rotate among them so your ad set has variety.
Formula 1 -- The Callout (Hormozi signature) Pattern: "If you're a [specific avatar] who [specific pain with numbers]..."
If you're an agency owner who's been stuck at $50K MRR for 6+ months
and you've already tried hiring, price increases, and new services...
Formula 2 -- The Uncomfortable Truth Pattern: "Most [avatars] don't realize that [counterintuitive insight]..."
Most agency owners don't realize that adding more services is actually
what's keeping them stuck at $80K MRR.
Formula 3 -- The Timeline Pattern: "[X] months ago, you [action]. You're still [same painful situation]..."
6 months ago you hired a marketing director at $120K/year.
You're still doing the same revenue. She's still "building the foundation."
Formula 4 -- The Comparison Pattern: "Your competitors are [achieving X] while you're still [stuck at Y]..."
Your competitors are closing $30K/mo retainers while you're still
chasing $5K projects and wondering what they know that you don't.
Formula 5 -- The Question Pattern: "Why does your [metric] drop every time you try to [scale tactic]?"
Why does your profit margin shrink every time you try to grow past
$100K MRR? You add people, you add overhead, but revenue stays flat.
Formula 6 -- The Confession Pattern: "Nobody talks about this, but [uncomfortable industry truth]..."
Nobody talks about this, but most $100K MRR agencies are less
profitable than a solo consultant billing $300/hr.
Scoring Every Hook
Every hook gets two scores:
Specificity (1-10): How precisely does this target the avatar?
- 1: Could apply to literally anyone ("Want more success?")
- 5: Mentions the industry but nothing else specific ("Agency owners struggle with growth")
- 10: Avatar feels personally called out with their exact numbers and situation
Emotional Impact (1-10): How much does this sting?
- 1: Mild observation, no emotional charge
- 5: Frustration, moderate annoyance
- 10: Existential threat, identity-level pain, fight-or-flight response
The top 10 hooks for ad copy should have a combined score of 14+ (out of 20).
Hook Style Guide
Scoring Rubric with Examples
Use this rubric to evaluate every hook. Three examples at each level.
Weak (Score 1-3) -- Generic, Could Apply to Anyone
| Hook | Specificity | Emotional | Why It's Weak |
|---|---|---|---|
| "Want to grow your business faster?" | 1 | 1 | Zero specificity. Applies to every human. No pain. |
| "Are you ready to take your marketing to the next level?" | 2 | 1 | "Next level" is meaningless. No avatar, no pain. |
| "Struggling with your business? We can help." | 2 | 2 | Which business? What struggle? This is a blank template. |
What makes hooks weak: No numbers, no timeline, no specific situation. Could be slapped on any ad for any product. The reader scrolls past because it doesn't describe THEIR problem.
Medium (Score 4-6) -- Industry-Specific but Still Broad
| Hook | Specificity | Emotional | Why It's Medium |
|---|---|---|---|
| "Agency owners: tired of unpredictable revenue?" | 5 | 4 | Mentions agency owners (good), but "unpredictable revenue" is vague. What's the number? |
| "If you're running a SaaS company and struggling with churn..." | 5 | 5 | Identifies avatar and problem, but no numbers. How much churn? Since when? |
| "Most e-commerce brands waste money on ads that don't convert." | 6 | 4 | Specific to e-commerce, mentions a real problem, but lacks emotional specificity. How much money? What happened? |
What makes hooks medium: They identify the right audience and a real problem, but lack the numerical specificity and emotional depth that make someone stop scrolling. These hooks get clicks but not conversions.
Strong (Score 7-10) -- Avatar Feels Personally Called Out
| Hook | Specificity | Emotional | Why It's Strong |
|---|---|---|---|
| "If you're an agency owner stuck at $80K MRR for 6+ months and you've already tried hiring a sales rep, raising prices, and adding new services..." | 9 | 8 | Exact revenue, exact timeline, lists the exact things they've tried. They HAVE tried all three. |
| "You've spent $43K on a media buyer who just told you 'the algorithm changed' for the third time this quarter." | 9 | 9 | Specific dollar amount, specific excuse they've heard, specific timeline. Triggers anger and recognition simultaneously. |
| "Your best client -- the one paying $15K/mo -- just asked to 'revisit the contract' and you already know your pipeline is empty." | 10 | 9 | Hits two fears at once: losing their anchor client AND having no replacement. The parenthetical "(the one paying $15K/mo)" makes it feel like you're reading their P&L. |
What makes hooks strong: Specific numbers the avatar recognizes from their own business. Situations they've actually experienced. Emotions they've actually felt. The reader's internal reaction is "wait, are they talking about ME?"
Ad Copy Frameworks
For the top 10 hooks, write full ad copy using these three frameworks. Rotate among them for variety (use each one 3-4 times across your top 10).
Framework 1: PAS (Pain - Agitate - Solve)
Best for: Hooks that lead with a sharp pain point.
Structure:
- Primary Text (max 125 chars): State the pain, twist the knife, hint at the solution
- Headline (max 40 chars): The transformation or outcome
- Description (max 30 chars): Urgency or social proof
- CTA: Learn More or Get Offer
Complete example:
Hook: "If you're an agency owner stuck at $80K MRR for 6+ months..."
Primary Text: You've tried hiring, new services, and price increases. Nothing moved the needle. Here's what $200K+ agencies do differently.
Headline: Break the $100K MRR ceiling
Description: Free strategy session
CTA: Learn More
Image Text: "STUCK AT $80K MRR? Here's why."
Framework 2: BAB (Before - After - Bridge)
Best for: Hooks that paint a transformation picture.
Structure:
- Primary Text (max 125 chars): Describe before state, describe after state, name the bridge
- Headline (max 40 chars): The "after" state as a benefit
- Description (max 30 chars): How to get there
- CTA: Sign Up or Learn More
Complete example:
Hook: "6 months ago you hired a marketing director at $120K/year. You're still doing the same revenue."
Primary Text: Before: $120K/yr hire, same revenue. After: 3 clients added in 60 days using this system. No new hires needed.
Headline: 3 new clients in 60 days
Description: See the system
CTA: Learn More
Image Text: "$120K hire. Same revenue. Sound familiar?"
Framework 3: Social Proof Lead
Best for: When you have real results to reference (never fabricate).
Structure:
- Primary Text (max 125 chars): Lead with a real result, then connect it to the reader's situation
- Headline (max 40 chars): The result as a headline
- Description (max 30 chars): Credibility marker
- CTA: Get Offer or Sign Up
Complete example:
Hook: "Your competitors are closing $30K/mo retainers while you're chasing $5K projects."
Primary Text: We helped 47 agency owners go from $5K projects to $20K+ retainers in 90 days. Same team. Different positioning.
Headline: From $5K to $20K+ retainers
Description: 47 agencies. 90 days.
CTA: Get Offer
Image Text: "$5K projects --> $20K retainers. 90 days."
Important: Only use the Social Proof Lead when you have genuine, verifiable results. Never fabricate case studies, client counts, or outcomes for ad copy.
Multi-Platform Adaptation
The core methodology produces Meta (Facebook/Instagram) ad creative. Here is how to adapt the output for other platforms.
Meta (Facebook / Instagram)
This is the native output format. No adaptation needed.
| Element | Spec |
|---|---|
| Primary text | Max 125 characters (before "See More" truncation) |
| Headline | Max 40 characters |
| Description | Max 30 characters |
| Image (feed) | 1080 x 1080 px |
| Image (story) | 1080 x 1920 px |
| Image (landscape) | 1200 x 628 px |
| Tone | Direct, conversational, confrontational. First person "you." |
| Best format | Text-on-white static image. UGC-style video. |
Google Ads (Responsive Display + Search)
| Element | Spec |
|---|---|
| Short headline | Max 30 characters |
| Long headline | Max 90 characters |
| Description | Max 90 characters |
| Image | 1200 x 628 px (landscape), 1200 x 1200 (square) |
| Tone | More professional, benefit-driven. Less confrontational than Meta. Google disapproves overly aggressive language. |
| Adaptation | Shorten hooks to 90-char headlines. Replace "If you're a..." with benefit statements. Remove rhetorical questions (Google prefers direct statements). |
Example adaptation:
- Meta hook: "If you're an agency owner stuck at $80K MRR for 6+ months..."
- Google headline: "Break Past $80K MRR -- Proven Agency Growth System"
- Google description: "47 agencies scaled past $100K MRR in 90 days. Get the strategy free."
LinkedIn Ads (Sponsored Content)
| Element | Spec |
|---|---|
| Introductory text | Max 600 characters (150 before truncation) |
| Headline | Max 200 characters (70 recommended) |
| Description | Max 300 characters |
| Image | 1200 x 628 px |
| Tone | Professional, peer-to-peer. Replace "you're stuck" with "many [role]s face..." LinkedIn audiences are more skeptical of aggressive copy. |
| Adaptation | Use Formula 2 (Uncomfortable Truth) and Formula 6 (Confession) most -- they work well for LinkedIn's thought-leadership culture. Avoid Formula 1 (Callout) since it feels too sales-y for the platform. |
Example adaptation:
- Meta hook: "If you're an agency owner stuck at $80K MRR for 6+ months..."
- LinkedIn: "The uncomfortable truth about agency growth: most firms plateau at $80-100K MRR -- not because of market conditions, but because of a structural problem in how they sell."
TikTok Ads
| Element | Spec |
|---|---|
| Video length | 15-60 seconds (21-34 seconds is the sweet spot) |
| Hook window | First 2-3 seconds must stop the scroll |
| Text overlay | Max 10-15 words on screen at any time |
| Caption | Max 150 characters recommended |
| Tone | Raw, unpolished, authentic. TikTok audiences punish anything that "looks like an ad." UGC or talking-head format. |
| Adaptation | Use hooks as the opening spoken line in a video script. Formula 3 (Timeline) and Formula 5 (Question) convert best on TikTok because they create curiosity loops. |
Example adaptation:
- Meta hook: "6 months ago you hired a marketing director at $120K/year..."
- TikTok script opening: [Person looking at camera] "I hired a $120K marketing director six months ago. Want to know how much revenue she's added? ...Zero. Let me tell you what I did instead."
YouTube Ads (Pre-Roll / In-Stream)
| Element | Spec |
|---|---|
| Hook window | First 5 seconds (before "Skip Ad" appears) |
| Recommended length | 30-90 seconds for pre-roll, up to 3 min for in-stream |
| Headline (companion banner) | Max 25 characters |
| Description | Max 35 characters |
| Tone | Educational, story-driven. YouTube audiences expect more depth than Meta or TikTok. |
| Adaptation | Use hooks as the first 5-second spoken line. Follow with a 30-second version of the PAS or BAB framework spoken aloud. Formula 4 (Comparison) and Formula 6 (Confession) work well because they create "I need to hear the rest" tension. |
Example adaptation:
- Meta hook: "Your competitors are closing $30K/mo retainers..."
- YouTube script (first 5 sec): "Your competitors are signing $30K-a-month retainers. You're still chasing $5K projects. Here's exactly what they're doing differently -- and it has nothing to do with their service quality."
Creative Testing Strategy
A week-by-week framework for testing AI-generated ad creative. This process assumes you have at least 10 hook variations ready to test.
Week 1: Launch and Validate (Days 1-7)
Setup:
- Select your top 10 hooks (highest combined specificity + emotional impact scores)
- Create one ad per hook in a single campaign
- Use the same audience, same landing page, same offer for all 10 -- only the creative changes
- Budget: $5-10/day per ad ($50-100/day total)
- Optimization event: Link clicks or landing page views (not conversions yet -- you need volume for statistical significance)
Daily check (takes 2 minutes):
- Which hooks have CTR above 1.5%? (These are promising)
- Which hooks have CTR below 0.8%? (These are candidates for killing)
- Which hooks have high CTR but low relevance score? (Clickbait risk -- check landing page alignment)
Kill rules (after 1,000 impressions per ad):
- CTR below 0.8%: Kill immediately
- CTR between 0.8-1.2%: Give it 2 more days
- Cost per click 3x higher than best performer: Kill immediately
- Relevance/quality score below 5: Kill and review why
Statistical significance note: You need at least 1,000 impressions per ad before making kill/scale decisions. At $5-10/day, most ads reach this threshold in 2-3 days. Do not make decisions on Day 1 data.
Week 2: Scale Winners, Iterate Losers (Days 8-14)
Scale winners:
- Take your top 3 CTR performers from Week 1
- Increase budget by 20-30% (not more -- Facebook's algorithm destabilizes with large budget jumps)
- Duplicate winning ads into a new ad set with a broader but related audience
- Monitor for 48 hours before making further changes
Iterate on winners:
- For each of the top 3 hooks, create 3-5 new variations:
- Same hook, different ad copy framework (swap PAS for BAB)
- Same pain point, different hook formula (swap Callout for Uncomfortable Truth)
- Same hook, different image text (shorter/longer, different emphasis)
- Same hook, different CTA (Learn More vs. Get Offer)
- Launch these new variations at $5-10/day alongside the originals
Analyze losers:
- Review hooks that were killed in Week 1
- Ask: was the pain point wrong, or was the hook formula wrong?
- If the pain point resonated (comments, reactions) but CTR was low, try a different formula
- If the pain point got no engagement at all, discard it
Week 3: Optimize and Expand (Days 15-21)
Optimize:
- You should now have 2-4 clear winning hooks with data
- Create all 3 image sizes for winners (feed, story, landscape) if you haven't already
- Write full ad copy variations for each winner (all 3 frameworks: PAS, BAB, Social Proof)
- Test video versions of top hooks (talking head reading the hook, then PAS/BAB script)
Expand audiences:
- Test winning creative against 2-3 new audience segments
- Create lookalike audiences from link clickers on winning ads
- Test retargeting audiences with the strongest emotional hooks
Benchmark:
- Compare AI-generated ads vs. any manually-created ads running in the same account
- Track: CTR, CPC, CPA, ROAS
- Document which hook formulas performed best for this avatar (this informs future campaigns)
Metrics to Track
| Metric | What It Tells You | Good Benchmark |
|---|---|---|
| CTR (link) | Hook quality -- are people clicking? | >1.5% (Meta feed) |
| CPC | Cost efficiency of the hook | <$2.00 (varies by industry) |
| CPM | Audience quality + relevance | <$15 (varies by industry) |
| Relevance score | Platform thinks the ad matches the audience | >6/10 |
| Hook-through rate (video) | First 3 seconds retention | >65% |
| CPA | Full-funnel efficiency | Varies (set your own target) |
| ROAS | Revenue return | >3x for cold traffic |
Image and Visual Guidelines
Text-on-White Static Images (Hormozi/School Style)
This is the signature format: white background, black text, nothing else. It works because it looks like a text message or note, not an ad.
Design rules:
- Background: Pure white (#FFFFFF). No gradients, no patterns, no brand colors.
- Text color: Pure black (#000000). No gray, no colored text.
- Font: Bold sans-serif (Arial Bold, Helvetica Bold, Inter Bold). No script fonts, no serifs.
- Font size: Large enough to read WITHOUT tapping to expand. Test at 375px width (iPhone SE). If you squint, the text is too small.
- Text length: Maximum 15-20 words. If it needs a paragraph, it's too long for an image.
- Alignment: Center-aligned, vertically and horizontally centered on the image.
- Padding: At least 15% margin on all sides. Text should not touch the edges.
- No logos, no imagery, no icons. The text IS the creative.
Three sizes to produce per hook:
| Size | Dimensions | Placement |
|---|---|---|
| Feed (square) | 1080 x 1080 px | Facebook/Instagram feed |
| Story (vertical) | 1080 x 1920 px | Instagram/Facebook stories |
| Landscape | 1200 x 628 px | Facebook feed, Google Display |
Example image text (strong):
STUCK AT $80K MRR?
Here's why adding more
services won't fix it.
Example image text (weak -- too long):
If you're an agency owner who has been trying to grow
past $80K MRR for the last 6 months and you've already
tried hiring more people, adding new services, and
raising your prices, here's what you need to know about
why those strategies aren't working for you.
Video Hook Best Practices
For video ads (TikTok, Reels, YouTube pre-roll), the first 3 seconds determine everything.
First 3 seconds must:
- Deliver the hook -- the exact text from your hook table, spoken aloud
- Show movement (hand gesture, turning to camera, picking up a prop)
- NOT show a logo, intro animation, or brand bumper
- NOT start with "Hey guys" or "So today I want to talk about..." -- start with the pain
Format:
- Selfie/front-facing camera (UGC style)
- Natural lighting, no studio setup
- Casual clothing (not a suit, not a branded polo)
- Subtitles/captions burned in (85% of Meta video is watched without sound)
Script structure (30-60 seconds):
- Hook (0-3 sec): Pain point hook from your table
- Agitate (3-15 sec): Expand on the pain, add a personal anecdote or common scenario
- Pivot (15-20 sec): "Here's what I learned..." or "We found that..."
- Proof (20-35 sec): Quick result or insight (keep it credible)
- CTA (35-45 sec): "Link in bio" or "Comment [keyword] and I'll send it"
UGC-Style Guidelines
User-generated content style ads consistently outperform polished creative on Meta and TikTok.
What "UGC style" means for ads:
- Shot on a phone, not a camera
- One person talking to camera
- No b-roll, no transitions, no motion graphics
- Casual setting (home office, car, walking outside)
- Real reactions, imperfect delivery (don't over-rehearse)
What it does NOT mean:
- It does not mean sloppy or unprofessional
- Audio must be clear (use a lapel mic or AirPods)
- Lighting must be adequate (face a window)
- The script must be tight even if delivery is casual
Output Format
Here is what this skill produces. Use this structure when generating ad creative.
Campaign Summary
Campaign: [Avatar Name] - [Date]
Avatar: [Full avatar description]
Pain Points Generated: [Count]
Hooks Generated: [Count]
Top 10 Hooks Selected: Yes
Ad Copy Written: [Count] variations
Image Specs: [Count] hooks x 3 sizes = [Total] images
Hooks Table
| # | Hook ID | Hook Text | Formula | Spec | Emot | Combined |
|---|---------|-----------|---------|------|------|----------|
| 1 | H001 | If you're an agency owner stuck at $80K MRR... | Callout | 9 | 8 | 17 |
| 2 | H002 | Most agency owners don't realize that adding... | Truth | 8 | 7 | 15 |
| ...
Ad Copy Variations (for each top 10 hook)
Hook ID: H001
Hook: "If you're an agency owner stuck at $80K MRR for 6+ months..."
Framework: PAS
Primary Text (125 chars): You've tried hiring, new services, price increases. Nothing worked. Here's what $200K+ agencies do differently.
Headline (40 chars): Break the $100K MRR ceiling
Description (30 chars): Free strategy session
CTA: Learn More
Image Text (feed): STUCK AT $80K MRR? / Here's why.
Image Text (story): STUCK AT / $80K MRR? / Here's why adding more / services won't fix it.
Image Text (landscape): STUCK AT $80K MRR? Here's why adding more services won't fix it.
Upload Checklist
[ ] hooks.csv exported with columns: Hook ID, Primary Text, Headline, Description, CTA
[ ] Image files named: {hook_id}_{size}.png (e.g., H001_feed.png)
[ ] Top 10 hooks reviewed manually for brand safety
[ ] Character limits verified (primary: 125, headline: 40, description: 30)
[ ] Images tested at mobile viewport (375px)
[ ] No fabricated testimonials or unverifiable claims
Quality Gates
Every campaign must pass these checks before any creative goes live.
Hook Quality
- Every hook is specific to the defined avatar (not generic motivational copy)
- Every pain point includes at least one number, timeline, or measurable outcome
- Hooks use at least 3 different formulas (not all Callout pattern)
- Top 10 hooks have a combined specificity + emotional score of 14+
- No two hooks are substantially the same pain point reworded
Ad Copy Quality
- Primary text fits within 125 characters
- Headline fits within 40 characters
- Description fits within 30 characters
- At least 2 of the 3 copy frameworks (PAS, BAB, Social Proof) are used
- Social Proof Lead framework only used with verifiable results
- CTA matches the offer (don't use "Sign Up" if the landing page is a blog post)
Brand Safety
- No fabricated testimonials, case studies, or client names
- No income claims or guarantees ("you WILL make $X")
- No health-related claims
- No fear-mongering beyond legitimate business pain
- No competitor bashing by name
- All claims are defensible if challenged
Image Quality
- Text-on-white images are readable at 375px mobile width
- Image text is under 20 words
- All 3 sizes produced (feed 1080x1080, story 1080x1920, landscape 1200x628)
- Font is bold sans-serif, center-aligned
- No logos, watermarks, or decorative elements on text-on-white images
Platform Compliance
- Meta: Text covers less than 20% of image area (Meta's old rule is gone but less text still performs better)
- Google: No excessive capitalization, no misleading claims
- LinkedIn: Professional tone, no aggressive/confrontational language
- TikTok: First 3 seconds are hook-only, no brand intros
When to Use This Skill
Use this skill when you need to:
- Generate Facebook/Instagram ad creatives at scale
- Create Hormozi-style text-on-white ads
- Produce bulk ad hook variations for split testing
- Build a full campaign creative package from a single avatar definition
- Adapt ad hooks across Meta, Google, LinkedIn, TikTok, and YouTube
Keywords that trigger this skill: "fb ads", "facebook ads", "ad creative", "hormozi style", "meta ads", "ad hooks", "bulk ad variations", "school style ads"
Parameters
- Avatar (required): Detailed description of the target audience
- Include: role, company size, revenue range, specific problem
- Example: "Agency owners doing $50K-$200K MRR, struggling with lead generation"
- Count (optional): Number of pain points to generate (default: 30)
- Each pain point generates 2 hooks = 60 hooks total at default
Example Avatars
"Marketing agency owners doing $50K-$200K MRR who are stuck and can't
break through to the next level. They've tried hiring, adding services,
and raising prices."
"SaaS founders at $500K ARR struggling with churn above 8% monthly.
They've tried onboarding sequences, customer success hires, and feature
launches but nothing moves retention."
"E-commerce store owners doing $1M+ revenue who are tired of rising
ad costs. Their ROAS has dropped from 4x to 1.8x in the last 6 months
and they're burning cash on Meta ads that used to print money."
"B2B consultants billing $200-500/hr who want to productize their
expertise but don't know how to sell a $5K package instead of hourly
time. They're trading time for money and can't scale."
Related Skills
- paid-ads: Full campaign strategy, targeting, bidding, and optimization beyond creative
- copywriting: Landing page copy that converts the traffic these ads generate
- page-cro: Conversion rate optimization for the post-click experience
- ab-test-setup: Rigorous A/B testing framework for ad experiments
- social-content: Organic social content that complements paid campaigns
Attribution
Built on the original AI marketing skills framework by Corey Haines. Enhanced with operational depth and quality scoring by Single Grain, the agency behind Uber, Amazon, Salesforce, and hundreds of growth-stage companies.