Agent skill

Generate Voice Guide

by gooseworks-ai in gooseworks-ai/goose-skills

Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops.

MITAuto-check passedWriting & Content

Install Generate Voice Guide

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill generate-voice-guide -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills generate-voice-guide --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/brand/capabilities/generate-voice-guide .claude/skills/generate-voice-guide && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
generate-voice-guide
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.1k tokens
SKILL.md length
1,007 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops.

  • Works in 4 steps: Scrape past posts → Generate v1 voice guide → Sample + feedback loop (5+ iterations) → …
  • Tasks that involve Landing pages
  • SKILL.md covers When to use, Quick Start, Discovery Questions… and Workflow, plus 6 more sections
  • Needs APIFY_API_TOKEN

What it does

Generate Voice Guide is an agent skill from gooseworks-ai/goose-skills. Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Produces a structured markdown voice guide that sibling skills (create-x-content, create-linkedin-content) consume to draft in-voice posts. Different from brand-voice-extractor, which analyses company blogs/landing pages — this skill is for personal social voice.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It sits in Writing & Content, covering Landing pages, Brand voice and tone and Web scraping. It works with LinkedIn, X (Twitter) and Apify. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.

When your agent uses it

  • Tasks that involve Landing pages
  • Tasks that involve Brand voice and tone
  • Tasks that involve Web scraping

Example prompts

  • “/generate-voice-guide”

Requirements

  • Python 3
  • A credential in APIFY_API_TOKEN

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Scrape past posts
  2. Generate v1 voice guide
  3. Sample + feedback loop (5+ iterations)
  4. Save + register

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APIFY_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Generate Voice Guide loads about 2.1k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 1,007 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,007 words, ~2,098 tokens.

Download SKILL.mdSave it as .claude/skills/generate-voice-guide/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
generate-voice-guide
description
Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Produces a structured markdown voice guide that sibling skills (create-x-content, create-linkedin-content) consume to draft in-voice posts. Different from brand-voice-extractor, which analyses company blogs/landing pages — this skill is for personal social voice.
tags
content, social

Generate Voice Guide

Turn a real person's past posts into a structured voice guide that other skills can use to draft in-voice content. Produces one guide per platform (X, LinkedIn, or both) with persona, dos/don'ts, banned phrases, hook patterns, format rules, and example posts.

This is an agent-executed skill — the agent handles scraping, analysis, drafting, and iteration via the tools available in the session. No bundled Python script.

When to use

  • A user wants to build a personal voice guide for social content
  • Another skill (e.g. create-x-content, create-linkedin-content, social-kit) needs a voice guide and one doesn't exist
  • The user wants to mimic someone else's public voice (for ghostwriting, parody, or study)

When NOT to use: For analysing a company's blog/landing-page voice, use brand-voice-extractor instead. That's for corporate marketing voice; this one is for individual social voice.

Quick Start

Interactive:

/generate-voice-guide

Args mode:

/generate-voice-guide --profile @GooseworksAI --platforms x,linkedin --output ~/.goose-skills/voice-guides

Discovery Questions (front-loaded)

Ask these up front if not supplied via flags:

  1. Whose voice? "Paste an X/Twitter handle (e.g. @GooseworksAI), a LinkedIn profile URL, or both. You can mimic your own voice or someone else's."
  2. Which platforms? "Generate a voice guide for X, LinkedIn, or both?"
  3. How many posts to scan? "Default: 50 X posts / 25 LinkedIn posts. Higher = more signal, more tokens, slower."
  4. Save location? "Default: ~/.goose-skills/voice-guides/voice-{x,linkedin}.md. Ok to use that, or prefer a different path?"

Workflow

Phase 1 — Scrape past posts

For X:

  • Use Apify actor apidojo/twitter-user-tweets-scraper (or whichever X scraper is available in the session) keyed to the handle.
  • Fetch the target count (default 50). Exclude replies, retweets, and quote tweets unless the user specifies otherwise — we want original voice.
  • Requires APIFY_API_TOKEN env var. If missing, surface a clear error with the setup link.

For LinkedIn:

  • Use Apify actor harvestapi/linkedin-profile-posts keyed to the profile URL.
  • Fetch the target count (default 25). Include only original posts (no reshares).

Fallback (no scraper available or posts paywalled): ask the user to paste 15–25 posts as plain text.

Store raw post text, engagement metrics (likes, views if available), and timestamps.

Phase 2 — Generate v1 voice guide

Use voice-x.md / voice-linkedin.md template references (see "Template Skeleton" below) to produce v1 of the guide. Do NOT copy content from them — only the structure.

Analyse the scraped posts for:

  • Persona — inferred role, audience, credentials, tone spectrum
  • The "meat" principle — what concrete substance typically appears: tools, numbers, builds, steps, links
  • Dos — observed hook patterns, connective phrases, list style, casual asides, emoji usage, CTA patterns
  • Don'ts — patterns the author conspicuously avoids (no threads, no engagement bait, etc.)
  • Banned phrases — common LLM-speak the author never uses (excited to share, leverage, game-changing, thrilled, etc.). List 10–20.
  • Hook patterns — 5–8 distinct opening-line templates drawn from real posts
  • Format rules — word count ranges, bullet style, density, line-break rhythm
  • Tone calibration — educator vs conversational ratio; when each applies
  • Example posts with analysis — pull 4–6 real posts and explain why each works, what pattern it exemplifies
Phase 3 — Sample + feedback loop (5+ iterations)

This is where voice-guide quality is made. Do NOT skip iterations.

Each iteration:

  1. Generate 3 sample posts from the current guide, each using a different hook pattern from the guide. Use topics from the user's own posting history so they're easy to judge (e.g. if they post about AI agents, draft on AI agents).
  2. Show the user:
    • Which hook pattern each sample used
    • The 3 sample posts
    • 1–2 lines from the current guide that most influenced the samples
  3. Ask for feedback — specific prompts:
    • "Which samples sound like you? Which don't?"
    • "What's the most off-sounding phrase or pattern?"
    • "What's missing — a hook you use, a rule you follow?"
  4. Apply feedback — revise the guide. Update dos/don'ts, hook patterns, banned phrases, examples. Note what changed in a short changelog at the top of the guide during iteration.
  5. Repeat.

Stopping rule: continue until the user explicitly says "this is good" AND at least 5 iterations have completed. 5 is a floor, not a ceiling. If the user says "good enough" at iteration 2, push back: "Voice guides need at least 5 rounds to actually lock in. Can we do 3 more?"

Show full SKILL.md (342 more words)Show less
Phase 4 — Save + register
  1. Write the final guide to the resolved output path (default ~/.goose-skills/voice-guides/voice-<platform>.md).
  2. Strip the iteration changelog — only keep the final clean guide.
  3. Update ~/.goose-skills/config.json:
    json
    {
      "voice_guides": {
        "x": "<absolute path to voice-x.md>",
        "linkedin": "<absolute path to voice-linkedin.md>"
      }
    }
    Create the directory/file if missing. Merge with existing config if present (don't overwrite other keys).
  4. Print a confirmation with the saved paths and a next-step suggestion: "You can now run /create-x-content --brief \"...\" and it'll use this voice guide automatically."

Template Skeleton

Every generated voice guide should have these top-level sections, in order:

# Voice Guide: <Platform> — <Handle or Name>

## Persona
## The "Meat" Principle
## Dos
## Don'ts
## Banned Phrases
## Hook Patterns
## CTA Guidelines
## Format Rules
## Tone Calibration
## Example Posts That Exemplify The Voice

Match the depth and specificity of a well-written voice guide — prose for persona, numbered lists for dos/don'ts, quoted examples with analysis. Aim for 120–250 lines.

Config File

~/.goose-skills/config.json is a lightweight cross-skill config. Schema:

json
{
  "voice_guides": {
    "x": "/absolute/path/to/voice-x.md",
    "linkedin": "/absolute/path/to/voice-linkedin.md"
  }
}

Sibling skills read this to discover voice guide paths. Always use absolute paths.

Inputs

InputRequiredDefault
--profileYes (one of X handle, LinkedIn URL, or both)—
--platformsNox,linkedin if both profiles given, else matches supplied profiles
--posts-xNo50
--posts-linkedinNo25
--outputNo~/.goose-skills/voice-guides
--iterations-minNo5

Outputs

  • <output>/voice-x.md and/or <output>/voice-linkedin.md
  • Updated ~/.goose-skills/config.json with voice guide paths
  • Stdout summary: paths written + quick-start command for next step

Dependencies

  • Apify API token (APIFY_API_TOKEN) for scraping
  • No other paid services required
  • Voice guide structural references (open via WebFetch or read locally if the user has them) — not required to run

Tips

  • 5+ iterations is the floor. If the user pushes to stop early, explain that voice guides are only good after ~5 rounds.
  • Use the user's own topics for samples. Draft samples on subjects they've posted about — makes it much easier for them to spot an off-key line.
  • Quote real posts in the examples section. Never paraphrase — use direct verbatim quotes with a source link.
  • Call out ghost-writing or assistant-authored posts. If some posts feel dramatically different, flag it: "These 3 posts read differently — worth checking if they're yours or ghost-written."
  • Don't lean on LLM clichés in the banned-phrases list. Derive bans from actual absence in the user's writing, not a generic blocklist.

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/brand/capabilities/generate-voice-guide of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Generate Voice Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Generate Voice Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Generate Voice Guide this skillgooseworks-ai/goose-skills1.2k1 repos~2.1kAutomated safety check: PassMIT
Apify Ads Intelligenceapify/awesome-skills266—~4.2kAutomated safety check: NotesApache-2.0
Content Writerchrispangg/deepagentsdk128—~3.3kAutomated safety check: PassMIT
Linkedin Engager Analyticssergebulaev/linkedin-skills4.4k1 repos~1.4kAutomated safety check: PassMIT
Caption Writerstevenflanagan1/social-ai-team244—~2.9kAutomated safety check: PassNone
Post Scorercharlie947/social-media-skills3.8k—~2.4kAutomated safety check: PassMIT

Similar skills

  • Apify Ads Intelligence

    apify/awesome-skills

    Official

    Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X…

    266 GitHub stars~4.2k tokensUpdated 18 days ago
    Marketing & SEOAuto-check: notes
  • Content Writer

    chrispangg/deepagentsdk

    Writing content across different platforms and styles. An agent skill from chrispangg/deepagentsdk.

    128 GitHub stars~3.3k tokensUpdated 7 mo ago
    Writing & ContentAuto-check passed
  • Linkedin Engager Analytics

    sergebulaev/linkedin-skills

    Pull the people who liked or commented on any LinkedIn post and segment them by ICP fit (peer / aspirational / prospect / other).

    4.4k GitHub starsUsed in 1 repo~1.4k tokens
    Writing & ContentAuto-check passed
  • Caption Writer

    stevenflanagan1/social-ai-team

    Writes on-brand social media captions for SMBs. An agent skill from stevenflanagan1/social-ai-team.

    244 GitHub stars~2.9k tokensUpdated 4 days ago
    Writing & ContentAuto-check passed
  • Post Scorer

    charlie947/social-media-skills

    Score a LinkedIn post using real performance data. An agent skill from charlie947/social-media-skills.

    3.8k GitHub stars~2.4k tokensUpdated 26 days ago
    Writing & ContentAuto-check passed
  • Content Creator Pro

    LeoYeAI/openclaw-master-skills

    Autonomous content creation engine for agents. An agent skill from LeoYeAI/openclaw-master-skills.

    2.2k GitHub stars~7.2k tokensUpdated 2 mo ago
    Writing & ContentAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Questions about Generate Voice Guide

What does Generate Voice Guide do?

Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops. Generate Voice Guide is an agent skill from gooseworks-ai/goose-skills. Generate a personal voice guide for X (Twitter) and/or LinkedIn by scanning a user's past posts and iteratively refining with sample-and-feedback loops.

When should I use Generate Voice Guide?

Generate Voice Guide fits situations like: tasks that involve Landing pages; tasks that involve Brand voice and tone; tasks that involve Web scraping.

How do I install Generate Voice Guide in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill generate-voice-guide -a claude-code`. Or copy the skill folder (skills/brand/capabilities/generate-voice-guide in gooseworks-ai/goose-skills) into .claude/skills/generate-voice-guide in your project. Claude Code loads it when a task matches its description.

How do I install Generate Voice Guide in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill generate-voice-guide -a codex`. Or copy the skill folder (skills/brand/capabilities/generate-voice-guide in gooseworks-ai/goose-skills) into .agents/skills/generate-voice-guide in your project. Codex loads it when a task matches its description.

Can I use Generate Voice Guide in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill generate-voice-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generate-voice-guide, .gemini/skills/generate-voice-guide, .github/skills/generate-voice-guide and .opencode/skills/generate-voice-guide in your project.

What does Generate Voice Guide need to run?

Going by SKILL.md and its folder, Generate Voice Guide needs credentials named APIFY_API_TOKEN. Our summary lists: Python 3; A credential in APIFY_API_TOKEN.

Does Generate Voice Guide access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Generate Voice Guide safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Generate Voice Guide use?

Generate Voice Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Generate Voice Guide use?

About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Generate Voice Guide?

Skills that share tags, products or a category with Generate Voice Guide: Apify Ads Intelligence (apify/awesome-skills, 266 stars), Content Writer (chrispangg/deepagentsdk, 128 stars), Linkedin Engager Analytics (sergebulaev/linkedin-skills, 4.4k stars) and Caption Writer (stevenflanagan1/social-ai-team, 244 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Generate Voice Guide?

gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.

Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.