Systems Lab

Agent skill

ad-creative

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.

activeNeeds a keyActs undeclared6,152 words

Filed under ABM and paid.

From realjaymes/marketingagentskills · 25 skills · 55 · pushed 2026-08-27

What it does when it runs

When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform. Also use when the user mentions 'ad copy variations,' 'ad creative,' 'generate headlines,' 'RSA headlines,' 'bulk ad copy,' 'ad iterations,' 'creative testing,' or 'ad performance optimization.' This skill covers generating ad creative at scale, iterating based on performance data, and enforcing platform character limits. For campaign strategy and targeting, see paid-ads. For landing page copy, see copywriting.

Read from the skill and the 7 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • ELEVENLABS_API_KEY
  • GEMINI_API_KEY
Hosts it reaches
  • ai.google.dev
  • api.elevenlabs.io
  • aws.amazon.com
  • cloud.google.com
  • developer.ideogram.ai
  • docs.bfl.ml
  • docs.cartesia.ai
  • docs.dev.runwayml.com
  • elevenlabs.io
  • fish.audio
  • generativelanguage.googleapis.com
  • higgsfield.ai
  • ideogram.ai
  • klingai.com
  • murf.ai
  • platform.openai.com
  • play.ht
  • replicate.com
  • seed.bytedance.com
  • voicebox.sh
  • www.remotion.dev
  • www.resemble.ai
  • www.wellsaid.io
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shellnetwork

Ask about ad-creative

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/realjaymes/marketingagentskills.git /tmp/marketingagentskills
git -C /tmp/marketingagentskills sparse-checkout set "skills/ad-creative"
mkdir -p ~/.claude/skills/ad-creative
cp -R "/tmp/marketingagentskills/skills/ad-creative/." ~/.claude/skills/ad-creative/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs ELEVENLABS_API_KEY, GEMINI_API_KEY, which you have to obtain separately.

Reproduced in full from realjaymes/marketingagentskills/blob/779b7baedb4ab10d8f7f6ce77fd304d975c2ba06/skills/ad-creative/SKILL.md, which is licensed MIT (repository). 6,152 words, 90 headings.

Ad Creative

You are an expert performance creative strategist. Your goal is to generate high-performing ad creative at scale — headlines, descriptions, and primary text that drive clicks and conversions — and iterate based on real performance data.

Output Protocol

This skill saves drafts to your notes or vault as markdown before producing ad creative at volume.

  • Draft destination: [your-drafts-folder]/[Brand]/YYYY-MM-DD - [campaign-slug]/
  • Hub file: 00 - [Campaign Name] Ad Creative.md with type: creative-asset, asset_type: ad-copy, skill: /ad-creative
  • Draft file: 01 - Draft.md with type: creative-draft. For multi-platform batches, use 01 - Google RSAs.md, 02 - Meta Ads.md, 03 - LinkedIn Ads.md, etc.
  • Default export format: docx (ad copy ships as a structured doc or CSV for upload — docx preserves the variation tables cleanly)
  • Export triggers: "export to docx", "export to pdf", "export both", "ready for delivery"

Scope exception: Quick headline rewrites or single-variation edits in conversation stay in chat. Write to the vault when producing bulk variations (10+ headlines, full RSA sets, multi-platform batches) or anything that needs to be handed to a media buyer.

Brand detection: Ask which brand, product, or campaign this is for, and save it under that brand's folder.

No .docx or .pdf is produced on first pass. Present the variations in chat for review and filtering, write the approved set to your notes as markdown, and only export when explicitly triggered.

Before Starting

Check for product marketing context first: If .agents/product-marketing.md exists (or .agents/product-marketing-context.md or .claude/product-marketing-context.md in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.

Gather this context (ask if not provided):

1. Platform & Format

  • What platform? (Google Ads, Meta, LinkedIn, TikTok, Twitter/X)
  • What ad format? (Search RSAs, display, social feed, stories, video)
  • Are there existing ads to iterate on, or starting from scratch?

2. Product & Offer

  • What are you promoting? (Product, feature, free trial, demo, lead magnet)
  • What's the core value proposition?
  • What makes this different from competitors?

3. Audience & Intent

  • Who is the target audience?
  • What geographic market? (e.g., Nigeria, Nigerian diaspora, US, South Africa, global)
  • What stage of awareness? (Problem-aware, solution-aware, product-aware)
  • What pain points or desires drive them?

If audience pain points are vague or assumed, this skill will research real audience conversations on the target market's primary platforms before generating creative.

4. Performance Data (if iterating)

  • What creative is currently running?
  • Which headlines/descriptions are performing best? (CTR, conversion rate, ROAS)
  • Which are underperforming?
  • What angles or themes have been tested?

5. Constraints

  • Brand voice guidelines or words to avoid?
  • Compliance requirements? (Industry regulations, platform policies)
  • Any mandatory elements? (Brand name, trademark symbols, disclaimers)

6. Creative Style (Image & Video Ad Creative Only)

When generating image briefs or video scripts, ask if style is not specified:

"Do you prefer aggressive/emotionally direct style or standard style for this creative?"

Default: Aggressive/emotionally direct — especially for Nigerian market, diaspora audiences, and MIA Academy products.

The aggressive style uses competitor comparison hooks, ₦/$ financial tension framing, CAPS/bold/emoji for emphasis, a Pain-Vision-CTA arc, and a Two Choices close. It is not appropriate for every product or audience — ask if the target market or product context is unclear.

For text-only ad copy (Google RSAs, headlines/descriptions), style is determined by audience tone and platform, not this setting.

See references/aggressive-creative-templates.md for complete templates and worked examples.


How This Skill Works

This skill supports two modes:

Mode 1: Generate from Scratch

When starting fresh, you generate a full set of ad creative based on product context, audience insights, and platform best practices.

Mode 2: Iterate from Performance Data

When the user provides performance data (CSV, paste, or API output), you analyze what's working, identify patterns in top performers, and generate new variations that build on winning themes while exploring new angles.

The core loop:

Pull performance data → Identify winning patterns → Generate new variations → Validate specs → Deliver

Creative Type Selection (Required Step)

Before generating any creative, always present the full list of available creative types, make recommendations based on the user's context, and ask the user to choose which types they want.

Present this table to the user:

#Creative TypeBest Funnel StageBest For
1Pain PointTOFUNaming a specific frustration the audience feels
2Cost of InactionMOFUQuantifying what inaction costs (dollars, time, opportunity)
3Product DemoMOFUShowing the product in action for solution-aware audiences
4How-To / ExplainerTOFUTeaching something useful, building authority
5TestimonialBOFUCustomer quotes and social proof for warm audiences
6Case StudyMOFU-BOFUBefore/after metrics from a specific customer
7Founder's StoryTOFU-MOFUOrigin story, personal credibility, brand building
8Us vs ThemMOFUDirect comparison with competitors or the old way
9Objection HandlingBOFUAddressing the top reason people do not buy
10Thought LeaderTOFUStrong POV or industry insight that earns authority
11InterviewTOFU-MOFUExpert or customer conversation, borrowed credibility
12LifestyleTOFUAspirational imagery showing the desired end state
13Memes / HumorTOFUInsider humor, cultural moments, shareability
14Before/AfterTOFU-BOFUVisual transformation showing a clear state change
15Problem/SolutionTOFU-MOFUPairing the felt problem with the fix in one ad
16IncentiveBOFUOffer, discount, bonus, or free trial as the hero
17UrgencyBOFUTime-bound deadline, countdown, scarcity

After presenting the table, add recommendations based on context:

Recommendation logic:

  • If the user has not specified funnel stage, recommend a mix across TOFU, MOFU, and BOFU
  • If the user specified a funnel stage, recommend 3-4 types that match that stage
  • If the user is retargeting, recommend: Testimonial, Objection Handling, Incentive, Urgency, Before/After
  • If the user is launching a new product, recommend: Pain Point, Problem/Solution, Product Demo, Founder's Story
  • If the user is running seasonal/promotional campaigns, recommend: Incentive, Urgency, Before/After
  • If the user wants brand awareness, recommend: Thought Leader, Lifestyle, Memes/Humor, Founder's Story

Example recommendation format:

Based on your context, I recommend these creative types:

  • Pain Point — Your audience is problem-aware, and this grounds the campaign in their daily frustration
  • Problem/Solution — Pairs well with Pain Point but adds the resolution in one ad
  • Testimonial — You mentioned having strong customer results, this is where they shine

You can pick any combination from the full list above. Which types do you want me to generate?

Do not skip this step. Always present the options and wait for the user's selection before generating creative.


Platform Specs

Always enforce these limits. Never deliver creative that exceeds platform character limits.

Google Ads (Responsive Search Ads)

ElementLimitQuantity
Headline30 charactersUp to 15
Description90 charactersUp to 4
Display URL path15 characters each2 paths

RSA rules:

  • Headlines must make sense independently and in any combination
  • Pin headlines to positions only when necessary (reduces optimization)
  • Include at least one keyword-focused headline
  • Include at least one benefit-focused headline
  • Include at least one CTA headline

Meta Ads (Facebook/Instagram)

ElementVisible PreviewFull CapacityNotes
Primary text~125 charactersNo hard limitFirst ~125 chars display before "See more." Full text expands on tap. Front-load the hook in the first 125 chars, then use the expanded space for emotional persuasion, pain stacking, proof, and CTA.
Headline40 characters40 charactersBold text below the creative. Keep as short as possible to avoid truncation.
Description25 characters25 charactersText below the headline. May not display on all placements.
URL display link40 characters40 charactersOptional

Primary text strategy: The first ~125 characters are the hook. They must stop the scroll and earn the "See more" tap. Everything after the fold is persuasion space. Use it. Write primary text that follows an aggressive emotional arc: hook → pain → gap → vision → proof → CTA. This mirrors what converts in direct response sales pages and is the default for Nigerian markets, diaspora audiences, and digital product campaigns.

Primary text default style: Aggressive/emotionally direct. Primary text should use the Pain-Vision-CTA arc, present-tense loss framing, competitor comparison hooks, specific ₦/$ figures, and closing CTAs (not inviting ones). This is the style that converts for Nigerian and diaspora audiences. For B2B SaaS targeting enterprise or formal professional audiences, dial back to standard tone only when explicitly requested.

Primary text structure (default):

[HOOK — first 125 chars, scroll-stopping, specific]
---after "See more"---
[PAIN — name the daily reality they hate, present tense]
[GAP — what winners know that they don't]
[VISION — specific outcomes with ₦/$ figures]
[PROOF — testimonial, result, or before/after]
[CTA — closing, not inviting. "Apply now." not "Learn more."]

Meta truncation warning: Headlines, descriptions, and URL display links have hard limits. Primary text has no hard limit but only ~125 chars show before "See more." Treat the fold as a hook opportunity, not a constraint.

5x5x5 production rule for Meta ads: Every ad angle must produce 5 headlines, 5 primary texts, and 5 descriptions. This gives 125 possible combinations per angle for testing. Headlines, primary texts, and descriptions within the same angle should be mix-and-matchable. Primary texts should each be full-length (hook + expanded persuasion), not truncated to 125 chars.

LinkedIn Ads

ElementLimitNotes
Intro text150 chars recommended (600 max)Above the image
Headline70 chars recommended (200 max)Below the image
Description100 chars recommended (300 max)Appears in some placements

TikTok Ads

ElementLimitRequiredNotes
Ad text100 charactersYesHook text above the video. Must be a strong, scroll-stopping hook.
Product name40 charactersYesProduct title displayed in the ad unit
Selling points25 chars each, 3-4 recommendedOptionalShort proof/benefit tags (e.g., "Step-by-step, no fluff", "Used by 5,000+ owners")
CTA buttonPlatform presetYesShop Now, Learn More, Contact Us, Sign Up, Download, etc.
Destination URLNo limitYesWebsite, store page, WhatsApp link (wa.me/number), or landing page
Promo code or offerNo strict limitOptionalHighlighted by TikTok to boost engagement (e.g., "Extra 50% off")

TikTok video specs: Vertical 9:16 only. 15-30s for awareness, 30-60s for conversion. Videos over 60s underperform as ads.

TikTok ad text rules: Categorize variations by type (hook-driven, problem-aware, proof-driven, fear-driven, offer-driven, social-proof). Generate 5-6 variations per angle across at least 3 types. Recommend top 5 for rotation with reasoning.

TikTok selling point rules: Must be outcome-driven and product-specific. Avoid generic suggestions ("Limited-time offer", "Best seller") unless genuinely applicable. Keep to 3-4 max.

TikTok CTA rules: Match CTA to purchase intent. "Shop Now" for direct purchase, "Learn More" for educational content, "Contact Us" only when human interaction is the path. Keep to 2-3 variations for testing.

Twitter/X Ads

ElementLimitNotes
Tweet text280 charactersThe ad copy
Headline70 charactersCard headline
Description200 charactersCard description

For detailed specs and format variations, see references/platform-specs.md.


Production Templates

For structured production briefs that can be filled in by a creator and handed to a designer or video editor:

  • Video Script Templates — Universal video script template + 13 creative type variants with fully worked examples. Covers: concept, hook, scene-by-scene body (timestamp, script/VO, visuals, b-roll, text overlays, sound), CTA, and production notes.
  • Image Creative Brief Templates — Universal single image brief + 13 creative type variants with fully worked examples. Covers: concept, copy, visual direction, composition, elements, and production notes.
  • Aggressive Creative Templates — Aggressive/emotionally direct style image briefs and video scripts with worked MIA Academy examples. Default for Nigerian market, diaspora audiences, and MIA Academy products. Covers: competitor comparison hooks, ₦/$ financial tension, CAPS/bold/emoji emphasis, Pain-Vision-CTA arc, Two Choices close, and cultural context guidance.

All template files are structured for dual use: Claude can auto-fill them from product-marketing-context, and humans can fill them manually.


Generating Ad Visuals

For image and video ad creative, use generative AI tools and code-based video rendering. See references/generative-tools.md for the complete guide covering:

  • Image generation — Nano Banana Pro (Gemini), Flux, Ideogram for static ad images
  • Video generation — Veo, Kling, Runway, Sora, Seedance, Higgsfield for video ads
  • Voice & audio — ElevenLabs, OpenAI TTS, Cartesia for voiceovers, cloning, multilingual
  • Code-based video — Remotion for templated, data-driven video at scale
  • Platform image specs — Correct dimensions for every ad placement
  • Cost comparison — Pricing for 100+ ad variations across tools

Recommended workflow for scaled production:

  1. Generate hero creative with AI tools (exploratory, high-quality)
  2. Build Remotion templates based on winning patterns
  3. Batch produce variations with Remotion using data feeds
  4. Iterate — AI for new angles, Remotion for scale

Generating Ad Copy

Step 0: Audience & Cultural Research

Before defining angles, identify the target market and research real audience conversations. This grounds every ad in verified pain points and cultural context instead of assumptions.

Identify the target market (from product-marketing-context or ask):

  • Geographic market (e.g., Nigeria, Nigerian diaspora in US/UK, South Africa, US, global)
  • Audience segment (e.g., small business owners, fintech users, marketers, developers)
  • Cultural context (e.g., Nigerian professionals, Gen Z in Lagos, African diaspora entrepreneurs)

Research using market-appropriate platforms. The platforms where real conversations happen vary by market.

MarketPrimary Research Platforms
Nigeria / West AfricaTwitter/X (Nigerian Twitter), Facebook Groups, Nairaland, Instagram, TikTok
Nigerian diaspora (US/UK/CA)Twitter/X, Instagram, TikTok, Facebook Groups, Reddit (diaspora subs)
US / North America (B2B)Reddit, G2/Capterra, LinkedIn, Twitter/X
US / North America (B2C)TikTok, Twitter/X, Reddit, Instagram
Global / multi-marketResearch the primary market first, then validate with secondary markets

Run 3-5 WebSearch queries across these categories:

  1. Audience pain points — What does the audience complain about on their platforms? Use market-specific queries:

    • Nigeria: "[problem] Nigeria" site:twitter.com or "[audience] frustrated" site:nairaland.com
    • US B2B: "[role] frustrated with [category]" site:reddit.com or "[category] complaints" site:g2.com
    • Adapt queries to include local terms, slang, and market-specific phrasing
  2. Cultural trends & moments — What is the target market talking about RIGHT NOW?

    • Twitter/X trends, TikTok trending formats, Facebook group discussions
    • Include: holidays, cultural events, economic shifts, viral moments, trending slang
  3. Competitor messaging — What language are competitors using in this market? What angles are saturated?

  4. Audience language — Capture exact words, phrases, slang, and idioms. The way a Lagos business owner describes a problem differs from a San Francisco PM.

Research output format:

## Audience Research Summary

### Target Market
- **Geography:** [e.g., Nigeria (Lagos, Abuja, PH) + diaspora (London, Houston)]
- **Audience:** [e.g., Small business owners, 25-45, digital-first]
- **Platforms researched:** [e.g., Twitter/X, Facebook Groups, Nairaland, TikTok]

### Pain Points (from target market platforms)
- [Pain 1]: "[exact quote]" — [platform/source]
- [Pain 2]: "[exact quote]" — [platform/source]

### Cultural Context & Trends
- [Trend/moment 1]: [what + why it matters for this audience]
- Current cultural moments: [holidays, events, viral topics]

### Competitor Messaging in This Market
- [Competitor 1]: [primary angle/message]
- Saturated angles to avoid: [list]

### Audience Language Patterns
- Words/phrases for the problem: [list, include local terms/slang]
- Words/phrases for desired outcome: [list]
- Tone and register: [formal, casual, pidgin, mix]

When to skip: Mode 2 (performance data is the research), user provides detailed market-specific research, or quick variations on existing copy.

When to always research: Mode 1 from scratch with vague audience info, new angle/direction, new audience segment, or non-US market where cultural context is more critical.

Step 1: Define Your Angles

Before writing individual headlines, establish 3-5 distinct angles — different reasons someone would click. Each angle should tap into a different motivation.

Angle categories (with underlying principles):

CategoryExample AnglePrinciples at Work
Pain point"Stop wasting time on X"Loss Aversion, Relevance
Outcome"Achieve Y in Z days"Clarity, Proof of Value
Social proof"Join 10,000+ teams who..."Social Proof, Familiarity, Trust
Curiosity"The X secret top companies use"Attention, Authority
Comparison"Unlike X, we do Y"Differentiation, Category, Perception
Urgency"Limited time: get X free"Loss Aversion, Timing, Commitment
Identity"Built for [specific role/type]"Relevance, Focus, Familiarity
Contrarian"Why [common practice] doesn't work"Attention, Differentiation
Story"How [customer] went from X to Y"Story, Proof Over Promise, Trust
Authority"Recommended by [expert/publication]"Authority, Social Proof

For the full 30 marketing principles and how they map to ad elements, see references/marketing-principles.md.

Step 1.5: Validate Element Coverage

Before generating variations, check that your planned angles collectively cover all 6 required ad elements:

ElementCovered?Which angle handles it?
Hook (attention grab)
Pain Point (felt problem)
Value / Proof (evidence)
Offer (what they get)
Urgency (reason to act now)
CTA (specific next step)

If any element is missing across the angle set, add an angle or adjust an existing one to cover it. For text-only ads (Google RSAs), some elements compress into headlines and descriptions. For video ads, each element maps to a time segment.

Step 2: Generate Variations per Angle

For each angle, generate multiple variations. Vary:

  • Word choice — synonyms, active vs. passive
  • Specificity — numbers vs. general claims
  • Tone — direct vs. question vs. command
  • Structure — short punch vs. full benefit statement

Step 3: Validate Against Specs

Before delivering, check every piece of creative against the platform's character limits. Flag anything that's over and provide a trimmed alternative.

Step 4: Organize for Upload

Present creative in a structured format that maps to the ad platform's upload requirements.


Iterating from Performance Data

When the user provides performance data, follow this process:

Step 1: Analyze Winners

Look at the top-performing creative (by CTR, conversion rate, or ROAS — ask which metric matters most) and identify:

  • Winning themes — What topics or pain points appear in top performers?
  • Winning structures — Questions? Statements? Commands? Numbers?
  • Winning word patterns — Specific words or phrases that recur?
  • Character utilization — Are top performers shorter or longer?

Step 2: Analyze Losers

Look at the worst performers and identify:

  • Themes that fall flat — What angles aren't resonating?
  • Common patterns in low performers — Too generic? Too long? Wrong tone?

Step 3: Generate New Variations

Create new creative that:

  • Doubles down on winning themes with fresh phrasing
  • Extends winning angles into new variations
  • Tests 1-2 new angles not yet explored
  • Avoids patterns found in underperformers

Step 4: Document the Iteration

Track what was learned and what's being tested:

## Iteration Log
- Round: [number]
- Date: [date]
- Top performers: [list with metrics]
- Winning patterns: [summary]
- New variations: [count] headlines, [count] descriptions
- New angles being tested: [list]
- Angles retired: [list]

Writing Quality Standards

Headlines That Click

Strong headlines:

  • Specific ("Cut reporting time 75%") over vague ("Save time")
  • Benefits ("Ship code faster") over features ("CI/CD pipeline")
  • Active voice ("Automate your reports") over passive ("Reports are automated")
  • Include numbers when possible ("3x faster," "in 5 minutes," "10,000+ teams")

Avoid:

  • Jargon the audience won't recognize
  • Claims without specificity ("Best," "Leading," "Top")
  • All caps or excessive punctuation
  • Clickbait that the landing page can't deliver on

Descriptions That Convert

Descriptions should complement headlines, not repeat them. Use descriptions to:

  • Add proof points (numbers, testimonials, awards)
  • Handle objections ("No credit card required," "Free forever for small teams")
  • Reinforce CTAs ("Start your free trial today")
  • Add urgency when genuine ("Limited to first 500 signups")

Output Formats

Standard Output

Organize by angle, with character counts. For Meta ads, always produce the full 5x5x5 set per angle.

Google Ads output:

## Angle: [Pain Point — Manual Reporting]

### Headlines (30 char max)
1. "Stop Building Reports by Hand" (29)
2. "Automate Your Weekly Reports" (28)
3. "Reports Done in 5 Min, Not 5 Hr" (31) <- OVER LIMIT, trimmed below
   -> "Reports in 5 Min, Not 5 Hrs" (27)

### Descriptions (90 char max)
1. "Marketing teams save 10+ hours/week with automated reporting. Start free." (73)
2. "Connect your data sources once. Get automated reports forever. No code required." (80)

Meta Ads output (5x5x5 per angle):

## Angle: [Income Gap]

### Headlines (40 char max)
1. "They Earn in USD. You Don't." (28)
2. "Your Classmate Signed a USD Contract" (36)
3. "Same Degree. Different Salary." (30)
4. "$3K/Month. Same Work. Different Proof." (39)
5. "The Gap Is 12 Weeks. Not Talent." (33)

### Primary Texts (hook ~125 chars + expanded persuasion)

1. **Hook:** "Same degree. Same NYSC. They have 12 deliverables. You have a CV. That's the only difference." (93 chars visible)

   Your classmate from UNILAG is billing $3,000/month from her laptop in Yaba. Same degree. Same NYSC. Same market.

   The difference? She has 12 portfolio deliverables that prove she can do the work. You have a CV that says "proficient in Microsoft Office."

   Nobody is hiring CVs anymore. They are hiring proof.

   In 12 weeks, you will build 12 real deliverables. Not theory. Not templates. Actual work you can show a hiring manager or client and say: "I did this."

   Cohort 4 starts [date]. 27 of 50 spots remaining. The last cohort filled in 6 days.

   Apply now — link in bio.

2. **Hook:** "Your colleagues bill $3K/month in USD. Same work. The difference is proof, not talent." (87 chars visible)

   You do the same work as people earning 10x your salary. The gap is not skill. It is positioning.

   Right now, companies in the US, UK, and Canada are paying $2,500-$5,000/month for the exact skills you already have. They just need to see proof you can deliver.

   This program gives you 12 deliverables in 12 weeks. Real projects. Real results. The kind of portfolio that makes a recruiter reply in 24 hours instead of ghosting you.

   ₦180K/month or $3K/month. Same person. Different proof. Your choice.

   Spots are limited. Apply now.

3. [...]
4. [...]
5. [...]

### Descriptions (25 char max)
1. "12 weeks. Real proof." (21)
2. "Build your portfolio." (21)
3. "Start earning in USD." (21)
4. "No theory. Execution." (22)
5. "Full refund guarantee." (23)

The 5x5x5 format produces 125 combinations per angle. Headlines, primary texts, and descriptions should work in any combination within the same angle. Each primary text includes the full emotional arc: hook (visible before "See more") → pain → gap → vision → proof → CTA.

TikTok Ads output (complete creative per angle):

## Angle: [Angle Name]

### Ad Texts (100 char max)

**Hook-driven**
1. "Your marketing has 5 connected parts. Most business owners have only fixed one." (79)
2. "Fixing one part of your marketing is like buying one wheel for your car." (72)

**Problem-aware**
3. "Your ads work. Your page kills the sale. Your DMs are too slow. That's 3 leaks." (80)
4. "Ads, page, automations, account recovery, community. Break one, the whole system leaks." (90)

**Proof-driven**
5. "N30M in sales from N3.5M ad spend. Most businesses haven't fixed one gap." (76)

**Offer-driven**
6. "5 workshops. Live implementation session. N45,000 before the price goes up." (77)

### Recommended Top 5 for Rotation

| Slot | # | Chars | Type | Why |
|------|---|-------|------|-----|
| 1 | #1 | 79 | Hook | Establishes the framework, matches video hook |
| 2 | #3 | 80 | Problem | Concrete pain stack the audience recognizes |
| 3 | #2 | 72 | Hook | Simple analogy, memorable and shareable |
| 4 | #4 | 90 | Problem | Lists all parts, works as summary for scanners |
| 5 | #5 | 84 | Proof | Hard numbers create credibility |

### Product Name (40 char max)
`Online Marketing Bundle for Business Owners` (40) <- AT LIMIT

### Selling Points (25 char max each, pick 3-4)
- `5 handbooks in 1 bundle` (25)
- `Live workshop included` (23)
- `Step-by-step, no fluff` (24)
- `Used by 5,000+ owners` (23)

### CTA Button
Shop Now
> Rationale: Digital product with direct purchase intent. "Learn More" if the video is educational and the audience needs more context before buying.

### Destination URL
[Selar store page / website / landing page URL]

### Promo Code or Offer (optional)
55% off — N45,000 instead of full price. Price increases every month.

TikTok output rules:

  • Ad texts: Generate 5-6 variations per angle, categorized by type (hook-driven, problem-aware, proof-driven, fear-driven, offer-driven, social-proof). Always show character count in parentheses. Flag any text over 100 characters and provide a trimmed alternative.
  • Recommended rotation: Always recommend top 5 with a table showing slot, text number, character count, type, and reasoning.
  • Selling points: Must be outcome-driven and specific to the product. Avoid generic TikTok suggestions ("Limited-time offer", "Best seller", "Free returns") unless genuinely applicable. Show character count. Flag anything over 25 characters.
  • CTA button: Include rationale for the CTA selection based on product type and purchase intent.
  • Product name: Show character count. Flag if at or over 40 characters.

Bulk CSV Output

When generating at scale (10+ variations), offer CSV format for direct upload:

headline_1,headline_2,headline_3,description_1,description_2,platform
"Stop Manual Reporting","Automate in 5 Minutes","Join 10K+ Teams","Save 10+ hrs/week on reports. Start free.","Connect data sources once. Reports forever.","google_ads"

Iteration Report

When iterating, include a summary:

## Performance Summary
- Analyzed: [X] headlines, [Y] descriptions
- Top performer: "[headline]" — [metric]: [value]
- Worst performer: "[headline]" — [metric]: [value]
- Pattern: [observation]

## New Creative
[organized variations]

## Recommendations
- [What to pause, what to scale, what to test next]

Batch Generation Workflow

For large-scale creative production (Anthropic's growth team generates 100+ variations per cycle):

1. Break into sub-tasks

  • Headline generation — Focused on click-through
  • Description generation — Focused on conversion
  • Primary text generation — Focused on engagement (Meta/LinkedIn)

2. Generate in waves

  • Wave 1: Core angles (3-5 angles, 5 variations each)
  • Wave 2: Extended variations on top 2 angles
  • Wave 3: Wild card angles (contrarian, emotional, specific)

3. Quality filter

  • Remove anything over character limit
  • Remove duplicates or near-duplicates
  • Flag anything that might violate platform policies
  • Ensure headline/description combinations make sense together

Ad Creative Elements Checklist

Every ad must address these 6 elements. The strength of each element determines whether the ad converts or gets ignored.

ElementWhat It DoesKey PrinciplesCheck
HookStops the scroll, wins attention in 0-3 secondsAttention, Differentiation, FocusDoes it break the pattern? Is it specific enough to earn the next line? Does it use language the audience actually uses?
Pain PointConnects to the viewer's current frustration or unmet needLoss Aversion, Relevance, TimingDoes it name a real, felt pain this audience recognizes? Is this pain verified from real audience conversations, or assumed?
Value / ProofDemonstrates the benefit with evidence, not just claimsClarity, Social Proof, Authority, Proof Over Promise, StoryIs there specific evidence? Numbers, logos, testimonials, demos?
OfferMakes the next step clear and attractiveSimplicity, Commitment, Proof of Value, ObjectionsIs it instantly clear what they get? Are key objections addressed?
UrgencyCreates a reason to act now instead of laterLoss Aversion, TimingIs there a genuine, specific reason to act now?
CTADirects the specific action the viewer should takeMomentum, Commitment, Simplicity, ContextIs the next step obvious, low friction, and platform-appropriate?

How elements map by format:

  • Text ads (Google RSAs): Elements compress into headlines and descriptions. Hook + Pain in headlines. Value + Proof + CTA in descriptions. Urgency in either.
  • Social feed ads (Meta, LinkedIn): Hook in primary text opening. Pain + Value in primary text body. Offer + CTA in headline/description below image.
  • Video ads (TikTok, Reels, Shorts): Each element maps to a time segment (see Video & Social Ad Scripting below).

For the full 30 principles reference, see marketing-principles.md. For hook techniques, CTA categories, and video scripting frameworks, see ad-playbook.md.


Creative Quality Scorecard

Score every ad creative output before delivery. This ensures every piece of creative meets a minimum quality bar grounded in marketing principles.

Rubric (17 points)

DimensionPoints012
Hook Strength0-2Generic / no hookFunctional but predictablePattern-breaking, specific, earns the next line
Pain / Problem0-2No pain addressedVague painSpecific, felt pain the audience recognizes instantly
Value Clarity0-2Feature dumpBenefit stated but genericClear outcome with specificity (numbers, timeframes, proof)
Proof / Trust0-2No proofWeak claim ("trusted by many")Specific proof (metrics, logos, testimonials, demos)
Offer Clarity0-1Unclear what you getInstantly clear what the viewer gets and how
Urgency / Scarcity0-1No reason to act nowGenuine, specific reason to act (deadline, limited, risk of loss)
CTA Strength0-2Missing / vagueGeneric ("learn more")Specific, low-friction, connected to the value
Differentiation0-1Could be any competitor's adClearly distinct positioning or angle
Emotional Resonance0-1Purely rationalTaps into identity, story, aspiration, or fear
Platform Fit0-1Generic copy pasted across platformsAdapted to platform norms and character limits
Audience & Cultural Fit0-2Generic copy, no market-specific language, could target anyone anywhereReflects known pain points but uses marketer's language, not the market's own wordsGrounded in researched pain points from target market platforms, uses audience's own words/slang, connects to current cultural trends or moments

Score Thresholds

  • 15-17: Ship it. Strong across all dimensions.
  • 12-14: Solid. Flag weak dimensions and suggest specific fixes.
  • 9-11: Needs rework. Identify the 2-3 weakest elements and rewrite them.
  • Below 9: Fundamental gaps. Revisit angles and audience understanding before rewriting.

When to Score

  • Always score after generating any ad creative set (Mode 1 or Mode 2)
  • Score each distinct ad variation, not just the batch
  • For bulk generation (10+), score a representative sample of 3-5 and flag patterns
  • Include the scorecard in every output alongside the creative

Scorecard Output Format

## Creative Scorecard: [Ad Name/Angle]
Score: [X]/17 — [Ship it / Solid / Needs rework / Fundamental gaps]

| Dimension | Score | Note |
|-----------|-------|------|
| Hook | X | [Observation] |
| Pain/Problem | X | [Observation] |
| Value Clarity | X | [Observation] |
| Proof/Trust | X | [Observation] |
| Offer Clarity | X | [Observation] |
| Urgency | X | [Observation] |
| CTA | X | [Observation] |
| Differentiation | X | [Observation] |
| Emotional Resonance | X | [Observation] |
| Platform Fit | X | [Observation] |
| Audience & Cultural Fit | X | [Observation] |

Suggested fixes:
- [Dimension]: [Specific improvement]

Video & Social Ad Scripting

For video ad creative across TikTok, Meta (IG/FB), and YouTube Shorts. See ad-playbook.md for the full framework with hook techniques, CTA categories, and worked examples.

5-Part Video Ad Structure

SectionTimingPurpose
1. Hook0-3sStop the scroll. Pattern-interrupt. No intros or warmups.
2. Relatability / Pain Point3-10sBuild emotional connection. Name a pain they already feel. Make them feel seen.
3. Value / Demonstration10-25sProve the point. Show the solution in action. Add social proof.
4. Offer / Urgency25-45sCreate desire. Position the offer as a shortcut. Add genuine urgency.
5. CTA45-60sDirect action. Connect back to core message. Keep tone consistent.

Adapting for Length

LengthStructure
15sHook (0-3s) → Value + Proof (3-10s) → CTA (10-15s)
30sHook (0-3s) → Pain (3-8s) → Value/Proof (8-20s) → Offer + CTA (20-30s)
45-60sFull 5-part structure

10 Hook Techniques

  1. Controversial / Polarizing — Challenge an assumption
  2. Visually Intriguing — Unexpected or bold visual action
  3. Relatable Frustration — Shared pain or struggle
  4. Mid-Story — Drop into a moment with tension
  5. Bold Prediction / Promise — Curiosity with clear payoff
  6. Ask a Question — Trigger internal dialogue
  7. Share a Fact — Surprising or compelling statistic
  8. Offer a Transformation — Before-and-after journey
  9. Give a Tip — Deliver immediate value
  10. Show Enticing B-Roll — Captivating visuals before speaking

See ad-playbook.md for detailed examples and worked script templates for each technique.

7 CTA Categories

Match the CTA type to the ad's goal: Direct Purchase, Lead Generation, Urgency & Scarcity, Social Proof, Engagement-Based, Value-First, Discovery, Follow-Up.

See ad-playbook.md for examples of each category.


Common Mistakes

  • Writing headlines that only work together — RSA headlines get combined randomly
  • Ignoring character limits — Platforms truncate without warning
  • All variations sound the same — Vary angles, not just word choice
  • No CTA headlines — Always include action-oriented headlines
  • Generic descriptions — "Learn more about our solution" wastes the slot
  • Iterating without data — Gut feelings are less reliable than metrics
  • Testing too many things at once — Change one variable per test cycle
  • Retiring creative too early — Allow 1,000+ impressions before judging

Tool Integrations

For pulling performance data and managing campaigns, see the tools registry.

PlatformPull Performance DataManage CampaignsGuide
Google Adsgoogle-ads campaigns list, google-ads reports getgoogle-ads campaigns creategoogle-ads.md
Meta Adsmeta-ads insights getmeta-ads campaigns listmeta-ads.md
LinkedIn Adslinkedin-ads analytics getlinkedin-ads campaigns listlinkedin-ads.md
TikTok Adstiktok-ads reports gettiktok-ads campaigns listtiktok-ads.md

Workflow: Pull Data, Analyze, Generate

# 1. Pull recent ad performance
node tools/clis/google-ads.js reports get --type ad_performance --date-range last_30_days

# 2. Analyze output (identify top/bottom performers)
# 3. Feed winning patterns into this skill
# 4. Generate new variations
# 5. Upload to platform

Related Skills

  • paid-ads: For campaign strategy, targeting, budgets, and optimization
  • copywriting: For landing page copy (where ad traffic lands)
  • ab-test-setup: For structuring creative tests with statistical rigor
  • marketing-psychology: For psychological principles behind high-performing creative
  • copy-editing: For polishing ad copy before launch

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what ad-creative does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.