brand-voice-extractor

Analyze a company's published content to extract their brand voice, writing style, and tone guidelines. Reads 10-20 of their best content pieces and produces a brand voice profile covering tone, vocabulary level, sentence structure, formatting patterns, CTAs, and target persona. Useful before writing outreach, content, or campaigns that should match a client's existing voice.

380 stars

Best use case

brand-voice-extractor is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Analyze a company's published content to extract their brand voice, writing style, and tone guidelines. Reads 10-20 of their best content pieces and produces a brand voice profile covering tone, vocabulary level, sentence structure, formatting patterns, CTAs, and target persona. Useful before writing outreach, content, or campaigns that should match a client's existing voice.

Teams using brand-voice-extractor should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/brand-voice-extractor/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/capabilities/brand-voice-extractor/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/brand-voice-extractor/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How brand-voice-extractor Compares

Feature / Agentbrand-voice-extractorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Analyze a company's published content to extract their brand voice, writing style, and tone guidelines. Reads 10-20 of their best content pieces and produces a brand voice profile covering tone, vocabulary level, sentence structure, formatting patterns, CTAs, and target persona. Useful before writing outreach, content, or campaigns that should match a client's existing voice.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Brand Voice Extractor

Analyze a company's published content to extract their brand voice and writing style. Reads their top content pieces and produces actionable guidelines for matching their voice in future content, outreach, or campaigns.

## Quick Start

```
Extract brand voice for [company]. Use their blog at [url].
```

Or with content already cataloged:
```
Extract brand voice for [client]. Use the content inventory at clients/[client]/research/content-inventory.json.
```

## Inputs

| Input | Required | Source |
|-------|----------|--------|
| **Content URLs** | Yes | User provides, or pulled from site-content-catalog output |
| **Company name** | Yes | For context in the analysis |
| **Number of pages** | No | Default: 15. How many pages to analyze. |

## Process

### Phase 1: Select Content to Analyze

If content URLs are provided directly, use those. Otherwise:

1. Read the content inventory from `site-content-catalog` output
2. Select a diverse sample of 10-20 pages, prioritizing:
   - **Blog posts** (primary voice indicator)
   - **Landing pages** (marketing voice)
   - **Case studies** (storytelling voice)
   - Mix of recent and older content (to detect voice evolution)
   - Mix of topics (to see consistency across subjects)

**Selection heuristic:**
- 8-10 blog posts (mix of how-to, opinion, product updates)
- 2-3 landing pages (homepage, product page, solutions page)
- 2-3 case studies or customer stories (if available)
- 1-2 comparison/vs pages (if available)

### Phase 2: Fetch and Extract Text

For each selected URL:
1. WebFetch the page
2. Extract the main content body (strip nav, footer, sidebar)
3. Store: title, URL, raw text, word count

### Phase 3: Analyze Voice Dimensions

Analyze across these dimensions:

#### A) Tone
- **Formality spectrum:** Casual ↔ Professional ↔ Academic
- **Emotional register:** Excited ↔ Measured ↔ Dry
- **Authority stance:** Peer/friend ↔ Expert/teacher ↔ Institution
- **Humor usage:** Frequent ↔ Occasional ↔ None
- **Directness:** Direct/bold ↔ Hedged/diplomatic

#### B) Vocabulary & Language
- **Reading level:** Approximate grade level (simple vs. complex)
- **Jargon usage:** Heavy industry jargon ↔ Plain language
- **Technical depth:** Assumes expertise ↔ Explains everything
- **Power words:** Common persuasion/action words they favor
- **Banned patterns:** Words or phrases they conspicuously avoid
- **Unique vocabulary:** Distinctive terms or phrases they use repeatedly

#### C) Sentence Structure
- **Average sentence length:** Short/punchy ↔ Long/complex
- **Paragraph length:** 1-2 sentences ↔ 3-4 ↔ 5+
- **Opening patterns:** How they start articles (question, stat, story, bold claim)
- **Transition style:** How they connect ideas
- **Use of fragments:** Do they use incomplete sentences for emphasis?

#### D) Formatting Patterns
- **Headers:** Frequency, style (question-based, how-to, numbered)
- **Lists:** Bullets vs. numbered, frequency
- **Bold/italic:** How they use emphasis
- **Images/media:** Frequency, types (screenshots, illustrations, photos)
- **CTAs:** Placement, style, frequency, language used
- **Pull quotes/callouts:** Do they use them?

#### E) Content Structure
- **Typical article length:** Short (<800), Medium (800-1500), Long (1500+)
- **Introduction style:** Hook type, length
- **Conclusion style:** Summary, CTA, open question
- **Use of data/stats:** Frequent ↔ Rare
- **Use of examples:** Frequent ↔ Rare
- **Storytelling:** Narrative-driven ↔ Information-driven

#### F) Persona & Audience
- **Who they write for:** Inferred target reader (role, seniority, industry)
- **Assumed knowledge level:** Beginner ↔ Intermediate ↔ Expert
- **Point of view:** First person singular (I) ↔ First person plural (we) ↔ Second person (you) ↔ Third person
- **Reader relationship:** Peer ↔ Teacher ↔ Service provider

### Phase 4: Generate Brand Voice Profile

Produce a Markdown document with this structure:

```markdown
# Brand Voice Profile: [Company Name]
**Analyzed:** [Date] | **Content pieces analyzed:** [N]
**Sources:** [list of URLs analyzed]

---

## Voice Summary (2-3 sentences)

[Company] writes in a [tone] voice that [description]. Their content targets
[audience] and assumes [knowledge level]. The overall feel is [adjectives].

---

## Tone Profile

| Dimension | Position | Evidence |
|-----------|----------|----------|
| Formality | [e.g., Professional-casual] | [Example quote] |
| Emotional Register | [e.g., Measured, occasionally excited] | [Example] |
| Authority | [e.g., Expert/teacher] | [Example] |
| Humor | [e.g., Rare, dry when used] | [Example] |
| Directness | [e.g., Very direct, bold claims] | [Example] |

---

## Language & Vocabulary

### Reading Level
[Grade level estimate and what that means]

### Signature Phrases
- "[phrase 1]" — used frequently to [purpose]
- "[phrase 2]" — recurring pattern in [context]

### Jargon & Technical Depth
[How much industry jargon they use, how they handle technical concepts]

### Words They Love
[List of frequently used power words, adjectives, verbs]

### Words They Avoid
[Notable absences or patterns they steer away from]

---

## Structure & Formatting

### Typical Article Structure
[Outline of how their articles are typically organized]

### Sentence & Paragraph Style
- Average sentence length: [X words]
- Typical paragraph: [X sentences]
- Notable patterns: [fragments, rhetorical questions, etc.]

### Formatting Habits
- Headers: [style]
- Lists: [frequency and style]
- Emphasis: [bold/italic patterns]
- CTAs: [where, how often, what language]

---

## Audience & Persona

### Target Reader
[Role, seniority, industry, pain points they address]

### Knowledge Assumptions
[What they assume the reader already knows]

### Point of View
[I/we/you usage and what it signals]

---

## Writing Guidelines (Actionable)

Use these guidelines when writing content, outreach, or campaigns for [Company]:

### Do
- [Guideline 1 with example]
- [Guideline 2 with example]
- [Guideline 3 with example]

### Don't
- [Anti-pattern 1]
- [Anti-pattern 2]
- [Anti-pattern 3]

### Voice Samples

**Their style:**
> [2-3 representative quotes from their content that exemplify the voice]

**How to match it:**
> [2-3 example sentences written in their voice about a neutral topic]
```

## Tips

- **15 pages is the sweet spot.** Fewer than 10 won't capture enough variation. More than 25 adds cost without much signal.
- **Blog posts are the best voice signal.** Landing pages are more formulaic. Blog posts show the authentic voice.
- **Look for consistency AND inconsistency.** If their tone shifts dramatically between content types, note it — they may have multiple voice modes.
- **Check for ghost-written content.** If some posts feel dramatically different, they may use external writers. Flag this in the analysis.
- **This skill has no code script.** It's an agent-executed skill — the AI agent reads the content via WebFetch and performs the analysis directly. The structured output template above guides the analysis.

## Dependencies

- Web fetch capability (for reading content pages)
- Optional: `site-content-catalog` output (for selecting which content to analyze)
- No API keys or paid tools required

Related Skills

voice-of-customer-synthesizer

380
from gooseworks-ai/goose-skills

Aggregate customer feedback from multiple sources — support tickets, NPS comments, Slack messages, G2 reviews, call transcripts, survey responses — into a unified VoC report with theme clustering, sentiment analysis, trend detection, and actionable recommendations for product, marketing, and CS teams. Chains review-site-scraper for public review data.

visual-brand-extractor

380
from gooseworks-ai/goose-skills

Extract visual branding (colors, typography, layout patterns) from a client's website and generate a style preset compatible with the HTML slides skill and a brand config JSON for the content asset creator. Uses WebFetch to read pages and analyzes CSS/HTML to identify the color palette, font pairings, and aesthetic patterns.

orthogonal-get-brand-assets

380
from gooseworks-ai/goose-skills

Get company logos, brand colors, fonts, and style guides

orthogonal-brand-dev

380
from gooseworks-ai/goose-skills

Brand intelligence - logos, colors, fonts, styleguides, and company data from any domain

linkedin-commenter-extractor

380
from gooseworks-ai/goose-skills

Extract commenters from LinkedIn posts via Apify. Returns commenter names, titles, LinkedIn profile URLs, and comment text. Use to find warm leads engaging with relevant discussions. No LinkedIn cookies required.

competitor-monitoring-system

381
from gooseworks-ai/goose-skills

Set up and run ongoing competitive intelligence monitoring for a client. Tracks competitor content, ads, reviews, social, and product moves.

client-packet-engine

381
from gooseworks-ai/goose-skills

Batch client packet generator. Takes company names/URLs, runs intelligence + strategy generation, presents strategies for human selection, executes selected strategies in pitch-packet mode (no live campaigns or paid enrichment), and packages into local delivery packets.

client-package-notion

381
from gooseworks-ai/goose-skills

Package all work done for a client into a shareable Notion page with subpages and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured Notion workspace the client can browse. Lead list CSVs are uploaded to Google Sheets and linked from the Notion pages. Use when you want to deliver work to a client in a polished, navigable format.

client-package-local

381
from gooseworks-ai/goose-skills

Package all work done for a client into a local filesystem delivery package with .md files and Google Sheets. Reads the client's folder (strategies, campaigns, content, leads, notes) and builds a structured directory with dated deliverables. Lead lists are uploaded to Google Sheets and linked from the markdown files. Use when you want to deliver work to a client in a polished, navigable format without requiring Notion.

client-onboarding

381
from gooseworks-ai/goose-skills

Full client onboarding: intelligence gathering, synthesis into Client Intelligence Package, and growth strategy generation. Phases 1-3 of the Client Launch Playbook.

lead-discovery

381
from gooseworks-ai/goose-skills

Orchestrator that runs first for lead generation requests. Gathers business context via website analysis or questions, identifies competitors, builds ICP, and routes to signal skills with pre-filled inputs.

serp-feature-sniper

381
from gooseworks-ai/goose-skills

Analyze SERP features per keyword (featured snippets, PAA, video carousels, knowledge panels, image packs) and produce optimized content structures to win them. Identifies which features are winnable, who currently holds them, and exactly how to format your content to steal them.