> Design ad creative across Google, Meta, LinkedIn, Twitter/X, and TikTok with platform format specs, headline formulas, and A/B testing. Use when writing ad copy, generating headline variations, creating ad sets, or validating creative.
npx skills add https://github.com/borghei/Claude-Skills --skill ad-creative
Production-grade ad creative design, iteration, and optimization across all major advertising platforms.
ad creative, ad copy, headline generation, RSA headlines, Meta ad copy, LinkedIn ads, Google Ads, Twitter/X ads, TikTok ads, creative testing, A/B testing, ad variations, bulk creative, performance creative, display ads, search ads, social ads, CTA optimization, ad compliance, character limits, creative matrix, ad iteration, conversion copy, platform-specific ads
Before generating the copy, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Step 1: Define the Creative Brief
Document before writing any copy:
## Creative Brief
- Product/Offer: [Specific product, feature, or lead magnet]
- Value Proposition: [One sentence — what changes in the customer's life]
- Target Audience: [Job title, pain point, awareness level]
- Platform(s): [Google / Meta / LinkedIn / Twitter/X / TikTok]
- Funnel Stage: [Awareness / Consideration / Decision]
- Existing Creative: [Yes/No — if yes, attach performance data]
- Budget Context: [Daily/monthly spend, CPA targets]
Step 2: Generate Headlines by Formula Type
Produce minimum 10 headlines, distributed across formula categories:
Step 3: Write Platform-Specific Body Copy
For each platform, write 2-3 body copy variations:
Step 4: Assemble Ad Sets
Organize into testable ad sets:
[AD SET: Benefit-First] | [Platform] | [Funnel Stage]
Headline A: "..." (28/30 chars)
Headline B: "..." (26/30 chars)
Body: "..." (87/90 chars)
CTA: "Start Free Trial"
Step 5: Validate and Submit
Run every ad through the quality checklist before upload.
Step 1: Audit Current Creative
For each running ad, classify:
Step 2: Extract the Winning Pattern
Identify what the top performers share:
Step 3: Generate Variations
Step 4: Build a Creative Testing Matrix
| Angle | Google | Meta | LinkedIn |
|-------|--------|------|----------|
| Benefit-first | [copy] | [copy] | [copy] |
| Social proof | [copy] | [copy] | [copy] |
| Problem agitation | [copy] | [copy] | [copy] |
Step 1: Lock the Core Message
Define the single transferable message that works across all platforms.
Step 2: Adapt Per Platform
Reformat (not rewrite from scratch):
| Platform | Format | Headline Limit | Body/Description Limit | Key Constraints |
|----------|--------|---------------|------------------------|-----------------|
| Google RSA | Search | 30 chars x 15 | 90 chars x 4 descriptions | Max 3 pinned positions |
| Google Display | Display | 30 chars x 5 short, 90 chars x 1 long | 90 chars x 5 | Requires 5+ images |
| Google Performance Max | Multi | 30 chars x 5 short, 90 chars x 5 long | 90 chars x 5 | Auto-placement |
| Meta Feed | Image/Video | 40 chars headline | 125 chars primary text (recommended) | Image text < 20% |
| Meta Stories | Vertical | 40 chars | 125 chars | 9:16 aspect ratio |
| LinkedIn Sponsored | Content | 70 chars headline | 150 chars intro text | No clickbait policies |
| LinkedIn Message | InMail | 60 chars subject | 1,500 chars body | Personalization required |
| Twitter/X | Promoted | 70 chars headline | 280 chars total | No deceptive tactics |
| TikTok In-Feed | Video | No text overlay limit | 80-100 chars caption | Hook in first 2-3 seconds |
| TikTok Spark | Native | Varies | 100 chars | Must use creator content |
Google Ads:
Meta Ads:
LinkedIn Ads:
The audience does not know you. Meet them where they are.
Framework: Problem > Amplify > Hint
Hook: [State the problem in their language]
Amplify: [Show the cost of inaction]
Hint: [Tease that a solution exists — don't pitch yet]
What works at awareness:
What fails at awareness:
They know the problem. They are evaluating options.
Framework: Solution > Mechanism > Proof
Hook: [Name the outcome they want]
Mechanism: [Explain how you deliver it differently]
Proof: [Show evidence it works]
What works at consideration:
They are close. Remove the last objection.
Framework: Proof > Risk Removal > Action
Hook: [Testimonial, case study, or result with numbers]
Risk Removal: [Free trial, money-back, no credit card]
Action: [Specific, clear CTA]
What works at decision:
[Verb] [specific outcome] [timeframe or qualifier]
Examples:
[Surprising claim or counterintuitive angle]
Examples:
[Number] [people/companies] [outcome]
Examples:
[Describe the pain vividly in their language]
Examples:
[Real constraint + specific deadline or quantity]
Examples:
Anti-pattern to avoid:
For every winning ad, document:
| Dimension | Answer |
|-----------|--------|
| Hook type | Problem / Benefit / Curiosity / Social Proof |
| Funnel stage served | Awareness / Consideration / Decision |
| Emotional driver | Fear / Ambition / FOMO / Frustration / Relief |
| CTA friction level | Low (learn more) / Medium (free trial) / High (book demo) |
| Specificity level | Vague claims / Specific numbers / Case study reference |
Preserve the winning pattern, vary one element at a time:
For every 3-5 on-theme variations, include 2-3 exploration ads:
After 7-14 days with statistical significance:
## A/B Test: [Name]
- Hypothesis: [If we change X, then Y will improve because Z]
- Variable: [Headline / Body / CTA / Visual]
- Control: [Current version]
- Variant: [New version]
- Metric: [CTR / CVR / CPA / ROAS]
- Duration: [Start date - End date]
- Sample size: [Impressions per variant]
- Result: [Winner + confidence level]
- Learning: [What we learned for future creative]
Platform Compliance:
Copy Quality:
Strategic Alignment:
Common Rejection Reasons to Pre-Check:
10. Keep proof points current — "Trusted by 500 companies" should update as you grow. Stale numbers erode credibility.
| Symptom | Likely Cause | Fix |
|---------|-------------|-----|
| Ad rejected by platform | Policy violation (caps, claims, trademarked terms) | Run headline_generator.py to generate compliant variants. Check rejection triggers. |
| All headlines same style | No formula diversity | Generate across 5 formula types: benefit, curiosity, social proof, problem, urgency. |
| CTR declining across ad set | Creative fatigue | Run creative_fatigue_detector.py. Refresh every 2-4 weeks. |
| High CTR but low conversions | Ad-to-landing-page mismatch | Ensure headline promise matches landing page. Message match is the #1 conversion factor. |
| Can't fill all Google RSA slots | Not enough headline variations | Use headline_generator.py to produce 15+ variations from value proposition. |
| Video underperforming on Meta | Hook not in first 2-3 seconds | 80%+ of social impressions are mobile. Hook must appear in first 2 seconds. |
| Same CPA across all creative | Not testing enough angles | Build a creative testing matrix with 5 hook types x platforms. Use creative_matrix_builder.py. |
In Scope: Ad headline/body copy generation, platform-specific formatting, A/B testing frameworks, creative iteration methodology, compliance validation, cross-platform adaptation.
Out of Scope: Visual design/production, video editing, campaign management (use paid-ads), landing page copy (use copywriting), media buying.
scripts/headline_generator.py)Generates ad headline variations from a value proposition using proven formula patterns, scored for platform compliance.
python scripts/headline_generator.py --value-prop "Reduce churn by 30%" --platform google --audience "SaaS teams"
python scripts/headline_generator.py --value-prop "Reduce churn by 30%" --json
scripts/creative_fatigue_detector.py)Analyzes ad performance trends (CTR, CPA, frequency) to detect creative fatigue and recommend refresh timing.
python scripts/creative_fatigue_detector.py campaign_data.json
python scripts/creative_fatigue_detector.py --sample --json
scripts/creative_matrix_builder.py)Generates a cross-platform creative testing matrix from a brief, organized by hook type and funnel stage.
python scripts/creative_matrix_builder.py brief.json
python scripts/creative_matrix_builder.py --sample --json
Plan, write, and diagnose Instagram Reels that earn cold-audience reach. Use whenever someone wants a reels script or reels hook for a specific Reel, is debugging why a Reel flopped, wants to know if a draft is worth testing with Trial Reels before going public, or needs a reels caption tuned for the post-hashtag instagram algorithm. Built around what Mosseri has publicly named as the signal hierarchy (watch time, sends per reach, likes per reach), the Trial Reels test-then-publish loop, the Original Content Guidelines and 30-day recovery window, the Edits app, and Reels Insights metrics (skip rate, share rate, followers from this post). Covers a Reels-specific reels strategy: send-driving CTAs, originality without watermarks, audio licensing by account type, captions as the primary SEO signal, and the anti-patterns that quietly cap distribution. Pattern-based guidance, not a virality promise.
Perform relative value analysis on bonds by combining pricing, yield curve context, credit spreads, and scenario stress testing. Use when analyzing bond richness/cheapness, computing spread decomposition, comparing bonds, assessing bond value vs curves, or running rate shock scenarios.
Build quick IRR/MOIC sensitivity tables for PE deal evaluation. Models returns across entry multiple, leverage, exit multiple, growth, and hold period scenarios. Use when sizing up a deal, stress-testing assumptions, or preparing IC returns exhibits. Triggers on "returns analysis", "IRR sensitivity", "MOIC table", "what's the return at", "model the returns", or "back of the envelope".
Design lean startup experiments (pretotypes) for a new product. Creates XYZ hypotheses and suggests low-effort validation methods like landing pages, explainer videos, and pre-orders. Use when validating a new product idea, creating pretotypes, or testing market demand.
Amazon Alexa for Shopping Q&A automation: submits questions to Amazon's Alexa/Rufus AI shopping assistant and collects response text; supports optional keyword search context (navigate to search results page before asking for category-specific answers). Use when user mentions Amazon Alexa, Rufus, Amazon shopping assistant, Amazon AI chat, ask Amazon, Amazon Q&A, automate Alexa questions, Rufus chatbot, Amazon assistant automation, collect Alexa responses, bulk question submission to Amazon, keyword search context, category research. Also applies to extracting Amazon product recommendations from conversational AI, automating repeated queries to Amazon's AI shopping feature, collecting Alexa shopping responses at scale, or market research within a specific product category.
When the user wants to create UGC ad campaigns, recruit UGC creators, generate AI UGC content, or scale with user-generated content. Also use when the user mentions 'UGC,' 'user-generated content,' 'creator ads,' 'Spark Ads,' 'whitelisting,' 'AI UGC,' 'Arcads,' 'Creatify,' 'creator brief,' or 'UGC testing.' This skill covers the UGC growth framework from creator recruitment through AI-powered scaling. Do NOT use for technical implementation, code review, or software architecture.
Parse, modify, validate, and patch simulator input files. Use when working with reservoir simulation input files, testing scenarios, or validating simulation configurations. This implementation supports reference format (.DATA); other simulators use different extensions (e.g., .afi, .DAT). Supports natural language modifications, keyword patching, and syntax validation.
Triage ASM/recon output for ownership before testing — separate the target's real assets from namespace-collision noise. Automated recon keyword-matches on the brand name, so for any target whose name is a common/dictionary word, the output is dominated by assets belonging to UNRELATED same-named companies (repos, cloud buckets, mobile apps, breach corpora, typosquats). Built from an authorized engagement where an ASM report's "Criticals" were overwhelmingly false positives and the combo/repos/mobile/bucket lists were polluted with unrelated same-named orgs. Use at the START of any engagement, immediately on receiving any ASM/recon/OSINT dataset, BEFORE testing anything.
Take borghei/ad-creative from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.