Teach Claude Your VoiceFrom Your Last 30 Posts
Most people describe their voice to Claude in one line: "Direct, casual, no fluff, sounds like me." That line describes half of LinkedIn, so Claude writes like everyone else who typed it. This guide counts what you actually do instead.
Free · 1 Claude skill, or 1 prompt · 5 prompts · My full voice file
01 · Read this first
Stop describing your voice. Count it.
Claude opens your LinkedIn in its own browser, reads your last 30 posts, counts what you actually do, and writes it down as rules a script can check. Every draft gets checked against those rules before you see it, and every line you reject goes on a ban list so it never comes back.
By the end you'll have a voice file built from your own posts, your openings ranked by how they actually did, and a check that catches the lines that don't sound like you.
02 · How it works
Your posts, counted, then checked
Claude doesn't guess how you write. It reads your posts and counts.
It reads them in its own browser. The Claude desktop app has a browser built in. Claude opens your LinkedIn activity page there, scrolls through your last 30 posts and saves each one with its date, its text, and its reactions, comments, reposts and impressions.
Why the browser and not a scraping tool. You're signed in as yourself, so LinkedIn shows Claude your impressions, which no outside scraper can see. There's no API key, no paid tool and nothing to copy and paste.
Then it counts. A small script counts how long your posts are, how your first lines open, which punctuation and emoji you use, where you put a P.S., which casual words you use and where, which words you put in caps, and which posts did best.
Then it writes the voice file. Only rules with a count behind them go in. "Casual tone" is not a rule. "lol in 5 regular posts, never in a lead magnet post" is.
Then it checks every draft. A second script reads the draft and your voice file and flags every line that breaks your rules or sits on your ban list. Claude fixes them before you see the draft.
| You end up with | What it's for |
|---|---|
| posts.json | Your last 30 posts with their numbers. The raw material. |
| stats.md | Everything the script counted. Every rule in the voice file traces back here. |
| voice-file.md | Your voice, as rules Claude reads before every draft. The ban list lives at the bottom. |
03 · Before you start
What you need on your computer
You need
- The Claude desktop app on Mac or Windows. Claude's browser lives there, and this skill needs it.
- A Claude plan with code execution on. Skills work on the Free, Pro, Max, Team and Enterprise plans.
- Your LinkedIn profile address, like
linkedin.com/in/your-handle. - At least 30 posts on LinkedIn. Fewer works, but the counts get shaky.
Turn on code execution
- Open Claude.
- Go to Settings > Capabilities.
- Turn on Code execution and file creation.
On Team or Enterprise, an owner turns on code execution and skills in Organization settings.
Sign in to LinkedIn in Claude's browser
The first time Claude opens LinkedIn, it may show the sign-in page. Sign in yourself, inside the browser panel. Claude never types your password.
04 · Step 1
Install the skill, or paste one prompt
Everything Claude needs is in one skill: the instructions, the script that reads your posts, the script that counts, the draft check, the empty voice file and my finished one as an example.
linkedin-voice.zipThe Claude skillDownloadInstall it in the Claude app
- Download
linkedin-voice.zipabove. Don't unzip it. - In Claude, go to Customize > Skills, click +, then + Create skill > Upload a skill.
- Select
linkedin-voice.zip.
Result: linkedin-voice shows in your skills list. Make sure its toggle is on.
Or skip the download: use a prompt
Rather not install anything? This prompt gives Claude the same method. Claude writes the counting and the draft check itself, instead of using the scripts in the skill, so the numbers can come out a little different from run to run.
- In the Claude desktop app, create a Project and call it "My LinkedIn voice".
- Paste the prompt below into the Project's Instructions and change the part in curly brackets.
- Run every step below in a chat inside that Project. Where a prompt says "Use the linkedin-voice skill", leave that line out.
You're going to learn how I write on LinkedIn, from my own posts, and write in that voice. Follow this method in every chat.
PULL MY POSTS
- Open linkedin.com/in/{your-handle}/recent-activity/all/ in your browser. If LinkedIn asks me to sign in, wait while I sign in. Never type my password.
- Scroll and read my last 30 posts. Skip reposts of other people's posts.
- For each one, save the date, the full text, and its reactions, comments, reposts and impressions. Save them all as posts.json, newest first.
COUNT, WITH CODE
- Mark which posts are lead magnet posts (they give something away for a comment) and show me the list so I can correct it. Count them separately from my regular posts everywhere it changes the answer.
- With code, count: post length; my first lines (length, questions, numbers, caps); em dashes and en dashes; emoji; list markers; P.S.; casual words like "lol" and where they appear; words I put in caps; phrases that repeat; and my best and worst posts by reactions, comments and impressions.
BUILD voice-file.md
- Start with the three things in the counts I wouldn't have said about myself.
- A table of rules, each with its count. Only rules a script could check. "Casual tone" is not a rule. "lol in 5 regular posts, never in a lead magnet post" is.
- My opening lines sorted into types, with how many posts and the median reactions and impressions for each type, and one real first line per type, word for word.
- 10 to 15 of my lines copied word for word, with dates. Keep my typos.
- How my posts end, and what changes between my regular posts and my lead magnet posts.
- A ban list table at the bottom: pattern, the line I rejected, why it's not me.
WHEN YOU WRITE A POST
- Read the whole voice file first. Open with one of my opening types, ideally one with good numbers.
- Before you show me the draft, check it with code: no em dashes or emoji unless I use them, no question as the first line unless I open with questions, no P.S. on a regular post unless I use one there, no stock lines like "Here's the thing", nothing from my ban list, and a length close to my usual. Fix everything and check again.
WHEN I REJECT A LINE
- Add it to the ban list with the reason before you rewrite it.05 · Step 2
Pull your last 30 posts, impressions included
Do these steps
- Open the Claude desktop app and start a new chat.
- Paste the prompt below and change the part in curly brackets.
- If Claude asks to use LinkedIn, allow it. If LinkedIn shows a sign-in page, sign in inside the browser panel.
- Keep the browser panel open while Claude reads. It takes a minute or two.
Use the linkedin-voice skill. My LinkedIn is linkedin.com/in/{your-handle}.
Open my activity page in your browser and pull my last 30 posts with their reactions, comments, reposts and impressions. Leave out reposts of other people's posts. Save them as posts.json and tell me the date range you got.Result: posts.json with your last 30 posts, newest first.
If it stops before 30. LinkedIn sometimes stops loading older posts. Scroll to the end of your posts in the browser panel, click the button there ("Load more" or "See new posts", depending on which version of the page LinkedIn shows you), and say "keep going".
If it finds no posts at all. LinkedIn changed the page. It already serves two versions, and the skill reads both. Say: "Find one of my posts on the page and fix the script so it reads them."
Why 30. Enough posts to count, recent enough to be how you write now. More posts means steadier numbers and a longer wait.
06 · Step 3
Rules you can count, not adjectives
Do these steps
- Stay in the same chat and paste the prompt below.
- Check the list of lead magnet posts Claude shows you, and correct it.
- Read the three things at the top of the file.
- Save
voice-file.md.
Now build my voice file from posts.json. 1. Mark which posts are lead magnet posts (the ones that give something away for a comment) and show me the list so I can correct it. 2. Run the counts. 3. Fill the voice file template. Only rules you can count. My opening lines sorted into types and ranked by how they did. 10 to 15 of my lines, word for word. How my posts end. What changes between my regular posts and my lead magnet posts. 4. Start the file with the three things in the counts I wouldn't have said about myself. Save it as voice-file.md.
What a rule should look like
| Not a rule | A rule |
|---|---|
| Casual tone | "lol" in 5 regular posts, 0 lead magnet posts |
| Punchy hooks | First line median 49 characters, 0 of 30 are questions |
| Uses lists | → in all 5 lead magnet posts, 1) in regular posts |
| Keeps it short | Regular posts median 601 characters, lead magnet posts 1,138 |
| Sometimes uses a P.S. | P.S. on 4 of 5 lead magnet posts, 0 of 25 regular posts |
Those are my numbers. Yours will be different, and that's the point.
Keep it in a Project. Put voice-file.md in a Claude Project, and every chat in that Project starts with your voice.
07 · Step 4
Write with it, and check every draft
Do these steps
- Open a chat in your Project, or attach
voice-file.md. - Paste the prompt below and change the part in curly brackets.
- Read the draft out loud next to two of your best posts.
- Reject any line that doesn't sound like you. Step 5 covers what happens next.
Use the linkedin-voice skill and my voice file. Write a regular post about {your idea}.
Open with the opening type that has the best numbers in my voice file.
Run the check and fix everything it flags before you show me the draft.For a lead magnet post, say "lead magnet post" instead of "regular post". The check uses your lead magnet rules for those.
What the check catches
- Em dashes and fake bold letters, if you don't use them
- Lines almost nobody writes on purpose, like "Here's the thing" or "Let's talk about"
- Anything on your ban list
- A question as the opening line, if you never open with one
- A P.S. on a regular post, if you keep those for lead magnet posts
- A draft or an opening line much longer than your usual
What it doesn't catch: rhythm. That's why step 4 says to read the draft out loud.
What a flag looks like
This is the check on a line I once rejected:
line 1: on your ban list: "a room full of" line 1: matches your ban list: /^That's not .+\. That's .+\.$/
The post that sent you here went through the same check before I posted it.
08 · Step 5
Every rejected line, written down
The counts get Claude most of the way. The ban list gets it the rest. Every time a line doesn't sound like you, it goes on the list with the reason, and the check stops it from coming back.
This line doesn't sound like me: "{the line}". Add it to my ban list with the reason, then rewrite it.My first two rows
| Pattern | The line I rejected | Why it's not me |
|---|---|---|
| "a room full of" | "That's not saturation. That's a room full of people not trying." | A picture used as a verdict. I don't write in images like this. |
/^That's not .+\. That's .+\.$/ | Same line | My contrasts only work when both halves are literal. |
Wrap a pattern in /slashes/ when you want to catch a shape of sentence, not just a phrase.
Use the linkedin-voice skill. Pull my last 30 posts again, rebuild my voice file, keep my ban list, and tell me what changed since last time.
09 · My voice file
What it found on my posts
I ran it on my own last 30 posts, Aug 7 to Oct 8, 2026. Three things I wouldn't have said about myself:
1. Em dashes crept in. 6 em dashes, all in 3 posts published between Aug 24 and Aug 27. None in the other 27.
2. My shortest posts are my best. Regular posts under 300 characters got a median of 12 reactions and 477 impressions. Everything longer: 9 and 301.
3. Proof-first openings beat personal ones. Openings that lead with proof (years, a count, a client result) got a median of 15 reactions and 794 impressions. Personal openings got 6 and 226.
How my posts open
| Type | Posts | Median reactions | Median impressions |
|---|---|---|---|
| Flat claim, no setup | 6 | 8 | 640 |
| Tool, news or R.I.P., then the fix | 6 | 16.5 | 1,011 |
| Proof first | 5 | 15 | 794 |
| Personal or story | 5 | 6 | 226 |
| Meme skeleton | 4 | 12 | 476 |
| Whole line in caps | 2 | 7 | 48 |
The whole file is below. Use it to see what a finished one looks like, not as a voice to copy.
daniel-voice-file.mdMy voice file, built from my last 30 postsDownload10 · The 6 mistakes
What makes a voice file useless
1. Adjectives instead of counts
What you see: "Direct, casual, punchy, no fluff." Every voice file on LinkedIn says this.
The fix: a count for every rule. If a script can't check it, it doesn't go in the rules table.
Say: "Replace every adjective in my voice file with a count from my posts."
2. Lead magnet posts mixed in with everything else
What you see: rules that fit neither. Lead magnet posts run longer, use different lists and end differently. Mine are about twice as long as my regular posts.
The fix: count them separately.
Say: "Split every rule into regular posts and lead magnet posts."
3. Only your best posts
What you see: a voice file that never tells you what doesn't work. My two all-caps openings got 0 comments between them, and I'd never have known from my best posts.
The fix: use your last 30, good and bad, and rank them.
Say: "Rank my opening types by median reactions, worst ones included."
4. Describing your lines instead of quoting them
What you see: "Uses short punchy endings." Claude reads that and writes its own idea of a punchy ending.
The fix: 10 to 15 of your real lines, word for word, with dates. Typos included.
Say: "Quote my lines exactly. Don't summarize them."
5. Never refreshing it
What you see: a voice file from three months ago, and posts that drifted away from it. My em dashes showed up in one week and I didn't notice.
The fix: rebuild it once a month and compare.
Say: "Rebuild my voice file and tell me what changed."
6. Fixing a rejected line without writing it down
What you see: the same kind of line coming back two weeks later.
The fix: every rejected line goes on the ban list, with the reason, before the rewrite.
Say: "Add that line to my ban list first, then rewrite it."
11 · The checklist
Before you post
- The check prints
clean. - The opening is one of your types, ideally one with good numbers.
- The length is close to your usual for that kind of post.
- Every number in the post is yours, and you checked it.
- Nothing from your ban list made it in.
- You read it out loud next to two of your best posts, and it sounds like the same person.
12 · The files
Everything in one place
The template and my voice file are also inside the zip, so you don't need them separately to use the skill.
13 · What's next
Do it yourself, or hand it off
Run it yourself. Install the skill, pull your last 30 posts, build your voice file, and send your next draft through the check.
