Extract brand identity from a website URL — voice, colors, typography, imagery, values, and target audience — into a structured brand-profile.json. The profile feeds downstream skills (seo-content-writer, email-composer, frontend-design, pro-deck-builder, cross-platform-audit) for brand-consistent output. Use when the user says brand DNA, brand profile, extract brand, analyze brand, brand voice, brand identity, brand colors, or brand style guide.
Extracts brand identity from a website and produces a structured brand-profile.json that other skills can consume for brand-consistent output.
git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/brand-dna ~/.claude/skills/
| Command | What It Does |
|---|---|
| "Extract brand DNA from https://example.com" | Full extraction → brand-profile.json |
| "Quick brand profile for " |
| Homepage-only extraction (faster, lower confidence) |
This skill uses only the WebFetch tool — no Python scripts, no Playwright, no external APIs. It works anywhere Claude Code runs.
If the user hasn't provided a URL, ask:
"What website URL should I analyze? (e.g., https://yoursite.com)"
Use the WebFetch tool to retrieve page content. For each URL, request:
<style> blocksstyle= attributes<meta> tags (especially og:image, description)@import URLs<link> tags referencing external stylesheetsFetch order:
<url>)<url>/about, then /about-us, then /our-story<url>/products, then /product, then /servicesQuick mode: If the user requests a quick extraction, fetch homepage only — skip pages 2 and 3.
If a secondary page returns 404 or redirects to homepage, continue with fewer pages and note reduced confidence.
background-color on .hero, .btn-primary, header, or og:image dominant colorbody background-color and colorCSS targets: background-color, color, border-color on body, header, .hero, .btn, .cta, h1, h2
@import url(https://fonts.googleapis.com/css2?family=...) — parse font name from URLh1, h2, body, .headline declarationsnull and body_font to "system-ui"Analyze hero headline, subheadline, about page intro, and CTA button text:
| Signal | Axis | Direction |
|---|---|---|
| Uses "you/your" frequently | formal_casual | +2 toward casual |
| Technical jargon, industry terms | expert_accessible | -2 toward expert |
| Short punchy sentences (≤8 words) | bold_subtle | +2 toward bold |
| Data, stats, percentages in hero | rational_emotional | -2 toward rational |
| "Transform", "revolutionize", "disrupt" | traditional_innovative | +2 toward innovative |
| Customer testimonials lead | rational_emotional | +2 toward emotional |
| "Trusted by X companies", awards | traditional_innovative | -1 toward traditional |
| Humor, wordplay, casual phrasing | playful_serious | +2 toward playful |
| Formal language, third person | playful_serious | -2 toward serious |
Start each axis at 5 (neutral) and adjust based on signals found.
Descriptors: Choose 3-5 adjectives that capture the overall voice tone. These should complement the numerical scores, not repeat them.
Extract from about page, mission statement, or footer. Look for repeated themes. Choose 3-5 core values.
Infer from copy, pricing signals, and positioning:
Construct the JSON following the schema in REFERENCE.md precisely. Use null for any field that cannot be confidently extracted — never guess.
Write brand-profile.json to the current working directory.
Display a summary:
Brand DNA extracted → brand-profile.json
Brand: [brand_name]
Voice: [descriptor 1], [descriptor 2], [descriptor 3]
Primary Color: [hex]
Typography: [heading_font] / [body_font]
Audience: [age_range], [profession]
This profile can be consumed by:
- seo-content-writer (voice matching)
- email-composer (tone calibration)
- frontend-design (visual identity)
- pro-deck-builder (brand colors/fonts)
- cross-platform-audit (brand consistency checks)
Ask questions like: