Systems Lab

Agent skill

brand-dna

Extract brand identity from a website URL — voice, colors, typography, imagery, values, and target audience — into a structured brand-profile.json.

slowingReaches the webActs undeclared879 words

Filed under Content and SEO.

From thatrebeccarae/claude-marketing · 42 skills · 119 · pushed 2026-05-14

What it does when it runs

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.

Read from the skill and the 3 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
None found.
Hosts it reaches
  • competitor.com
  • figma.com
  • fonts.googleapis.com
  • glossier.com
  • linear.app
  • notion.so
  • sketch.com
  • yoursite.com
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 brand-dna

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/thatrebeccarae/claude-marketing.git /tmp/claude-marketing
git -C /tmp/claude-marketing sparse-checkout set "skills/brand-dna"
mkdir -p ~/.claude/skills/brand-dna
cp -R "/tmp/claude-marketing/skills/brand-dna/." ~/.claude/skills/brand-dna/

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.

Reproduced in full from thatrebeccarae/claude-marketing/blob/a8a63ec1341f05ec9c1e9cb52b4edeb14e3bdcba/skills/brand-dna/SKILL.md, which is licensed MIT (skill frontmatter). 879 words, 19 headings.

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

git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/brand-dna ~/.claude/skills/

Quick Reference

CommandWhat 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:

SignalAxisDirection
Uses "you/your" frequentlyformal_casual+2 toward casual
Technical jargon, industry termsexpert_accessible-2 toward expert
Short punchy sentences (≤8 words)bold_subtle+2 toward bold
Data, stats, percentages in herorational_emotional-2 toward rational
"Transform", "revolutionize", "disrupt"traditional_innovative+2 toward innovative
Customer testimonials leadrational_emotional+2 toward emotional
"Trusted by X companies", awardstraditional_innovative-1 toward traditional
Humor, wordplay, casual phrasingplayful_serious+2 toward playful
Formal language, third personplayful_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:

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 brand-dna 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.