Reverse-engineer the hook formula from a viral LinkedIn post URL. Returns which of the 16 canonical 2026 formulas it uses (anaphora, R.I.P., year-pivot, time...
---
name: linkedin-hook-extractor
description: Reverse-engineer the hook formula from a viral LinkedIn post URL. Returns which of the 16 canonical 2026 formulas it uses (anaphora, R.I.P., year-pivot, time-anchor, curiosity-gap, contrarian, comment-gate, emotional cold-open, named-gratitude, and 7 more), why it worked, and a blank template. Use to learn from a competitor's post, not to write your own (use linkedin-post-writer).
---
# LinkedIn Hook Extractor
Paste a viral LinkedIn post URL. Get back: which hook formula it uses, the exact structure, why it worked, and a blank template mapped to your topic.
## When to use
- User finds a viral post they want to study
- User wants to replicate a specific creator's pattern
- Before `linkedin-post-writer` to seed a draft with a proven structure
## Input
A LinkedIn post URL (any type: activity, share, ugcPost).
## Output
- **Formula identified** (F1-F16 from `../../references/hook-formulas.md`) with confidence score
- **Structural breakdown:**
- Hook lines (first 210 chars)
- Body architecture (sections + what each does)
- Close pattern
- Reaction-triggering devices (numbers, named entities, vulnerabilities)
- **Why it worked** psychologically
- **Blank template** filled with slot markers matched to the original, ready for the user's voice
- **Cautions:** anything in the original post that would fail 2026 audit (em dashes, AI vocab, outdated tactics)
## Steps
1. **Parse URL.** `lib.url_parser.parse_linkedin_url` → `post_urn`.
2. **Fetch post body.** If `APIFY_TOKEN` is set, call `lib.ApifyClient.fetch_post(url)`. Otherwise ask the user to paste the text.
3. **Classify.** Match against the 16 formulas using features:
- First 2 lines: anaphoric? question? confession? number-led?
- Body: numbered list? dated receipts? ledger? teardown?
- Close: mirror question? identity reframe? commitment?
- F11-F16 cues: in-medias-res emotional scene with no setup (F11 Emotional Cold-Open); "I don't know who needs to hear this" reassurance (F12 Permission Slip); fake-bad-news that resolves positive (F13 Bait-and-Switch); a roll-call of named people thanked (F14 Named Gratitude); "{jargon} explained to kids" glossary (F15 Explain-to-Kids); "outside I'm called X, at home none of it survives" (F16 Status-Strip).
4. **Score confidence.** If multiple formulas fit, return top 2 with fit scores.
5. **Extract structure.** Pull each logical section and label it by formula role.
6. **Generate blank template.** Replace specifics with `{slot}` markers that match the user's topic.
7. **Audit the source.** Flag any AI tells in the original so the user doesn't copy them.
## Example
See `references/examples.md` for worked examples.
## Formulas reference
See `../../references/hook-formulas.md` for the 16 canonical formulas with full skeletons.
## Files
- `SKILL.md` — this file
- `references/classification-rules.md` — feature extraction + scoring heuristics
## Related skills
- `linkedin-post-writer` — use the extracted template to draft your own
- `linkedin-humanizer --mode audit` — audit your draft before shipping
don't have the plugin yet? install it then click "run inline in claude" again.