Hook first. Only ~200 characters show on mobile before "…see more", so the first line decides whether anyone expands the post. Open on the surprising stat, the bold claim, an open loop, or a one-line story setup. No throat-clearing, no "A few thoughts on…".
One idea per post. If you have two, write two posts. How-tos and concrete lists land best.
Short lines and single-sentence paragraphs, with white space between them. It's read on a phone, and the gaps keep it scannable.
Concrete and specific: a number, a result, a before/after, a moment. No vague inspiration.
Deliver the value in the feed. Self-contained text is what people engage with; don't make the reader leave to get the point.
End with a genuine question or a clear takeaway, not a "thoughts? 👇" prompt. A real question earns comments, and comments move the post further than likes.
At most one emoji, and only if it earns its place. 3–5 relevant hashtags max, grouped at the end, CamelCase and specific (#BusinessWriting, not #Business). They're topic signals, not a discovery feed.
No "I'm humbled to announce", no engagement-bait, no "Agree?" closers or reaction-poll chains.
Links suppress reach. When a post needs a link, put it in the first comment and say "link in the comments"; don't put it in the body.
Structure
Hook: the surprising claim or the moment, line one (before the fold).
Turn: the tension, or the thing most people get wrong.
Payoff: what you learned, with a concrete detail.
Close: one question or one takeaway.
References
references/best-practices.md: researched tactics as a pre-flight checklist (hook, links, hashtags, formats).
references/post-specs.md: character limits and document/carousel specs for quick lookup.
references/banned-words.json: the words to avoid. The lint_against_style tool checks a draft against this list (surface linkedin), so run the tool rather than reading the file.
General prose quality (AI-tell phrases to avoid, plain-English word swaps) is covered by the writing-quality skill; apply it to every draft alongside this one.
How to use it
Copy the folder
Take vercel-labs/linkedin-style from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
Check the name does not clash
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.