caption-writer
Turn an idea (or a carousel/hook you already have) into finished caption and
post copy. Default output: English. Match the recipient's language if the
target audience is non-English.
Reference: caption types + PAS/BAB + ABC close + ManyChat in
../social-content-os/reference/frameworks.md §3, §8, §11.
Load ../social-content-os/brand.json for voice and the comment-trigger WORD.
Inputs
- The idea or the asset it accompanies (carousel topic, Reel, hook).
- Platform: Instagram caption, LinkedIn post, X post/thread.
- Funnel job: ToF (reach), MoF (trust), or BoF (offer) — sets the CTA aggressiveness.
Method
- Open with the hook. First line = the scroll-stopper (pull from hook-lab if
available). On LinkedIn the first two lines must clarify the topic and trigger a
personal concern, because the rest is hidden behind "see more".
- Pick the structure:
- Instagram caption → one of the 6 caption types that fits the idea.
- LinkedIn / text post → PAS (Problem, Agitate, Solution) or BAB
(Before, After, Bridge). One idea only.
- X → either a single sharp post or a thread (hook post + 3–6 beats + CTA post).
- Write for scanning: short sentences, line breaks, no jargon, no walls of text.
- Close with ABC: one clear, low-friction CTA. For ToF/MoF default to the
comment-trigger ("Comment WORD and I'll DM you ...") so ManyChat can do the
handshake. For BoF, a direct offer/link CTA.
- Hashtags: 3–6 relevant, specific (niche + topic), never 30 generic ones.
Output
Produce 3 variants using different angles (e.g. story vs fact vs question) so
the user can A/B test:
- Variant A, B, C — each labeled with its caption type / framework.
- For each: the body copy, the CTA line, and a short hashtag set.
- A one-line note on which variant to lead with for the stated funnel job and why.
No AI tells: no em-dashes, no en-dashes, no smart quotes, no
"unlock/unleash/elevate/dive in/in today's fast-paced world".
1---2name: caption-writer3description: Write captions, standalone Instagram/LinkedIn/X posts, and CTAs. Use when the user wants a caption, a post body, a LinkedIn post, a tweet/thread, or a call-to-action, or says "napisz caption", "opis pod reels", "post na linkedin", "napisz posta", "write a caption", "linkedin post", "write the CTA", "thread on X". Uses the 6 caption types (relatable story, tool list, surprising fact, before/after, simple question, educational body) and PAS / BAB skeletons for text posts, one-idea-one-post, scannable, with an ABC close and a low-friction ManyChat comment-trigger CTA. Produces multiple variants.4---56# caption-writer78Turn an idea (or a carousel/hook you already have) into finished caption and9post copy. Default output: **English**. Match the recipient's language if the10target audience is non-English.11Reference: caption types + PAS/BAB + ABC close + ManyChat in12`../social-content-os/reference/frameworks.md` §3, §8, §11.13Load `../social-content-os/brand.json` for voice and the comment-trigger WORD.1415## Inputs1617- The idea or the asset it accompanies (carousel topic, Reel, hook).18- Platform: Instagram caption, LinkedIn post, X post/thread.19- Funnel job: ToF (reach), MoF (trust), or BoF (offer) — sets the CTA aggressiveness.2021## Method2223- **Open with the hook.** First line = the scroll-stopper (pull from hook-lab if24 available). On LinkedIn the first two lines must clarify the topic and trigger a25 personal concern, because the rest is hidden behind "see more".26- **Pick the structure:**27 - Instagram caption → one of the 6 caption types that fits the idea.28 - LinkedIn / text post → **PAS** (Problem, Agitate, Solution) or **BAB**29 (Before, After, Bridge). One idea only.30 - X → either a single sharp post or a thread (hook post + 3–6 beats + CTA post).31- **Write for scanning:** short sentences, line breaks, no jargon, no walls of text.32- **Close with ABC:** one clear, low-friction CTA. For ToF/MoF default to the33 comment-trigger ("Comment WORD and I'll DM you ...") so ManyChat can do the34 handshake. For BoF, a direct offer/link CTA.35- **Hashtags:** 3–6 relevant, specific (niche + topic), never 30 generic ones.3637## Output3839Produce **3 variants** using different angles (e.g. story vs fact vs question) so40the user can A/B test:41421. Variant A, B, C — each labeled with its caption type / framework.432. For each: the body copy, the CTA line, and a short hashtag set.443. A one-line note on which variant to lead with for the stated funnel job and why.4546No AI tells: no em-dashes, no en-dashes, no smart quotes, no47"unlock/unleash/elevate/dive in/in today's fast-paced world".