linkedin-post · git:20260504.0d54b6b · 2026-05-04 · sha256 84acaee2095b99db
linkedin-post git:20260504.0d54b6bA
Immutable. This exact content never changes and is served at /api/v1/blob/84acaee2095b99db.
---
name: linkedin-post
description: Write a high-performing LinkedIn post in the user's brand voice using Hook-Story-Offer (Alex Hormozi, $100M Offers) and the Curiosity Gap hook method (George Loewenstein). Every post starts by selecting a named hook formula - specific number + surprising result, contrarian statement, personal confession, direct challenge, or before/after. Use when the user asks for a LinkedIn post, LinkedIn update, LinkedIn content, "post for LinkedIn", thought-leadership post, founder post, or short professional social content. Reads brand voice and ICP from knowledge/ so output sounds like the company, not generic AI.
reads:
- knowledge/brand/voice.md
- knowledge/icp/personas.md
- knowledge/markets/positioning.md
- knowledge/content-library/
writes:
- output/linkedin-post/
---
# linkedin-post
Writes LinkedIn posts that get read, saved, and reshared. Applies the Hook-Story-Offer structure (Alex Hormozi) with the Curiosity Gap hook method (George Loewenstein). Every post creates a specific information gap in the hook, closes it in the story, and ends with one clear action.
## Framework: Hook-Story-Offer + Curiosity Gap
### Hook-Story-Offer (Alex Hormozi)
**HOOK**: stop the scroll. Create a pattern interrupt. The hook must create enough curiosity or pain recognition that the reader clicks "see more." The hook fails if someone can scroll past without wondering what comes next.
**STORY**: make the hook real. Provide context, the journey, the insight. This is where trust is built. Show, don't tell. Specific details, numbers, named situations.
**OFFER**: what should the reader DO? The offer can be: click a link, follow, save the post, reply with a word, or believe something new. One action only. Low friction. "What do you think?" is not an offer - it is an afterthought.
Note: "offer" in LinkedIn context is NOT always a sales pitch. The offer is whatever action you want the reader to take - including "bookmark this framework" or "reconsider this belief."
### Curiosity Gap Hook Method (George Loewenstein)
Best LinkedIn hooks create a specific information gap between what the reader knows and what the post promises to reveal. The gap must be:
- Specific (not vague) - "one change" beats "some changes"
- Closeable only by reading on - the answer cannot be guessed
- Relevant to the reader's world - they must care about closing the gap
Hook quality test: does the hook create a specific gap the reader needs to close? If someone can guess the answer from the hook alone, it is not a gap - it is a headline.
### The 5 Hook Formulas
Pick one before writing. Name it in the process.
1. **Specific number + surprising result**: "I made one change to our onboarding flow. Trial-to-paid went from 19% to 29%." Gap: what was the change?
2. **Contrarian statement + no explanation yet**: "Cold outreach is dead. Here's what replaced it." Gap: what replaced it?
3. **Personal confession + open loop**: "I was wrong about [belief]. Here's what changed my mind." Gap: what changed their mind?
4. **Direct challenge**: "Most [audience] make this mistake. Are you?" Gap: what is the mistake?
5. **Before/after without the how**: "6 months ago: 8 demo requests/month. Today: 47. Here's what changed." Gap: what changed?
## When to use
- "Write a LinkedIn post about X"
- "Draft a founder post on Y"
- "Give me 3 LinkedIn variants for our launch"
- "Turn this article into a LinkedIn post"
## Inputs needed
- **Topic, angle, or source material** (required)
- **Goal**: drive traffic, build authority, generate leads, recruit, announce (default: build authority)
- **Author voice**: founder, CMO, generic company (default: company)
- **CTA**: comment, click link, DM, none (optional)
## Process
1. **Load context.** Read `knowledge/brand/voice.md`. If missing, stop and tell the user to run `/onboard --brand`.
2. **Read 3-5 high-performing past posts** from `knowledge/content-library/` if they exist. Mirror cadence and rhythm, not topic.
3. **Select a hook formula.** Pick one of the 5 formulas. Name it explicitly before writing. Do not skip this step.
```
Hook formula selected: [formula name]
Gap this hook creates: [one sentence - what does the reader not know yet?]
```
4. **Write the hook.** First line decides everything. Rules:
- Under 12 words
- Specific, not generic
- Creates a gap that can only be closed by reading on
- No "Excited to share", no "I'm thrilled", no questions that can be answered yes/no without thinking
- Apply the curiosity gap quality check: is the gap specific? Is it closeable? Will the reader care?
5. **Write the story.** 3-7 short paragraphs using Hook-Story-Offer structure:
- Show, don't tell. Specific details. Numbers. Named situations.
- One idea per paragraph. Line breaks are generous.
- The story closes the gap created by the hook. If reading the story does not satisfy the hook's promise, rewrite one of them.
- Bullets only if the structure is a list. Avoid emojis unless `knowledge/brand/voice.md` says they are part of the voice.
6. **Write the offer.** One line. One action. Low friction.
- State what specific action you want: save, comment, follow, click, reply with a word
- "What do you think?" alone is not an offer - add a specific action alongside or instead
- Match friction to goal: if the goal is lead gen, a link is fine. If the goal is authority, "save this" is better.
7. **Self-check** before showing:
- Named hook formula used and gap is clearly created in the hook
- Hook under 12 words
- Story closes the gap from the hook
- Offer is one specific, low-friction action
- No em dashes
- No corporate phrases ("leverage", "unlock", "game-changer", "in today's fast-paced world")
- 80-220 words total (LinkedIn cuts off around 210 words on mobile)
- Voice matches `knowledge/brand/voice.md`
- One clear takeaway
8. **Save** to `output/linkedin-post/<DD-MM-YYYY>-<slug>.md` with frontmatter:
```yaml
---
format: linkedin-post
topic: <topic>
author: <founder|cmo|company>
goal: <goal>
hook-formula: <formula name>
words: <count>
created: DD-MM-YYYY
---
```
9. **Offer 2 hook variants** unless the user only wanted one. The hook is the highest-leverage edit point - a different hook formula on the same content can double or halve performance.
## Format guardrails
- 80-220 words total
- First line = hook (the only line guaranteed to be seen before "see more")
- Lines 2-3 must earn the click to "see more"
- No more than 2 hashtags, end of post, lowercase, niche-specific (skip generic ones like #marketing)
- Tag people only if the user explicitly named them
## Hook formula reference (quick pick)
| Situation | Best formula |
|---|---|
| You have a specific metric result | Formula 1: Specific number + surprising result |
| You want to challenge a common belief | Formula 2: Contrarian statement |
| You changed your own mind about something | Formula 3: Personal confession |
| You see a widespread mistake | Formula 4: Direct challenge |
| You have a transformation story | Formula 5: Before/after without the how |
## Rules
- Never skip the hook formula selection. Naming the formula is a forcing function - it prevents generic hooks.
- Never invent stats, customer quotes, or product capabilities. Pull from `knowledge/services/` and `knowledge/content-library/case-studies/` only.
- The offer must be specific. "Let me know your thoughts" is vague. "Comment with the one thing you'd add" is specific.
- If the user wants to share a competitor opinion, flag risk and ask before publishing.
- The gap created in the hook must be closed in the body. If the post does not answer what the hook implied, the reader feels tricked - they will not follow or save.