Best for
- Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.
hyperfx-ai/marketing-skills/skills/ad-creative-generation/SKILL.md
Generate on-brand ad creatives — visuals + copy — for Google, Meta (Facebook / Instagram), and other paid platforms via the Hyper MCP. Extracts brand identity from a website, writes ad copy variants, and produces brand-consistent images using reference-based image generation. Use when the user asks for ad creative, ad copy variants, RSA headlines, Meta ad creative, display ads, carousel ads, or A/B test variants.
Decision brief
Generate ad creatives — both visuals and copy — that match a brand's identity. This skill orchestrates brand extraction, copywriting, and image generation into a single workflow.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/hyperfx-ai/marketing-skills --skill "skills/ad-creative-generation"Inspect the Agent Skill "ad-creative-generation" from https://github.com/hyperfx-ai/marketing-skills/blob/bb080b81e2b633c4d46cd8d38d31f14ad95b478a/skills/ad-creative-generation/SKILL.md at commit bb080b81e2b633c4d46cd8d38d31f14ad95b478a. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Call firecrawlbrandingextract with the website URL. This single call returns branding data, a saved logo, and a website screenshot:
Call firecrawlbrandingextract with the website URL. This single call returns branding data, a saved logo, and a website screenshot:
If cmoadbrief is available, call it first — it returns ranked ad archetypes for the brand's goal and platform with the reasoning, hook examples, structure beats, dos/donts, and a generation prompt already grounded in the brand's saved data:
Generate ad images using brand assets as references. Always pass both logo and screenshot as reference images — SVG logos are automatically converted to PNG by the branding tool.
This skill assumes the Hyper MCP is connected to your agent so the tools below are available. Brand extraction also requires Firecrawl to be configured under your Hyper integrations.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Based on what the user needs, read the appropriate reference file:The documentation includes network, browsing, or remote request actions.
brand = firecrawl_branding_extract(url="https://example.com")The documentation includes network, browsing, or remote request actions.
brief = cmo_ad_brief(goal="drive conversions", platform="meta", url="https://example.com")Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 77 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Generate ad creatives — both visuals and copy — that match a brand's identity. This skill orchestrates brand extraction, copywriting, and image generation into a single workflow.
This skill assumes the Hyper MCP is connected to your agent so the tools below are available. Brand extraction also requires Firecrawl to be configured under your Hyper integrations.
| Group | Tools |
|---|---|
| Brand extraction | firecrawl_branding_extract |
| Archetype recommendations (conditional) | cmo_ad_brief |
| Competitor ad tracking (conditional) | cmo_ads_track, cmo_ads_tracked_list |
| Image generation (default) | images_generate (model="gpt-image-2") |
| Image generation (text-heavy) | images_generate (model="nano-banana-pro") |
| Image generation (photoreal product shots) | images_generate (model="seedream-4.5") |
The cmo_* tools are conditional — they appear when the CMO toolkit is
enabled in the workspace. When absent, skip them and use the reference
frameworks; do not fail the workflow.
For deeper image-tool selection guidance see the image-generation skill. To turn finished creatives into running campaigns see google-ads and meta-ads.
image-generation.google-ads, meta-ads, tiktok-ads, pinterest-ads, or amazon-ads.meta-ads-library; to save and monitor competitor ads cross-platform (Meta + Google Ads Transparency, durable creatives, longevity ranking), use cmo_ads_track / cmo_ads_tracked_list when the CMO toolkit is enabled.brand.screenshot.description to understand the product — never guess from the company name.model="gpt-image-2" for the initial ad creative by default — with reference images for branded work, or without for loose first-pass concepts.model="nano-banana-pro" for the first creative pass — use it when the user explicitly asks or when readable text inside the image is the main requirement.aspect_ratio to the placement — 1:1 (feed), 9:16 (story), 16:9 (banner) — and quality ("draft" | "standard" | "high"); images_generate takes those, not raw pixel sizes.1024x1536), banner is 16:9 (use 1536x1024).Based on what the user needs, read the appropriate reference file:
| User Need | Reference |
|---|---|
| "Extract branding from this site" / brand colors, logo | references/brand-extraction.md |
| "Write ad copy" / headlines / variants / hooks | references/ad-copy-frameworks.md |
| Google RSAs / display ads / Performance Max assets | references/google-ads-creatives.md |
| Meta / Facebook / Instagram ads / carousel / stories | references/meta-ads-creatives.md |
When the task spans multiple areas (e.g., "create ad creatives for this website"), follow the full workflow below.
Call firecrawl_branding_extract with the website URL. This single call returns branding data, a saved logo, and a website screenshot:
brand = firecrawl_branding_extract(url="https://example.com")
The result contains:
brand.logo.file_id — logo image to use as referencebrand.screenshot.file_id — website screenshot to use as referencebrand.branding — colors, typography, spacing, personalityBoth logo and screenshot are saved images ready to pass as reference_images to image generation tools. SVG logos are automatically converted to PNG, so always include the logo — no need to filter by format.
For deeper guidance on brand extraction, read references/brand-extraction.md.
If cmo_ad_brief is available, call it first — it returns ranked ad
archetypes for the brand's goal and platform with the reasoning, hook
examples, structure beats, dos/donts, and a generation prompt already
grounded in the brand's saved data:
brief = cmo_ad_brief(goal="drive conversions", platform="meta", url="https://example.com")
Build the copy variants and visual direction on the recommended archetypes
(brief.recommendations[n].prompt is a ready generation prompt; unresolved
placeholders are listed per recommendation). If the tool is not available,
work from references/ad-copy-frameworks.md instead.
Using the brand personality, tone, and value proposition from the extraction, write ad copy variants. Structure copy by what's being tested:
Change only one element per variant so results can be attributed to specific changes.
For copy frameworks, hook patterns, and variant strategy, read references/ad-copy-frameworks.md.
Generate ad images using brand assets as references. Always pass both logo and screenshot as reference images — SVG logos are automatically converted to PNG by the branding tool.
Read brand.screenshot.description to understand what the product actually does and what the UI looks like. Do not guess from the company name.
Preferred first pass: images_generate with model="gpt-image-2"
By default, a strong ad creative has three layers: brand (logo), copy (headline), and product (realistic screenshot showing the core value prop). This is the recommended starting point when the user hasn't specified a creative direction. Use model="gpt-image-2" for this initial composition unless the user explicitly asks for another model or the image is primarily a text-rendering task.
images_generate(
requests=[{
"prompt": (
"Social media ad creative for [company name]. "
"Top: the [company] logo. "
"Headline: '[headline from ad copy phase or site hero text]'. "
"Below the headline: a clean, realistic product screenshot of [describe the actual UI "
"based on brand.screenshot.description]. "
"Match the brand style from the references."
),
"reference_images": [brand.logo.file_id, brand.screenshot.file_id]
}],
model="gpt-image-2",
aspect_ratio="1:1",
quality="high"
)
If the user asks for a specific creative style (lifestyle imagery, abstract, illustration, people using the product, etc.), follow their direction. The defaults above are a starting point, not a constraint. The reference images still supply brand consistency regardless of creative direction.
| Scenario | Tool | Why |
|---|---|---|
| On-brand creative (default) | images_generate (model="gpt-image-2") with logo + screenshot refs | Best default for the first branded concept |
| Text-heavy creative (headlines in image) | images_generate (model="nano-banana-pro") | Use only when text rendering inside the image is the main requirement |
| Quick ideation / concept exploration | images_generate (model="gpt-image-2") | Fast first-pass concepting with no references needed |
| Iterative refinement of existing image | images_generate (model="nano-banana") with the image as a reference | Edit a specific generated image |
| Photoreal product shots / material detail | images_generate (model="seedream-4.5") | Strong fabric/texture/spatial depth |
| Platform | Format | Image Size | Key Limits |
|---|---|---|---|
| Meta Feed | 1:1 | 1080x1080 | Primary text: 125 chars visible |
| Meta Story | 9:16 | 1080x1920 | Full screen, 15s max |
| Meta Carousel | 1:1 | 1080x1080 | Up to 10 cards |
| Google RSA | N/A (text only) | N/A | 15 headlines (30 chars), 4 descriptions (90 chars) |
| Google Display | Various | 1200x628 | Responsive display ads |
For full platform specs, read references/google-ads-creatives.md or references/meta-ads-creatives.md.
When generating variants from existing top performers:
For detailed frameworks, read references/ad-copy-frameworks.md.
Frequently asked questions
Generate ad creatives — both visuals and copy — that match a brand's identity. This skill orchestrates brand extraction, copywriting, and image generation into a single workflow.
The source record exposes this install command: npx skills add https://github.com/hyperfx-ai/marketing-skills --skill "skills/ad-creative-generation". Inspect the command and pinned source before running it.
Static rules flagged read-files, network in the source; the page lists the matching lines and excerpts.
Alternatives
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Diagnoses and fixes skills in the dotnet/skills repository that lose to their own baseline, fail to activate, time out, or return "no credible improvement". Use when an evaluation verdict is a regression or underpowered, when a skill regressed after a change, when /evaluate reports no results, or when deciding whether a weak skill should be strengthened or retired. Do not use for scaffolding a brand-new skill (use create-skill) or a brand-new eval (use create-skill-test).
OpenClaudia/openclaudia-skills
Create email drip campaigns, nurture sequences, and automated email flows. Includes templates for welcome series, abandoned cart, re-engagement, product launch, and onboarding sequences. Trigger phrases: "email sequence", "drip campaign", "nurture sequence", "email flow", "welcome series", "abandoned cart emails", "onboarding emails", "email automation", "product launch emails", "re-engagement campaign", "send email", "send sequence".
aaron-he-zhu/aaron-marketing-skills
Use when the user asks to "run a deliverability pre-flight before I send", "check my SPF/DKIM/DMARC/BIMI", "why am I landing in spam / promotions", or "score my sender reputation and list hygiene"; runs the ONE-TIME pre-send SEND S1 authentication pre-flight and builds the SEND S (Sender-integrity / Deliverability) evidence read — DNS + DMARC-RUA auth, domain/IP reputation, inbox placement, content/link/render, and point-in-time bounce/complaint hygiene — using Pass/Partial/Fail/Unknown/N/A stat