Table of contents
Why I did this
Most "AI brand voice" tools are doing the same thing — you paste a few posts, it generates new posts that sort of sound like you, and within three weeks your feed looks like every other engineer using ChatGPT. The voice flattens, the hooks get formulaic, and the audience can tell.
I wanted something different. I wanted a skill — a reusable, persistent instruction set that Claude loads every time I ask it to write a LinkedIn post. Not a prompt I paste once and lose. A piece of context that lives with me, knows what I sound like, knows what I refuse to sound like, and gets sharper every time I push back on it.
This document walks through the entire process — the prompt I started with, the questions Claude asked me, the answers that changed the direction, the iteration loops, and the things I learned about my own brand by doing this exercise. The methodology is the value. Steal any of it for your own work, or for a client.
The methodology, in four phases
Here's the shape of the process — each phase is covered in detail below.
The whole process took about 4 hours of active conversation. The skill is now ~32 KB of markdown and will be reused for every post I write going forward.
The interview matters more than the building. If you skip the interview, you get an AI that confidently generates content for someone who doesn't exist.
The interview
My opening prompt
I started with a long, specific prompt — not "write me LinkedIn posts" but a structured brief. The "95% confidence" framing is what unlocked the actual depth of the conversation that followed. If you're doing this for a client, write a brief like this with them in a kickoff session. Most people will say "write LinkedIn posts for me" and stop — that's why the output is generic.
View the full opening prompt
Create me a write content skill that writes social media posts in my brand voice about my personal brand. Look at these LinkedIn profiles [15 URLs of people I admire] and analyze their posting strategy, what they post, what performs well, what hooks they use, what tonality, what positioning. This is my LinkedIn profile, search for my top performing posts and figure out what is right in it.
Content Strategy — the topics should revolve around: engineering feats, engineering mistakes, uncommon tech-stack facts, basic mistakes people make in a given stack, AI productivity, leadership mistakes I made, leadership lessons I learnt, fears I had starting out, impostor syndrome, side projects (Dubai Youth Community), community building, technology updates, AI news, automation vs AI where people fail, problem decomposition.
Goals: position myself as a software engineer who drives results, can work across industries, and in the end is a human who has a cause for humanity — bring people closer, find joy in leadership, helping people, public speaking, organizing events. THIS SHOULD PURELY GENERATE CONTENT FOR LINKEDIN.
End goal: more career and networking opportunities, where I can share my knowledge, build for clients, and solve problems via software.
What sounds like me / what doesn't: it shouldn't be robotic with specific pauses and a monotonous tone that screams "this is AI." I don't use a lot of technical jargon — I keep things broken down so a five-year-old could understand. I don't brag — I'm a storyteller, I use analogies sometimes, but I don't overdo it.
Platform notes: keep it professional but a little casual, so I don't come off as the "LinkedIn Bro." Keep it raw. Keep it real.
Interview me until you're 95% confident the outputs will reflect my brand.
Claude's honest opening
Before Claude asked any questions, it told me two things I didn't expect:
- It couldn't actually read those 15 LinkedIn profiles. LinkedIn is auth-gated and JavaScript-rendered. Most web scraping tools (including the one Claude has) just return an empty shell. This is true of almost every "AI tool that analyzes LinkedIn." If they're claiming to scrape profiles in real-time, they're either using paid LinkedIn API access, or they're not actually reading the data.
- It had no memory of past conversations with me. Every session starts fresh. So if I had brand notes elsewhere, I should paste them.
This was the first lesson: be honest about source-material limits up front. Don't promise the client you'll do something the tool can't actually do.
How to actually get the LinkedIn data
Two approaches that do work, depending on how much setup time you have:
- Use Claude via Chrome in Claude.ai: Claude.ai's Projects interface supports browser access through a Chrome connector. Open the LinkedIn profiles in Chrome, connect Claude to the active tab through the Claude.ai web interface, and it can read the live page content directly during your session — no scraping, no API, no shell. This is the cleanest path if you're doing this kind of research regularly.
- Copy the top-performing posts manually: Go to each creator's profile, click "Show all posts" and sort by Top posts, then copy the post body text. Paste 3–5 posts per creator directly into the prompt and ask Claude to extract their signature moves. It adds 15–20 minutes of setup, but the signal is clean and verified — you know exactly what Claude is analyzing.
The second option is what I ended up doing for the three creators where web-search signal was too thin. Manual copy is slower; the output is noticeably sharper.
The foundations
Claude asked six open-ended questions covering identity, story, voice, and goal, in that order. You can't write in someone's voice until you know what they sound like casually.
- Who are you? Senior Full Stack Developer at OSN (Dubai, 2.5 years), 7 years total experience, prior at CureMD Pakistan. Engineering wins: 60% K8s system load reduction, API response times from 8–10 seconds to 3–10 ms with CDN, 99.93% API improvements, B2B telco integrations.
- The Dubai Youth Community origin story. Moved to Dubai alone, no friends, attended a board games meetup hosted by DYC, became friends with the host, eventually asked to co-host a book club. Now 200+ events, 3,000+ people. Mission: making it not weird to show up alone.
- Of the 15 reference profiles, which 2–3 voices are closest? Narrowed to four (a different mix of technical, fun, and personality-driven) because I wanted Claude to learn how to extract a personality, not imitate one voice wholesale.
- Your own top-performing post. I shared one post written entirely myself that significantly outperformed everything else. It became the calibration anchor for the whole skill.
- The five-year-old test. Two real voice samples: one about using AI to build a community portal, one about fixing release management at CureMD. Both written casually, the way I'd explain it to a friend.
- What opportunities do you want? Ranked: (1) consulting/freelance leads, (2) full-time offers, (3) speaking gigs, (4) podcast appearances, (5) collaborators and friends.
The mechanics
Claude switched to a multiple-choice format and asked four quick questions. Mechanics decisions feel small but compound: "no hashtags" alone removes one of the strongest LinkedIn-bro signals.
| Question | My answer |
|---|---|
| Posting cadence | 3–4 times per week |
| Default post length | Mix it up (skill picks based on topic) |
| Beyond plain text, what formats? | Carousel scripts, polls, comment-bait questions |
| Hashtags and emojis policy | No hashtags, no emojis (revised later; see iteration phase) |
Voice, cringe, positioning, invocation
This was where the real work happened. Four questions:
- The cringe list. Claude asked for 3 specific lines or LinkedIn tropes I'd never write. I pasted six full LinkedIn posts: four from others I find cringe-worthy, two of my own I now dislike. Concrete failure cases, not abstract rules.
- A second voice sample. Two more pieces of casual writing: one about a personal side project, one about a process I built.
- Current positioning. My exact LinkedIn headline plus my one-sentence self-description: "I am a software engineer, who solves problems for a living, and loves to meet new people to discuss ideas, and build friendships."
- How will I invoke this skill? Topic only, topic plus story, draft to polish, or all of the above. I picked "all" plus brainstorm mode.
The cringe list — why what you hate matters as much as what you love
Most people training an AI on their voice share examples they like. They paste their best posts and say "more like this." This works, but it leaves a huge gap — the AI doesn't know what not to do. So it defaults to LinkedIn norms, which means it drifts toward exactly the slop you were trying to avoid.
I pasted six examples I find cringe-worthy. Here are the anti-patterns Claude extracted, now a literal section in the SKILL.md, explicitly forbidden. Claude self-checks against this list before delivering a draft.
- Stat-shock openers: "Company X went from 1.19M visitors to 29K in 15 months." Feels manipulative, not informative.
- Doom-prophet voice: "That era is over." Performative declarations with no stake in them.
- Emoji-bulleted listicles: 1️⃣ 2️⃣ 3️⃣ with bolded unicode (𝟳 𝗔𝗜). Reads like spam.
- ❌/✅ comparison templates: "You say this / say this instead." Tidy and lifeless.
- Engagement-bait closers: "Bookmark this." "Tag someone who needs this." "Share with…"
- News-aggregator posts: Long opinions on what another founder or company did, where the entire post is reaction rather than original perspective.
- Tidy lessons-learned listicles: "What was wrong / what we fixed." Shaped like a report, not like a person talking.
For client work: spend half your discovery time asking what they hate. People will tell you what makes them wince much more vividly than what they love.
The build
After the interview, Claude wrote a 32 KB SKILL.md file. The structure matters because it's the structure Claude will load every time. Each section is doing a specific job. Strip any one of them and the output suffers.
- Bio and positioning: who I am, my self-description, what each post is trying to achieve, ranked.
- The voice fingerprint: three distinct modes: Storyteller (community, personal realizations, leadership), Shop-talk (technical work), and Community/cause (DYC, friendship, gathering humans).
- My top-performing post: quoted verbatim, annotated line by line. The calibration anchor.
- The anti-patterns list: every cringe pattern codified and explicitly blocked.
- Three invocation patterns: topic only, topic plus story, or brainstorm mode.
- A topic library: themes grouped, with examples of how to anchor each to my actual life.
- Five format templates: story post, short take, carousel script, poll, comment-bait question. Each with a skeleton structure.
- A writing-process checklist: steps to follow every time, including a self-check against anti-patterns before delivery.
- A "sounds-like-AI" detection section: three-beat parallel sentences, em-dash crutches, words I don't use (delve, leverage, "in today's landscape"), aphorism-stacking.
- A worked example: a sample post with hook check, voice mode, format, and pinned-comment suggestion.
The hardest section to write was the voice fingerprint. "Casual, professional, story-driven" isn't specific enough to do anything with. The actual fingerprint had to capture rhythm — that I write in stacked-clause sentences, open with small admissions instead of theses, and close with invitations rather than CTAs.
Verification
Before declaring the skill done, Claude generated one fresh sample post in a different voice mode than the one used in the build (so it wasn't just reproducing the worked example). Then it audited that post against every line of the cringe list, and against the texture of my top-performing post.
The audit was a table: 20 anti-pattern checks (all passing) and eight texture-match checks against my real post (all matching).
Don't trust that the skill works just because it looks good. Make it prove itself. If you're building this for a client, do this audit in their presence so they see the receipts.
Iteration
I pushed back on two things after reading the first draft. Both pushes shaped v1.1.
The emoji policy was too strict
Claude's first draft said "no emojis except a single sign-off emoji at the end of friendly story-mode posts." But my own top-performing post ends with 😊, and a few of my best posts have one warm emoji in the body when it lands naturally. I told Claude: "sometimes emojis are fine, it makes the post human."
Claude updated the rule from "sign-off only" to "use when they make a post feel more human — the test is: if removing the emoji loses warmth, keep it; if removing it loses nothing, it was decoration, cut it." Decorative emoji-spam (rockets, fires, pointing-arrows) is still blocked.
The anchor-asking behavior needed teeth
The skill is designed so that if I give it a bare topic with no story attached, it stops and asks me one anchoring question before drafting. Without the anchor, you get generic posts.
But Claude's first draft just said "ask the question." In testing, it would ask, get an answer, and then still write the post it had half-planned. I told Claude the answer should drive the post direction.
Claude rewrote the rule to be explicit: the user's answer to the anchoring question becomes the spine of the draft. The hook references it directly, the body's emotional beat is built around it, the close lands back near it. If the answer surprises the skill, follow the surprise. That's the post.
Reference voices — still in progress
I asked Claude to research 8 LinkedIn creators I admire and extract their signature moves. Claude ran into the same limit it told me about at the start: LinkedIn profiles can't be reliably scraped without authenticated access.
What Claude could do: web-search each name and pull biographical context plus post titles. From those, it inferred a signature move per voice. For three of the eight, the signal was too thin. Claude marked those as "insufficient signal: do not invent patterns" and asked me to paste sample posts manually.
Nine things I learned that you can steal for a client
Interview first. Always.
No tool can write in someone's voice if it doesn't know what they sound like. Plan 30–60 minutes of structured interview before any output gets generated.
Get the anti-patterns, not just the patterns.
Ask "what do you hate?" as carefully as "what do you love?" The cringe list does as much work as the inspiration list — maybe more.
Find the calibration anchor.
Pick one post the client has written and loved. That post becomes the texture reference. The skill should match its rhythm before it tries anything else.
Voice is not one thing — find the modes.
Most people have 2–4 distinct registers depending on topic. Codify each one separately. A "general brand voice" instruction is almost always too vague.
Anchor every output to a real specific.
Generic content is what AI produces by default. Make the skill ask for an anchor — a person, a moment, a scene from real life — and make sure it uses that anchor.
Never let the AI invent stories.
The skill should ask, not assume. "If there's no anchor, stop and ask one question" prevents 80% of the fabrication problems.
Reference voices are craft moves, not targets.
Find the specific move the client wants to borrow and codify it as one technique. Don't try to clone the whole voice.
Iterate the skill, not the output.
When a generated post drifts, find the rule that let the bad post happen and fix the rule. This is how the system gets sharper over time.
Be honest about source-material limits.
If you can't scrape the platform or access the data — say so up front. The honesty earns more trust than the workaround would.
What's still missing
Two real gaps in the current skill that I'm leaving open for now:
- The reference voices are inferred, not observed. I haven't yet gotten Claude to read full post bodies from the 8 creators I named. The "patterns to borrow" section is calibrated against biographical context and post titles — directionally useful but not the depth I want long-term.
- The skill is calibrated against one of my posts. I'd like to feed it 5–10 of my own posts — the wins, the misses, the ones I posted reluctantly — and let it learn what actually lands versus what I've been told should land.
Both gaps close once I either fix the LinkedIn-access issue or paste enough samples manually. The skill is good now. It can get sharper.
The skill is the artifact. The interview was the work.
The single most important thing I learned doing this exercise was that I knew my brand better than I thought, but had never articulated it. The interview forced me to write down rules I'd been carrying around in my head — that I don't post for the sake of posting, that I open with admissions instead of theses, that the HOW matters more than the WHAT, that I'd rather have one person message me with a real conversation than 10,000 impressions on a hot take.
If you're a marketer doing this for a client, the value isn't in handing them a fancy AI tool. The value is in being the person who asks the right questions and codifies what they hear. The AI is the typist. You're the editor.
Steal the methodology. Modify it for your client. Send me a note if it works.
The full skill (SKILL.md, ~32 KB) is available on request, as is the verification document showing the audit results.