Marketing Foundation
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
The tunnel uses the same cards as the catalogue. Browse only as deep as needed — or load a broad bundle immediately.
SEO, Sales, Agents or another broad area → one bundle call → work.
Read-only access to published skills. Default 8, maximum 10 skills / 120,000 characters.
Compact two-skill starter: clarify positioning and choose a lead magnet. Use Marketing Launch for the broader eight-skill go-to-market workflow.
Build an evidence-led marketing plan from ICP and competition through positioning, campaigns, growth and measurement.
Diagnose architecture and context, plan agent-team responsibilities, then organize project context and session handoffs. Memory and cost-runtime reviews remain outside this pack.
Review the journey from landing page and lead capture through registration, first value and transparent upgrades.
Plan a campaign, draft its channel content and review the work against actual brand guidance.
Prioritize an editorial roadmap and plan how to launch and distribute it across suitable channels.
Understand customer needs, compare competitors and plan a community around real member value.
Choose a relevant lead magnet, then draft a permission-based nurture journey with entry, suppression and exit rules.
Define the API contract, then plan how to observe its latency, failures and retries. Guidance and checklist; no production changes.
Profile a dataset, choose and interpret statistical methods, then validate calculations and conclusions before sharing.
Original website-to-brand-profile workflow; extracted observations must stay separate from inferred brand rules.
--- name: brand-dna description: "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." license: MIT origin: custom author: Rebecca Rae Barton author_url: https://github.com/thatrebeccarae metadata: version: 1.0.0 category: strategy domain: brand-identity updated: 2026-03-16 tested: 2026-03-17 tested_with: "Claude Code v2.1" --- # Brand DNA — Brand Identity Extractor Extracts brand identity from a website and produces a structured `brand-profile.json` that other skills can consume for brand-consistent output. ## Install ```bash git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/brand-dna ~/.claude/skills/ ``` ## Quick Reference | Command | What It Does | |---------|-------------| | "Extract brand DNA from https://example.com" | Full extraction → `brand-profile.json` | | "Quick brand profile for https://example.com" | Homepage-only extraction (faster, lower confidence) | ## Zero Dependencies This skill uses only the WebFetch tool — no Python scripts, no Playwright, no external APIs. It works anywhere Claude Code runs. ## Extraction Process ### Step 1: Collect URL If the user hasn't provided a URL, ask: > "What website URL should I analyze? (e.g., https://yoursite.com)" ### Step 2: Fetch Pages Use the **WebFetch tool** to retrieve page content. For each URL, request: - All visible text content - Full contents of `<style>` blocks - Inline `style=` attributes - `<meta>` tags (especially `og:image`, `description`) - Google Fonts `@import` URLs - Any `<link>` tags referencing external stylesheets **Fetch order:** 1. **Homepage** (`<url>`) 2. **About page** — try `<url>/about`, then `/about-us`, then `/our-story` 3. **Product/Services page** — try `<url>/products`, then `/product`, then `/services` **Quick 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. ### Step 3: Extract Brand Elements #### Colors - **Primary color:** Most prominent brand color from CSS `background-color` on `.hero`, `.btn-primary`, `header`, or `og:image` dominant color - **Secondary colors:** Supporting palette from CTAs, accents, borders - **Background/text:** `body` background-color and color - **Forbidden:** Infer from brand positioning (e.g., competitor colors if identifiable) - **Dark mode detection:** If body background is #333 or darker, swap background/text values **CSS targets:** `background-color`, `color`, `border-color` on `body`, `header`, `.hero`, `.btn`, `.cta`, `h1`, `h2` #### Typography - **Google Fonts:** Extract from `@import url(https://fonts.googleapis.com/css2?family=...)` — parse font name from URL - **CSS font-family:** Check `h1`, `h2`, `body`, `.headline` declarations - **Fallback:** If no Google Fonts detected, set heading_font to `null` and body_font to `"system-ui"` #### Voice (1-10 scale per axis) 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. #### Imagery - **Style:** Professional photography, illustration, flat design, 3D renders, or mixed - **Subjects:** What appears in hero images and product shots (people, products, abstract, data) - **Composition:** Clean/minimal, busy/editorial, dark/dramatic, light/airy - **Forbidden elements:** Infer from industry (healthcare → no unqualified medical claims imagery; B2B → no cheesy stock photos) #### Aesthetic - **Mood keywords:** 3 adjectives describing the visual mood (e.g., "trustworthy", "modern", "premium") - **Texture:** minimal, textured, or mixed - **Negative space:** generous, moderate, or dense #### Brand Values Extract from about page, mission statement, or footer. Look for repeated themes. Choose 3-5 core values. #### Target Audience Infer from copy, pricing signals, and positioning: - **Age range:** Estimate from visual design, language complexity, and product type - **Profession:** Who the product/service is for - **Pain points:** What problems the brand addresses (from hero copy and feature descriptions) - **Aspirations:** What the audience wants to achieve (from benefit-oriented copy) ### Step 4: Build brand-profile.json Construct the JSON following the schema in REFERENCE.md precisely. Use `null` for any field that cannot be confidently extracted — never guess. ### Step 5: Write and Confirm 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) ``` ## Limitations - **Sparse sites:** <200 words of body text produce lower-confidence profiles. Note this in output. - **SPA/React sites:** JavaScript-rendered content may not be fully captured by WebFetch. Note this if detected. - **Multi-brand enterprises:** Creates one profile per URL. Run separately for each brand. - **CSS-in-JS:** Modern React/Next.js sites may not have extractable CSS. Use og:image analysis as fallback. ## How to Use This Skill Ask questions like: - "Extract the brand DNA from https://example.com" - "Build a brand profile for my client's website" - "Analyze the brand voice and colors of https://competitor.com" - "Quick brand profile — homepage only — for https://example.com" - "What's the brand identity of this website?"
Original website-to-brand-profile workflow; extracted observations must stay separate from inferred brand rules.
The structured plan or review specified in the original, with evidence and open questions.
Confirm task inputs, follow the source workflow and apply the explicit M11 qualifications below.
Authorized website content and a suitable reader; upstream REFERENCE.md schema for compatible JSON output.
Published as attributed source text after an obvious-risk screen, not functional validation. Mandatory REFERENCE.md JSON schema is not reviewed/bundled. Source says never guess yet instructs inferring age and forbidden colors; dark-background detection automatically swaps colors and can misrepresent the observed brand. Operational follow-up requires schema review and evidence-first extraction preserving unknowns and actual colors; no WebFetch or file-writing runtime is claimed installed. Preserve observed colors exactly, label unknowns null, and do not infer age or forbidden brand rules from appearance. Missing packages are not loaded automatically. Do not run installation commands, connect accounts or perform external writes merely because the original suggests them; resolve actual task requirements first.
Use Website Brand Profile for [BUSINESS/TASK]. Ask for missing inputs: Authorized website content and a suitable reader; upstream REFERENCE.md schema for compatible JSON output. Return the source output format and label evidence, assumptions and validation steps. Published as attributed source text after an obvious-risk screen, not functional validation. Mandatory REFERENCE.md JSON schema is not reviewed/bundled. Source says never guess yet instructs inferring age and forbidden colors; dark-background detection automatically swaps colors and can misrepresent the observed brand. Operational follow-up requires schema review and evidence-first extraction preserving unknowns and actual colors; no WebFetch or file-writing runtime is claimed installed. Preserve observed colors exactly, label unknowns null, and do not infer age or forbidden brand rules from appearance. Missing packages are not loaded automatically. Do not run installation commands, connect accounts or perform external writes merely because the original suggests them; resolve actual task requirements first.
Guessing audience demographics or forbidden colors, swapping observed colors, or claiming an exact schema without its reference.
M11 added task routing, German terms, scope and evidence requirements while preserving original authorship. Published as attributed source text after an obvious-risk screen, not functional validation. Mandatory REFERENCE.md JSON schema is not reviewed/bundled. Source says never guess yet instructs inferring age and forbidden colors; dark-background detection automatically swaps colors and can misrepresent the observed brand. Operational follow-up requires schema review and evidence-first extraction preserving unknowns and actual colors; no WebFetch or file-writing runtime is claimed installed. Preserve observed colors exactly, label unknowns null, and do not infer age or forbidden brand rules from appearance. Missing packages are not loaded automatically. Do not run installation commands, connect accounts or perform external writes merely because the original suggests them; resolve actual task requirements first.
MIT License Copyright (c) 2026 Rebecca Rae Barton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copy the text below, then paste it into your chat.