Grow the account: 10 AI skills for social media
analytics-reader
know which posts actually earned you anything
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: analytics-reader
description: Reads your own analytics export and tells you which posts actually earned you something, scored against your own history rather than generic benchmarks.
---
# Know which posts actually earned you anything
A ranked read of your own posts, a top 10% and bottom 10% cut, and what separates them.
## Claude does
1. Asks for four things and refuses to start without the first: the **export file** (LinkedIn xlsx export, Instagram insights CSV, or an Apify scrape such as `apimaestro/linkedin-profile-posts`), the **handle**, the **date range**, and the **one outcome that counts** (replies, sign-ups, calls booked, saves).
2. Checks the sample. Under 20 posts in range, it says so and does a plain read, no deciles. A decile cut on 8 posts is noise.
3. Scores with Charlie Hills' post-scorer formula: **engagement = reactions + (comments x 3)**. A comment costs the reader more, so it weighs more.
4. Refuses to rank on likes. Metricool's 2026 LinkedIn study (673,658 posts): likes down 13%, comments down 17%, yet total engagement up 14% and clicks up 5%. Growth is in clicks, swipes and views, so where impressions and clicks exist it reports **click-through rate** beside the score.
5. Tags each post's format and compares formats only with **5 or more posts each side**. Context, not a replacement for your data: LinkedIn carousels 21.77% median engagement against video 7.35%; Instagram carousels 9x the saves of single images.
6. Writes what differs between your top and bottom 10%: hook shape, first 40 characters, length, format, whether it asked a question, whether you replied in comments.
7. Refuses to guess anything absent from the file. No estimated reach, no inferred follower gain, no attributed revenue.
## Then Codex does
Codex takes the mechanical half: parsing a messy export, normalising column names that differ by platform and year, scoring every row, sorting, cutting deciles, writing the CSV and tables. Bulk arithmetic over hundreds of rows belongs in a script.
```
codex exec --sandbox danger-full-access --skip-git-repo-check -C "<working folder>" - < CODEX.md
```
Claude fills in first: **{EXPORT_PATH}**, **{PLATFORM}**, **{HANDLE}**, **{DATE_RANGE}**, **{GOAL_METRIC}**.
## Claude checks
1. Recomputes the score by hand on three rows, top row included. Mismatch, reject.
2. Rows in equals rows scored. Silent drops are the usual bug.
3. Reads figures from the source file, never from Codex's summary table. A retyped number is how a fake defect gets reported.
4. Confirms no decile cut came from under 20 posts.
5. Strips any statistic not computed from the export or taken from a study below. Reject and rerun once, quoting the fault; on a second failure Claude finishes it.
## Rules
- Score against the user's own history, never an industry benchmark.
- Likes are not success in 2026. Report clicks, saves, comments and replies.
- Hashtags are a cost, not a lift: Instagram views down 31.70%, interactions down 33.89%. Never credit them.
- Never quote unsourced folklore such as "+68% saves" or "2.5x more shares".
- 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 parses and scores the export itself, and says so.
## Built from
- charlie947/social-media-skills, https://github.com/charlie947/social-media-skills, 3,283 stars via api.github.com.
- Metricool 2026 LinkedIn Study, https://metricool.com/press-release-linkedin-study-2026/, 673,658 posts.
- Metricool 2026 Instagram Study, https://metricool.com/press-release-instagram-study-2026/, 24,364,803 posts.
- Buffer State of Social Media Engagement 2026, https://buffer.com/resources/state-of-social-media-engagement-2026/, 52M+ posts.
- coreyhaines31/marketingskills, https://github.com/coreyhaines31/marketingskills, 46,945 stars via api.github.com.
Prompt for Codex
# Know which posts actually earned you anything - Codex task
## You are given
- **{EXPORT_PATH}** - path to one analytics export: a LinkedIn post xlsx export, an Instagram/Meta insights CSV, or a JSON scrape of posts. Columns vary by platform and by export year, so detect them, do not assume them.
- **{PLATFORM}** - linkedin, instagram, threads, tiktok, x or facebook.
- **{HANDLE}** - the account the export belongs to. Used in the output header only.
- **{DATE_RANGE}** - inclusive start and end date. Drop rows outside it.
- **{GOAL_METRIC}** - the one outcome that counts for this account, in the owner's words.
## Produce
Two files in the working folder.
1. `scored-posts.csv`, one row per post, these columns in this order:
`date, format, first_40_chars, reactions, comments, shares, impressions, clicks, engagement_score, ctr_percent, decile`
- `engagement_score = reactions + (comments * 3)`.
- `ctr_percent = clicks / impressions * 100`, to two decimals. Leave empty if either column is absent. Never estimate it.
- `format` is one of carousel, single_image, video, text, poll, unknown. Derive it from the export's own column; use `unknown` rather than guessing.
- `first_40_chars` is the opening 40 characters of the post text, quotes escaped.
- `decile` is 1 for the top 10% by engagement_score, 10 for the bottom 10%, blank for the rest. If fewer than 20 rows survive the date filter, leave every decile blank.
2. `read.md`, plain text, in this order:
- Header: handle, platform, date range, rows in the file, rows scored, rows dropped and why.
- **Top 10 posts** table: date, format, first_40_chars, engagement_score, ctr_percent.
- **Bottom 10 posts**, same columns.
- **By format** table: format, post count, median engagement_score, median ctr_percent. Include the count column always; omit no format.
- **Missing data** list: every column the calculation wanted and the file did not have.
## Rules
- Never fill a gap. A blank cell stays blank; do not interpolate, average or carry forward.
- Do not drop rows silently. Every dropped row is counted and explained in the header.
- Do not add commentary, causes, advice or predictions. Numbers only.
- Do not add any statistic that is not computed from {EXPORT_PATH}.
- British English. No em dash characters.
- Preserve the original text exactly when excerpting; do not tidy spelling or punctuation.
## Return
Print to stdout, in this order:
1. The two file paths written.
2. `rows_in=<n> rows_scored=<n> rows_dropped=<n>`.
3. The three highest and three lowest rows as `date | format | engagement_score`, so the figures can be checked against the source file by hand.
4. The list of columns the export did not contain.
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, read from api.github.com and re-verified with a raw curl parse. The skill set behind Charlie Hills' own content system (415k+ followers, 100m+ views a year; ranked #1 worldwide for LinkedIn growth by Favikon). Supplies the analytics-dashboard and post-scorer skills, the engagement formula and the top/bottom 10% method.
- **Metricool 2026 LinkedIn Study** - https://metricool.com/press-release-linkedin-study-2026/ - 673,658 posts from 63,108 accounts worldwide, Jan-Feb 2025 against Jan-Feb 2026. Supplies the finding this skill is built on: likes down 13%, comments down 17%, shares down 10%, while overall engagement is up 14% and clicks up 5%.
- **Metricool 2026 Instagram Study** - https://metricool.com/press-release-instagram-study-2026/ - 24,364,803 posts from 375,118 accounts. Supplies the hashtag cost (views -31.70%, interactions -33.89%), the carousel saves multiple (9x single images) and the single-image decline (reach -21.96%, engagement -45.98%).
- **Buffer, State of Social Media Engagement 2026** - https://buffer.com/resources/state-of-social-media-engagement-2026/ - 52M+ posts across 10 platforms, with a ~2M post sub-study on replies and 15.7M posts on frequency. Supplies platform engagement baselines and the reply uplift.
- **coreyhaines31/marketingskills** - https://github.com/coreyhaines31/marketingskills - 46,945 stars and 7,317 forks, read from api.github.com and re-verified with a raw curl parse. Its analytics skill supplies the report structure and the practice of versioned, evaluated skill files.
Best public prompt we found for this job
https://github.com/charlie947/social-media-skills
Its `post-scorer` is the strongest public implementation of this job, and the reason is that it refuses generic benchmarks. From the research notes:
"Hills' post-scorer computes engagement = reactions + (comments x 3), extracts the top and bottom 10% of the user's own posts, and scores five criteria against those patterns."
It is not theory: the skill calls the Apify actor `apimaestro/linkedin-profile-posts` to pull 100 real posts and cites a benchmark set of 500 posts at 1,872 average engagement.
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.
Foxera