Grow the account: 10 AI skills for social media

caption-writer

captions that sound like you and get read

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: caption-writer
description: Writes a caption in the user's own voice, scored against their own best posts, then hands the per-platform character-limit cuts to Codex. Use for captions and rewrites on LinkedIn, Instagram, TikTok, Threads, Facebook or YouTube Shorts.
---

# Captions that sound like you and get read

One caption in your voice, plus per-platform cuts that fit each limit, scored against your own best posts before you see it.

## Claude does

1. Read `voice.md` and `about-me.md` in the working folder, the persistent voice layer both leading repos build every skill on. If missing, ask five things only: the reader, what the user sells, three tone words, two banned words, one post they are proud of. Save them to `voice.md` so no other skill asks again.
2. Ask for the idea, the asset it sits under, the platform, and the goal (saves, comments, clicks, DMs).
3. Ask for the last 20 to 100 posts with reactions and comments. Score each as `engagement = reactions + (comments x 3)`. Take the top 10% and bottom 10%. Those two sets, not generic advice, are the patterns to copy and to avoid.
4. Write the hook first: one line, 40 characters or fewer, sitting inside the first 125 characters on Instagram and the first 80 on TikTok.
5. Write the body to real limits: LinkedIn 200-250 words; IG Reels 80-200 chars; IG carousel 300-900; TikTok 100-300; Threads 100-280; Facebook 40-80; Shorts title 40-70.
6. Close with a comment-focused CTA. Metricool measured those at +202.78% comments, questions at +36.70%, across 24,364,803 Instagram posts.
7. Use 0 to 3 hashtags, default 0. The same study measured hashtags at -31.70% views and -33.89% interactions. Say so if asked for more.
8. Refuse to guess. Never invent a statistic, client name, result or quote. Ask, or leave `[NEEDS FACT]`.

## Then Codex does

Codex takes the approved caption and does the bulk: six platform variants trimmed to exact character counts, three alternative hooks each, and a scoring table against the top-10% patterns. Counting and reformatting finished writing, so it belongs there.

```
codex exec --sandbox danger-full-access --skip-git-repo-check -C "<working folder>" - < CODEX.md
```

Fill in first: {MASTER_CAPTION}, {VOICE_RULES}, {TOP_POSTS}, {PLATFORMS}, {GOAL}.

## Claude checks

1. Count the characters yourself on every variant. Never trust a stated count.
2. Confirm the hook lands inside the first 125 characters on Instagram, 80 on TikTok.
3. Confirm no variant exceeds 3 hashtags and none uses engagement bait.
4. Confirm no number, name or claim appears that was not in the user's input. This is the flagged failure: caption repos circulate figures like "+68% saves" with no source.
5. Read it against the banned words and the sample post. If it reads like a template, reject it.
6. Any check fails, rerun Codex naming the failure. Never hand-patch and pass it off as Codex output.

## Rules

- Score against the user's own history, not generic best practice.
- Hashtags are a tax. Default 0, never above 3.
- Buffer and Metricool figures only, or no figure at all.
- Public information only.
- Never invent a fact, a number or a quote.
- Anything sent in someone's name says whose name it is.

## If Codex is not installed

Claude produces the variants and the scoring table itself, and says so.

## Built from

- charlie947/social-media-skills, https://github.com/charlie947/social-media-skills, 3,283 stars via api.github.com; the post-scorer method.
- coreyhaines31/marketingskills, https://github.com/coreyhaines31/marketingskills, 46,945 stars via api.github.com; hook formulas.
- Metricool 2026 Instagram Study, https://metricool.com/press-release-instagram-study-2026/, 24,364,803 posts; hashtag and CTA data.
- Buffer State of Social Media Engagement 2026, https://buffer.com/resources/state-of-social-media-engagement-2026/, 52M+ posts; baselines.

Prompt for Codex

# Captions that sound like you and get read - Codex task

You are reformatting one approved caption into per-platform variants and scoring them. You are not rewriting the idea and you are not adding facts.

## You are given

- {MASTER_CAPTION} - the approved caption, already in the user's voice. The only source of truth for every claim.
- {VOICE_RULES} - three tone words plus a list of banned words or phrases.
- {TOP_POSTS} - the user's top-10% posts, each with an engagement score of `reactions + (comments x 3)`. The pattern to match.
- {PLATFORMS} - which of LinkedIn, Instagram Reels, Instagram carousel, TikTok, Threads, Facebook, YouTube Shorts to produce.
- {GOAL} - saves, comments, clicks or DMs.

## Produce

Write `captions-out.md` in the working folder, containing:

1. **One variant per platform in {PLATFORMS}**, trimmed to these limits, each with its real character count printed beside it:
   - LinkedIn: 200 to 250 words
   - Instagram Reels: 80 to 200 characters, hook inside the first 125
   - Instagram carousel: 300 to 900 characters
   - TikTok: 100 to 300 characters, hook inside the first 80
   - Threads: 100 to 280 characters, hard max 500
   - Facebook: 40 to 80 characters
   - YouTube Shorts title: 40 to 70 characters
2. **Three alternative hooks per platform**, each 40 characters or fewer, counted.
3. **A scoring table**, one row per variant, five columns scored 1 to 5 against the {TOP_POSTS} patterns: hook strength, voice match, specificity, reader payoff, CTA clarity. Add a total. Flag any variant under 18.
4. **A flags list**: every number, name, claim or quote in any variant that does not appear verbatim in {MASTER_CAPTION}.

## Rules

- Copy the substance from {MASTER_CAPTION}. Never add a statistic, client name, result or quote from your own knowledge.
- If a fact is missing, write `[NEEDS FACT]` and list it in the flags. Never fill the gap.
- 0 to 3 hashtags per variant, default 0.
- No engagement bait: no "comment YES", no "tag 3 friends", no "double tap if".
- Close each variant with a comment-focused CTA or a direct question.
- Obey {VOICE_RULES}. A banned word anywhere is a failure, not a style choice.
- Count characters programmatically. Do not estimate.
- British English. No em dash characters in the output.

## Return

Print to stdout:

1. The absolute path of `captions-out.md`.
2. A table of platform, character count, limit, pass or fail.
3. The scoring table totals, one line each.
4. The full flags list, or the single line `FLAGS: none`.
5. Hashtag count per variant.

Built from the best public work on this

Sources

  • **charlie947/social-media-skills** - https://github.com/charlie947/social-media-skills - 3,283 stars and 771 forks, confirmed twice via api.github.com and an independent raw curl parse. The working skill set behind Charlie Hills' own content system (415k+ followers, 100m+ views a year; ranked #1 worldwide for LinkedIn growth by Favikon). Supplied post-formatter, post-writer and hook-generator, and the post-scorer method used here: score every post as `reactions + (comments x 3)`, extract the top and bottom 10%, then judge the draft against those two sets rather than against generic advice.
  • **coreyhaines31/marketingskills** - https://github.com/coreyhaines31/marketingskills - 46,945 stars and 7,317 forks, confirmed via api.github.com and raw curl parse; pushed the day of research. Supplied the hook formulas and the structure of a social skill that reads a persistent voice file before drafting.
  • **Metricool 2026 Instagram Study** - https://metricool.com/press-release-instagram-study-2026/ - 24,364,803 Instagram posts from 375,118 accounts, Jan-Feb 2025 against Jan-Feb 2026. Source of the hashtag penalty (-31.70% views, -33.89% interactions) and the CTA effects (questions +36.70% comments; comment-focused CTAs +202.78% comments).
  • **Buffer, State of Social Media Engagement 2026** - https://buffer.com/resources/state-of-social-media-engagement-2026/ - 52M+ posts across 10 platforms, with stated sub-samples of ~2M posts for replies and 15.7M for frequency. Source of the platform engagement baselines and the format ranking the caption is written to sit under.

Deliberately excluded: caption repos circulating uncited figures such as "+68% saves", "+44% comments" and "-70-95% reach". None trace to a measurement source. Structural rules from those repos are usable; their numbers are not.

Best public prompt we found for this job

https://github.com/charlie947/social-media-skills - the `post-scorer` skill. It is the only public prompt found that scores a draft against the author's own measured history instead of against opinion: it pulls 100 real posts, computes engagement as reactions plus three times comments, splits out the top and bottom 10%, and scores five criteria against those patterns, with a stated benchmark set of 500 posts at 1,872 average engagement. That mechanism is what this skill copies.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.