MarketingEveryday skill

LinkedIn Post Writer

Turns a work win or lesson into a LinkedIn post that sounds human - no cringe, no engagement-bait.

What it does

You have something worth sharing (a launch, a lesson, a number that moved) and every version you write sounds like a motivational poster. So you close the tab and post nothing.

With this skill active, the assistant hunts for the one real thing in what you describe: a specific moment, a before-and-after number, a decision you changed your mind about. Then it writes plainly around that. The opening line states something true instead of teasing what is coming, the story runs in short blocks that read well on a phone, and it lands one takeaway sized to what actually happened, not declared universal.

Before anything comes back it runs a cringe check: no humbled-to-announce, no invented taxi driver with a life lesson, no "Agree?" at the end, no massive growth where the real number was 400 to 2,600. If your material has no post in it yet, it says so.

You end up with a post that sounds like you, built on one real specific, with nothing in it you would wince at later.

When to reach for it

Good for a win, a mistake worth sharing, a launch, a hiring post, a farewell, or an open-to-work post you are dreading writing. It works from rough notes: you talk, it shapes.

It will not chase virality, invent numbers you did not give it, or help you turn someone else's difficulty into your professional insight. And when the story is still unfolding or you are angry right now, it will say so and suggest sitting on it overnight.

What's inside

linkedin-post-writer/
├── SKILL.md
└── references/
    ├── examples.md
    └── cringe-check.md
SKILL.md
---
name: linkedin-post-writer
description: Turns a real work moment (a win, a mistake, a launch, a lesson) into a LinkedIn post that sounds like a person wrote it, with no manufactured hooks, no engagement bait and no inflated numbers. Use when there is something worth sharing and the dread of sounding cringe is stopping the sharing.
---

# LinkedIn Post Writer

You find the one real thing in what the user tells you and write it plainly. You never manufacture a hook out of material that does not have one.

## Workflow

1. **Find the one real thing:** a specific moment, a number, a decision that changed. If there is not one, say so before writing.
2. **Establish the takeaway and the comfort level:** what the reader should leave with, and how personal the user is willing to be.
3. **Write the first line** so it is true and specific. It is the only line most people will see.
4. **Tell it plainly.** Short lines, white space, one idea per block.
5. **Land one takeaway** the reader can actually use.
6. **End honestly:** a genuine question, or nothing at all.
7. **Run the cringe check** before handing it back.

Copy this checklist into your working notes:

```text
LinkedIn post checklist
[ ] One real thing identified: moment, number, or changed mind
[ ] Takeaway agreed with the user
[ ] Comfort level checked before writing anything personal
[ ] First line true, specific, no manufactured shock
[ ] Short lines with white space, no wall of text
[ ] Exactly one takeaway, not three
[ ] Every number came from the user
[ ] No engagement bait at the end
[ ] Cringe check run - see references/cringe-check.md
[ ] Reads like the user talks, not like a press release
```

## The one real thing

Vague posts get scrolled past, and a vague brief produces a vague post. When the user offers a topic rather than a story, ask two or three of these:

- What actually happened, and when?
- What is the number, before and after?
- What did you believe at the start that you do not believe now?
- What went wrong, and what did it cost?
- What did someone say to you that stuck?
- What would you do differently?

Any one of these produces a post. None of them produces one is a signal worth acting on: tell the user there may not be a post here yet, rather than assembling something generic. A post with nothing specific in it costs more credibility than posting nothing.

## The first line

Most readers see one line and a "see more" link. That line decides everything, which is exactly why so many of them are dishonest.

| Weak opener | Why | Stronger |
|---|---|---|
| "I am humbled to announce..." | Not humbled | "We shipped the thing we have been quiet about for four months." |
| "I almost quit last year." (you did not) | Manufactured stakes | "I spent four months on a feature nobody used." |
| "Let that sink in." | Nothing has been said yet | The actual fact, stated plainly |
| "Unpopular opinion:" (it is popular) | Fake contrarianism | "I think most onboarding checklists make things worse." |
| "Here's a lesson I learned the hard way." | Says nothing | "We lost the account over a two-line email." |
| "Big news, watch this space." | Content-free | The news |

The reliable opener is the most specific true sentence you have. A number, a moment, or an admission. Do not withhold the point to create suspense, because people scroll past suspense.

## Shape on the page

LinkedIn is read on a phone in a queue.

- One to three lines per block, then a blank line.
- Most posts land between 600 and 1,200 characters. Longer only when the story earns it.
- No paragraph longer than three lines.
- No formatting tricks. Not every line needs to stand alone. Text broken into one-line fragments for effect reads as a style rather than a person.
- Links go in the first comment if the post is about the link, since the post reaches fewer people with a link in the body. Say this once as a practical note, not as growth advice.

## One takeaway

Land one thing the reader can use, stated at the size it deserves.

- Honest: "The fix was not more people. It was writing down the five questions we kept answering."
- Overreach: "This one change transformed our entire business."

Do not generalise a single experience into a law. "This worked for us, in this situation" is more credible than a universal claim, and it is what actually happened.

## Endings

Two acceptable endings: a genuine question the user actually wants answered, or nothing.

Never: "Agree?", "Thoughts?", "Comment YES below", "Repost if you..." , "What would you add?" tacked onto a post that asked for nothing. Engagement bait is transparent, and on a professional network it costs more than the engagement is worth.

Hashtags: three to five relevant ones, or none. They matter far less than most people think, and a post with none does not underperform. Never use one that is a sentence.

## Post types, and what each one needs

| Type | What makes it land | The trap |
|---|---|---|
| Win or launch | The number, and the part that was hard | Thanking eleven people and never saying what happened |
| Mistake or lesson | A real cost, and what changed afterwards | A "failure" that is secretly a success story |
| Opinion | A specific claim you would defend in person | Contrarian framing on an opinion everyone holds |
| Hiring | What the job is actually like, including the hard part | A list of adjectives about the culture |
| Looking for work | What you do, what you want, what you are good at, stated plainly | Apologising, or over-explaining the redundancy |
| Personal news | Brevity | A life event repackaged as a business lesson |
| Farewell or thanks | Specific memories, named people, no lecture | A resignation post that reads as a complaint |

## When not to post

Sometimes the honest advice is to close the tab.

- **The story is still unfolding.** Half a story published early becomes a correction later.
- **Anything under an NDA, or numbers the company treats as confidential.** Ratios and directions are usually fine; check.
- **Venting about a named employer, client or colleague.** It reads as a warning about the writer, not about them.
- **Someone else's misfortune as your lesson.** The redundancy, illness or failure of a named person is not raw material.
- **A tragedy or a public event bent into a professional insight.** This is the single most reliable way to be remembered badly.
- **You are angry right now.** The post will still be there tomorrow, and so will the anger, but only one of them will be public.

Say it once, plainly, and let the user decide.

## Example

**Raw input from the user**

> "We cut our support reply time from 2 days to 4 hours. Basically we realised we were answering the same five questions over and over so we wrote proper help docs. Took about three weeks. I want to post about it but everything I write sounds like a LinkedIn guru."

**The one real thing:** the five repeated questions. That is the specific, and it is more interesting than the headline number.

**Takeaway:** the fix was documentation, not headcount.

**The post**

> We were answering the same five questions over and over.
>
> Not similar questions. The same five. I counted one week and they were 60% of our inbox.
>
> So we stopped answering them and spent three weeks writing them down properly instead. Proper answers, with screenshots, in the help centre rather than in a hundred separate emails.
>
> First reply time went from two days to four hours.
>
> The thing I keep thinking about is that we nearly hired someone instead. It was on the plan. We would have doubled the team to keep answering the same five questions faster.
>
> If your queue feels endless, count what is in it for a week before you add anyone. Ours turned out to be five questions wearing different clothes.

**Why it is shaped this way:** the opener is a fact, not a hook. The number arrives in the middle rather than the top, because "we nearly hired someone instead" is the more interesting admission and it needs the setup. The takeaway is one action (count for a week) and it is sized to what actually happened rather than declared universal. No hashtags, no question at the end, nothing to agree with.

## Rules

- Never invent numbers, quotes, results or moments. If the user has no number, write the post without one.
- A small win stays a small win. Readers can smell inflation, and specific-and-modest beats vague-and-grand.
- No engagement bait, no fake cliffhangers, no manufactured contrarianism.
- No cringe openers. `references/cringe-check.md` has the full list and the replacement for each.
- Write in the user's vocabulary. If they would not say "leverage" out loud, it does not go in.
- One emoji at most, and only if their existing posts use them.
- Do not thank a list of people unless the user asked to. It reads as an awards speech and buries the story.
- Where credit is shared, say so plainly. It costs nothing and it reads better than the alternative.
- Offer a shorter variant when the post runs past 1,200 characters.

## Edge cases

- **They only have a vague topic.** Ask the specifics questions. If nothing specific comes back, say there may not be a post here yet and offer to revisit when there is.
- **The win is not theirs alone.** Name the team in the body, not in a thank-you list at the end. "Anna found the pattern in the ticket data" is a better line than five tagged names.
- **They want it to go viral.** Be honest: nobody can engineer that, and the techniques that chase it are exactly the ones that make a post embarrassing. Optimise for the post they will still be happy to have on their profile in a year.
- **The numbers are confidential.** Percentages, ratios and directions usually survive where absolutes do not. Check what is genuinely restricted rather than assuming either way.
- **They are posting about their own redundancy.** Short, unapologetic, specific about what they do and what they want. No apology, no long explanation of the company's decision, no bitterness. One clear ask.
- **They are announcing redundancies they made.** Extreme care. Lead with what happened to the people affected and what is being done for them. A post about how hard the decision was for the person who made it lands very badly.
- **A controversial opinion.** Ask whether they would say it, in those words, to the person most likely to disagree. If yes, write it plainly and drop the softeners. If no, that is worth knowing before publishing.
- **English is not their first language.** Keep their phrasing where it is clear. Fixing every idiom into standard business English removes exactly the thing that makes a post sound like a person.
- **They are grieving, angry or exhausted.** Write it, then suggest they sit on it overnight. Nothing on LinkedIn is urgent.

## Files

- `references/examples.md` - three posts worked from raw notes to finished text: a modest win, a failure with a real cost, and an open-to-work post after redundancy. Each shows what was cut and why.
- `references/cringe-check.md` - the openers, structures and endings that make a post embarrassing, each with what to write instead, plus a final pass to run before handing anything back. Read it every time before returning a draft.

Install it

Claude Code (this project)

Unzip the download into .claude/skills/. The folder is already named right.

Claude Code (every project)

Unzip into ~/.claude/skills/ to use it everywhere.

claude.ai

Upload the zip under Settings, then Capabilities, then Skills (paid plans).

How to call it

Just describe the task. The description line inside the skill does the matching. Or call it directly:

/linkedin-post-writer turn this into a LinkedIn postwrite a LinkedIn post without sounding cringehelp me post about our launchI was made redundant, what do I writedoes this post sound like a LinkedIn guru wrote it

Works beyond Claude

Skills use the open Agent Skills format. The exact same folder works in OpenAI Codex, Gemini CLI, Cursor, GitHub Copilot and other tools that read the format.

Using a plain chat app? Paste SKILL.md into ChatGPT or Gemini as instructions. You lose auto-triggering, but the method still works.

agentskills.io

Related skills