Blueprints/The LinkedIn Ghostwriter Skill: Write Posts in Any Client's Voice
Skill · Claude

The LinkedIn Ghostwriter Skill: Write Posts in Any Client's Voice

One voice profile per client. Raw notes in, a post that sounds like them out, with every unconfirmed fact in brackets.

Ask Claude for a LinkedIn post and you get the same post everyone else gets: a one-line hook, three fragments, a lesson, a question. Ask it to write "in my client's voice" and it guesses. Agencies and freelancers who ghostwrite for several founders end up re-explaining each voice every week and editing out the same tells by hand. The LinkedIn Ghostwriter Skill is a small folder for Claude: a SKILL.md with the procedure, a voice profile template you fill in once per client (who they are, who reads them, words they use and avoid, three to five of their real posts), and a reference file with six post formats and the hook rules. You name the client and paste your raw material. Claude loads that client's profile, picks a format and says why, gives you three hooks and one full post, then checks the draft against the profile and a list of AI tells before you see it. Any fact, number or name that did not come from you shows up as a [placeholder] on a to-confirm list. This comes from how No Code Founders writes its own LinkedIn posts: three per newsletter issue, drafted by a skill from the issue's notes, then edited. We rebuilt that for the case where you write for other people. The skill does not post anything and does not connect to LinkedIn; you paste the approved version into your scheduler. It also will not make a client interesting if the notes are empty, and it says so instead of padding.

3files: SKILL.md, profile template, post formats
6post formats with hook rules
1voice profile per client
0tools to connect
Get the skill

Copy the three files from modules 01 to 04, add one client profile, then follow Anthropic's guide to zip and upload the folder.

SkillClaude
Claude
SKILL.mdInstalled

A Claude skill

A Claude skill you install once and use every week.

What it does for you

Sounds like the client

Reads one profile per client: words they use, words they avoid, how they close, and their own sample posts for rhythm.

Picks one format and says why

Story, lesson, contrarian with evidence, how-to, case study or observation, chosen from what your notes contain.

Never invents the numbers

Any fact, name or result that did not come from you becomes a [placeholder] and lands on a to-confirm list.

Checks itself for AI tells

Em dashes, throat-clearing openers, reversals, quotable closers and stacked fragments are flagged before you see the draft.

Handles several clients

One profile file per client in a clients folder. Name the client in the request and the voice changes with it.

What is included

Every file in the skill folder, a worked example from our test, install and test steps from Anthropic's current docs, and straight answers to two questions people search for.

01

The SKILL.md file (part 1 of 2)

The complete skill file, ready to paste into SKILL.md inside a folder called linkedin-ghostwriter. Part 1 covers the frontmatter, loading the client, gathering material and picking a format. Copy the bullets in order, then continue with module 02.

  • --- name: linkedin-ghostwriter description: Write LinkedIn posts in a named client's voice from their voice profile plus raw notes. Use when ghostwriting, drafting or rewriting a LinkedIn post for a client, a founder or yourself. ---
  • # LinkedIn Ghostwriter Turn raw material (notes, a call transcript, a voice memo, one idea) into a LinkedIn post that reads as if the client wrote it.
  • Files: `clients/<slug>.md` holds one voice profile per client, `clients/voice-profile-template.md` is the blank, `references/post-formats.md` holds the formats and hook rules.
  • ## 1. Load the client - If the user names a client, read `clients/<slug>.md`. If several profiles exist and none is named, list the slugs and ask which one. - If the profile is missing, ask the user to paste or attach it. Offer the template. Do not write a post without a profile.
  • - The profile wins over your defaults. If the profile says no emojis, no emojis.
  • ## 2. Gather the raw material Ask for whatever the user has: notes, a transcript, a story, a half-formed opinion. If the material has no specific detail (a moment, a number, a decision, a quote), ask one or two questions to get one. Do not pad thin material.
  • If the user wants a post with no specifics, write it with [placeholders] and say so. If the material touches a topic on the profile's "do not write about" list, say so before drafting.
  • ## 3. Pick a format Open `references/post-formats.md`. If the user named a format, use it. Otherwise choose the one format that fits the material and the profile's preferred formats. Say which you picked and why in one line. If two fit, offer both as hooks and let the user choose.
  • ## 4. Draft Output, in this order: 1. Format chosen and the one line of reasoning. 2. Three hook options (first two lines only), each a different angle: a specific moment, a plain claim, a question the audience already asks. Follow the hook rules in the formats file.
02

The SKILL.md file (part 2 of 2)

The rest of SKILL.md: the draft output, the self-check against the voice profile and the AI-tells list, and the hard rules. Paste these bullets directly after module 01 in the same file.

  • 3. One full post using the strongest hook (say which), in the client's voice, at the length the profile asks for (default 120 to 220 words).
  • 4. A short "to confirm" list: every fact, number, name or result you were unsure of, each shown in the post as a [placeholder], plus any figure from the notes that sounded approximate.
  • ## 5. Self-check before you show it Voice: read the profile's "words they use" and "words they avoid" lists and check every line. Compare rhythm against the sample posts. Would this client say this sentence out loud?
  • Facts: every number, client name, date, quote and result in the post came from the raw material or the profile. If not, replace it with a [placeholder]. Never invent results, testimonials or percentages.
  • AI tells: no em dashes. No "Here's the thing", "The truth is", "Let that sink in", "This is what X looks like". No "not X, it's Y" reversals or "stops being X and starts being Y". No three-item lists where two will do. No closing line engineered to be quoted.
  • No stacked one-line fragments unless the sample posts do it. No hashtags, emojis or "Agree?" closers unless the profile allows them. Vary sentence length. Sound like the client, not like a template. Fix anything flagged, then deliver.
  • ## Hard rules - Never invent facts, numbers, client names or results. Use [placeholders] and list them. - One client per draft. Do not blend voices. - Keep other people out of it. Describe the client's customers, staff and prospects without identifying detail unless the user says a name is approved.
  • - Write the post as a finished piece the user can paste into their scheduler. Do not add comments inside the post. - If the user asks for a thread of posts, repeat steps 3 to 5 per post, same profile.
03

The client voice profile template

Save as clients/voice-profile-template.md. For each client, copy it to clients/<client-slug>.md and fill in every section. The sample posts section matters most: three to five of the client's real posts give Claude the rhythm that adjectives cannot.

  • # Voice profile: [Client name] Copy this file to `clients/<client-slug>.md` and fill in every section. Keep each answer short and specific. The sample posts matter most.
  • ## Who they are - Name, role, company: [e.g. Jane Doe, founder, Doe Bookkeeping] - What they sell and to whom: [one sentence] - Why they post on LinkedIn: [leads, hiring, reputation, a book]
  • ## Audience - Who should read these posts: [job titles, company size, industry] - What that reader worries about: [two or three specifics] - What the reader should do after reading: [follow, DM, book a call, nothing yet]
  • ## Topics - Write about: [three to five topics they have real experience in] - Do not write about: [politics, competitors by name, clients by name, pricing, anything else] ## How they sound - Tone in three plain words: [e.g. dry, practical, warm]
  • - Sentence length: [short and clipped / mixed / long and detailed] - Person: [I / we / mix] - Humor: [none / light / self-deprecating] - Swearing: [never / mild / fine] - Emojis: [none / one per post max / free] - Hashtags: [none / up to three at the end]
  • - Closing habit: [question / plain stop / call to action / none] ## Words and phrases they use [List 8 to 15 words, phrases or sayings that show up in how they talk. Pull them from calls and old posts, not from your head.]
  • ## Words and phrases they avoid [List what they would never say. Industry jargon they hate, buzzwords, anything that sounds like a different person.]
  • ## Preferred formats [Pick from references/post-formats.md: story, lesson, contrarian, how-to, case study, observation. Note any they refuse to write.] ## Target length [Default 120 to 220 words. Change if the client likes long posts or very short ones.]
  • ## Facts you may use without asking [Numbers, dates and claims that are approved and public: founding year, team size, services. Everything else gets a [placeholder] until confirmed.] ## Sample posts (paste 3 to 5 of their own) ### Sample 1 [paste] ### Sample 2 [paste] ### Sample 3 [paste]
04

The six post formats and hook rules

Save as references/post-formats.md. The skill opens this file to choose a format and to write hooks. Each format lists when to use it, the beats in order, and the mistake to avoid. The hook rules apply to every post.

  • # Post formats and hook rules Pick one format per post. Each needs at least one specific detail from the raw material (a moment, a number, a decision, a quote). Without one, ask for it or use a [placeholder].
  • ## Hook rules (first two lines) The first lines show before LinkedIn hides the rest, so they carry the post. - Start with the specific thing, not the topic. "We lost a client over a $40 invoice" beats "Let's talk about invoicing."
  • - One idea per hook. No colon-and-reveal, no "Here's what I learned" preface. - No questions the reader can answer with no. A question works only if the audience already asks it. - Hook must be true to the material. Do not sharpen a claim beyond what the notes support.
  • ## 1. Story Use when the notes contain something that happened. Structure: the moment (one or two lines), what the client did or thought, what changed, what they do differently now. Keep it in order. One story, no second anecdote. End on the change, not on a moral.
  • ## 2. Lesson Use when the client has one opinion drawn from repeated experience. Structure: the lesson in one plain sentence, the situation that taught it (specific), why most people get it wrong, how the client applies it now. Do not stack three lessons.
  • ## 3. Contrarian take with evidence Use only when the notes include evidence: a number, a pattern across clients, a named source. Structure: the common belief stated fairly, the client's disagreement, the evidence, what to do instead. No evidence in the notes? Switch to Lesson. Never invent any.
  • ## 4. How-to Use when the client can give steps they follow. Structure: who this is for and the outcome, then numbered steps (3 to 6), each one action with a concrete detail, then the one mistake that undoes it. Steps come from the client's process, not from general knowledge.
  • ## 5. Case study Use when the notes describe a specific client or project. Structure: the starting situation, what the client did (two or three moves), the result, what made it work. Every number and name is a [placeholder] unless the profile lists it as approved. Anonymize unless told otherwise.
  • ## 6. Observation Use when the client has noticed a shift in their market. Structure: what they are seeing (specific, from their own work), what they think it means, what they are doing about it. Keep the prediction modest.
  • ## Length and shape Default 120 to 220 words unless the profile says otherwise. Paragraphs of one to three sentences. Vary sentence length. Close the way the profile says the client closes.
05

Worked example: raw notes in, post out

The output from our test run, lightly edited, with a fictional bookkeeping agency owner. Everything below, including the client, the prospect and the figures, is invented for the test. Note the brackets where the notes were vague and what the self-check caught.

  • Client (fictional, built for the test): Maya Reyes, founder of a 6-person bookkeeping agency for e-commerce brands. Profile: blunt, practical, short clipped sentences, no emojis, no hashtags, never closes on a question, 120 to 180 words. Avoids "game-changer", "unlock", "journey".
  • Raw notes (voice memo): "Call Tuesday with a prospect, skincare brand, maybe 3 mil. Part-time bookkeeper, books look fine on the surface. But COGS is wrong, they expense inventory when they buy it, not when they sell it. So the P&L swings. Big loss the month the container lands, big profits after."
  • Notes continued: "Founder thought she lost money 4 months a year. Turned down a wholesale deal, margins looked thin. Real margin was fine, she said 58% maybe, don't quote. We see this a lot, maybe a third of brands we onboard. Fix: inventory is an asset until sold. Lesson or story. Don't name her."
  • Claude's output, step 1: "Loaded clients/maya-reyes.md. Format: Story. The notes describe one call with a clear before and after, and story is on Maya's preferred list."
  • Hooks. A (moment): "A skincare founder told me on Tuesday that she loses money four months a year. She does not." B (claim): "[Roughly a third] of the brands we onboard expense inventory the day it lands. Their P&L is wrong." C (question): "Why does your P&L show a loss the month a container lands?"
  • Full post, hook A: A skincare founder told me on Tuesday that she loses money four months a year. She does not. Her books expense inventory the day the container lands. So that month shows a big loss, and the months after show big profits. Sales were steady. Only the timing of one entry moved.
  • She had been turning down a wholesale deal because the margins looked thin. Her actual gross margin was [confirm figure]. Fine. We see this a lot. [Roughly a third, confirm] of the brands we onboard are doing it.
  • The fix is not complicated. Inventory is an asset until you sell it. When you sell it, it becomes cost of goods sold. Your P&L levels out and shows what the business did. It's just arithmetic. Ask your bookkeeper how they recorded your last inventory purchase.
  • To confirm: gross margin figure (notes said 58% but "don't quote"); "a third" was an estimate; "skincare" plus "Tuesday" may identify the prospect, swap for "a DTC founder" if so. Self-check: 135 words, no emojis, closes on an instruction, uses "we see this a lot" and "it's just arithmetic".
  • What the self-check caught: the first draft had "Your P&L stops swinging and starts telling you the truth", a "stops being X and starts being Y" pattern from the AI-tells list, fixed above. A second client (chatty agency owner, emoji and question close allowed) got a 250-word post in another shape.
06

Install in Claude.ai or Claude Code

Each step comes from Anthropic's help center or the Claude docs. Where the two describe the settings path differently, both paths are given.

  • 1. Make a folder named linkedin-ghostwriter. Save modules 01 and 02 as SKILL.md inside it, module 03 as clients/voice-profile-template.md and module 04 as references/post-formats.md. Anthropic's docs say the folder name must match the name field in the frontmatter.
  • 2. Add at least one client before you upload. Copy clients/voice-profile-template.md to clients/<client-slug>.md (for example clients/maya-reyes.md) and fill in every section, including three to five of the client's real posts.
  • 3. Zip the folder itself, not its contents: run zip -r linkedin-ghostwriter.zip linkedin-ghostwriter/ from the parent folder, or right-click the folder. Anthropic's help center says the zip must have the skill folder as its root, not loose files. Check every entry starts with linkedin-ghostwriter/.
  • 4. Claude.ai: skills need code execution turned on. Go to Customize > Skills, upload the zip, and turn the skill on. To make it available to a whole Team or Enterprise organization, follow Anthropic's separate article on provisioning skills.
  • 5. Claude Code: copy the whole folder to ~/.claude/skills/ so the file sits at ~/.claude/skills/linkedin-ghostwriter/SKILL.md, or into a project's .claude/skills/ folder to share it. Start claude and type /linkedin-ghostwriter, or describe the task. Edits in those folders load without a restart.
  • 6. Adding a client later: in Claude Code, drop a new clients/<slug>.md into the folder and it is available next request. In Claude.ai, an uploaded skill is a fixed zip, so either re-zip and re-upload, or paste the profile into the chat; the skill asks for it if the file is missing.
  • Plan notes: Anthropic's help center lists skills on Free, Pro, Max, Ultra, Team and Enterprise plans. Personal skills in ~/.claude/skills do not load in Cowork or cloud sessions; enable the skill on your claude.ai account to use it there.
07

Test it before a client sees it

Seven checks that take about twenty minutes. The point is to find out whether the voice profile is thick enough, and whether the skill is leaving facts in brackets rather than inventing them.

  • 1. Fill in a real profile with at least three of the client's own posts pasted in. The sample posts do more for the voice than the adjectives, so do not skip them.
  • 2. Ask: "Use the linkedin-ghostwriter skill for [client slug]. Here are my notes:" and paste 100 to 200 words of real notes that include one specific detail and one number.
  • 3. Check the shape of the reply: it names the profile it loaded, picks one format with a one-line reason, gives three hooks from different angles, one full post, and a to-confirm list.
  • 4. Check the facts: the number you gave appears as you gave it. Anything you did not give appears in [brackets]. If a number, name or result appears un-bracketed and you did not supply it, that is a failure; tell Claude and add the rule to the profile's "facts you may use" section.
  • 5. Read the post next to the sample posts. If it sounds like a generic LinkedIn post, the "words they use" and "words they avoid" lists are too thin. Add five entries to each from real calls and run the same notes again.
  • 6. Run the same notes through a second profile. The post should change in sentence length, closing habit and formatting, not just vocabulary. In our test, two profiles gave a 135-word post with no emoji and an instruction close, and a 250-word post with an emoji, hashtags and a question close.
  • 7. Try thin material on purpose: one sentence with no specifics. The skill should ask you one or two questions or deliver a post full of [placeholders] and say so, not pad it with invented detail.
08

Make it yours and run it for several clients

How to keep profiles current, add formats, set up an approval flow, and share the folder with a team without leaking client details.

  • One file per client, named by slug (clients/jane-doe.md). Name the client in every request. If you have several profiles and do not name one, the skill lists them and asks, which is slower than typing the name.
  • The "words they avoid" list is the fastest lever. Every time you edit a word out of a draft, add it to that client's list. After a few weeks the drafts stop needing that edit.
  • Keep "facts you may use without asking" current. Team size, founding year, services, approved case study numbers. Everything on that list comes through unbracketed; everything else gets a [placeholder], so a thin list means more placeholders to resolve.
  • Add a seventh format if a client has a recurring shape, such as a monthly numbers post or a hiring post. Copy the structure of an existing entry in references/post-formats.md: when to use it, the beats in order, what to avoid.
  • Change the default length in references/post-formats.md if most of your clients write long, or override it per client in their profile. The profile wins.
  • Approval flow that works: send the client the post plus the to-confirm list. They fill in the brackets or strike the line. Paste the approved version into your scheduler. The skill does not post anything itself.
  • For a team on Claude Code, keep the folder in a private repo's .claude/skills/ and commit it, which Anthropic's docs recommend for sharing. The profiles contain client details, so do not put that repo anywhere public.
  • Run the finished post through the Anti-Slop Skill on this site if you want a second pass. The ghostwriter's self-check covers the most common tells; the Anti-Slop Skill covers more patterns.
09

Can Claude write LinkedIn posts in my voice?

Short answer: partly. How close it gets depends on how much of your real writing and real material you give it.

  • Partly, and the part it gets right depends on what you give it. Claude can match sentence length, vocabulary, formatting habits and how a person closes a post, when it has three to five real samples and a list of words that person uses and avoids.
  • What it cannot supply is the material. Your stories, the number from last quarter, the client call that changed your mind: those have to come from you, as notes, a transcript or a voice memo. The skill asks for them and refuses to pad thin notes.
  • Expect to edit the first handful of posts. Each edit that reveals a word you would never use goes into the profile, and the drafts converge on your voice over a few weeks.
  • A quick test: read the draft out loud next to one of your own posts. If you would not say a sentence in a meeting, change it or add the pattern to your avoid list.
  • Posts written this way are still yours to stand behind. The skill marks every unconfirmed fact with a [placeholder] so nothing goes out that you did not check.
10

Is it OK to ghostwrite LinkedIn posts with AI?

Ghostwriting is an old practice. The questions that matter are who approves the claims, whether anything is made up, and whether the client wants to disclose.

  • Ghostwriting is older than LinkedIn. Executives and authors have had other people draft their words for decades, and the person whose name is on it approves and owns every claim. With AI the first draft comes from a tool instead of a writer; the person named on the post is still responsible for it.
  • The lines that matter: never fabricate results, testimonials, client names or numbers. This skill replaces anything unverified with a [placeholder] and lists it, so the client has to confirm it before it is published.
  • Disclosure is the client's call. Some people say on their profile that they work with a writer or use AI tools; many do not. Regulated industries (finance, health, law) often have their own rules on public statements, and the client's compliance team should see the posts before the scheduler does.
  • Read LinkedIn's current rules on authentic content and automation before you build a business on this. We are not quoting them here because they change, and you should read the live version.
  • The honest version of the service: you gather the client's real stories and opinions, use the skill to draft in their voice, the client approves every line, and you keep a record of what was confirmed.

Ready to use today

Stop re-explaining each client's voice every week

Copy the three files, fill in one profile per client, zip the folder and upload it once. From then on you name the client, paste your notes, and get three hooks, one post and a list of what to confirm before it goes to your scheduler.

Get the skill

Free. Three files plus one profile per client. Works in Claude.ai and Claude Code.