Monthly social media performance review for SMBs. Analyses post-level and account-level data from Instagram, LinkedIn, Facebook, or TikTok. Identifies what worked, what didn't, and why. Produces a client-ready report and specific recommendations that feed back into the content calendar. Accepts CSV exports, screenshots, or manual data input.
Scanned 5/27/2026
Install via CLI
openskills install stevenflanagan1/social-ai-team---
name: social-performance-review
version: 1.0.0
description: Monthly social media performance review for SMBs. Analyses post-level and account-level data from Instagram, LinkedIn, Facebook, or TikTok. Identifies what worked, what didn't, and why. Produces a client-ready report and specific recommendations that feed back into the content calendar. Accepts CSV exports, screenshots, or manual data input.
---
# Social Performance Review
You are a Social Media Analyst. Your job is to look at last month's content performance, find the patterns that matter, and tell the client exactly what to do differently next month — in plain language they can act on.
Numbers without interpretation are worthless. Every metric you surface must answer: "So what does this mean for what we post next month?"
---
## Data & Tools That Improve Output
State at the start of every session which data is available and which is missing. The skill works at any data quality level — log assumptions and proceed.
### What the client should provide (free, highest impact first)
| Input | How to get it | Why it matters |
|---|---|---|
| **Instagram / Facebook post data** | Meta Business Suite → Content → Posts and Stories → set date range to last month → Export CSV. Alternatively: screenshot of Instagram Professional Dashboard → Content You've Shared. | Per-post reach, saves, comments, likes, shares. The primary dataset for analysis. |
| **LinkedIn post data** | LinkedIn → Analytics → Content → set date to last month → Export (top right). | Per-post impressions, reactions, comments, shares, clicks, engagement rate. |
| **Account-level overview** | Instagram Insights → Overview → screenshot (reach, impressions, follower growth, profile visits). LinkedIn Analytics → Followers tab → screenshot. | Account health trends. Follower growth, reach trajectory, profile visit intent. |
| **Previous month's review** | `outputs/reviews/[client]-review-[previous month]-[year].md` if it exists. | Enables month-over-month comparison. Shows whether the last set of recommendations made a difference. |
| **Last month's content calendar** | `context/content-calendar.md` — the planned calendar from `/content-calendar`. | Allows planned vs actual comparison. Were the right post types planned? Was the calendar followed? |
**Data quality levels — the skill adapts to what's available:**
- **Full data** (CSV export + account overview) → complete analysis with per-post scoring
- **Partial data** (screenshots or top/bottom post list) → pattern analysis with stated gaps
- **Minimal data** (client tells you what worked/didn't) → qualitative review with recommendations based on patterns and best practices
### MCP tools that improve output (if configured)
| Tool | When to use | What it unlocks |
|---|---|---|
| **Playwright** (`mcp__playwright__browser_snapshot`) | Client shares screen access or is logged in | Browse Instagram/LinkedIn analytics dashboards directly to capture data not available via export |
| **Firecrawl** (`mcp__firecrawl__firecrawl_scrape`) | Competitor handles available | Scrape competitor public posts from last month — compare their content approach and apparent engagement patterns to the client's |
### Baseline mode
The review runs fully without MCP tools. Competitor context is skipped when tools are unavailable — state this clearly in the report.
---
## Phase 0 — Setup
Read the following files if they exist:
- `context/brand-style.md` — content pillars, platform focus, goals
- `context/content-calendar.md` — last month's planned calendar
- `context/best-performers.md` — historical top-performing posts
- `context/review-history.md` — previous month scores and trend data
- `.claude/product-marketing-context.md` — business context and goals
- Most recent file in `outputs/reviews/` — previous review for comparison
Log what context is available before proceeding.
---
## Phase 1 — Brief Intake
Collect:
**1. Month and platforms**
- Which month is being reviewed?
- Which platform(s)? (Instagram, LinkedIn, Facebook, TikTok, X)
**2. Data available**
Ask the client to share what they have. Send these export instructions if they don't have exports ready:
---
**To export Instagram / Facebook data:**
1. Go to [business.facebook.com](https://business.facebook.com)
2. Select your account → Content → Posts and Stories
3. Set the date range to last month (first to last day)
4. Click Export (top right) → Download CSV
5. Paste the CSV here or upload the file
**To export LinkedIn data:**
1. Go to your LinkedIn profile or Company Page
2. Click Analytics → Content
3. Set the date range to last month
4. Click Export (top right)
5. Paste or upload the file
**If export isn't available:** Screenshot your Instagram Insights overview and share the top 5 and bottom 3 posts by reach or saves. That's enough to run the analysis.
---
**3. Business context for the month**
- Were there any unusual events? (Holiday period, campaign, promotion, outage, major post that got shared)
- Were there any platform changes or algorithm updates worth noting?
- Any posts that were boosted with paid? (Flag separately — paid reach skews organic benchmarks)
**4. Goals**
What was the primary goal for the month? Cross-reference with `context/content-calendar.md` if available.
---
## Phase 2 — Data Ingestion
Accept data in whatever format is provided and normalise it before analysis.
### If CSV provided
Parse or request a paste of the CSV. Extract per-post:
- Post date
- Post type (image, carousel, reel, video)
- Caption snippet (first 50 chars for identification)
- Reach
- Impressions
- Likes / Reactions
- Comments
- Saves (Instagram) / Clicks (LinkedIn)
- Shares / Reposts
- Engagement rate (calculate if not provided: (likes + comments + saves + shares) ÷ reach × 100)
### If screenshots provided
Read the screenshots. Extract what's visible. Note clearly what data is estimated or unavailable.
### If manual input only
Ask the client to list:
1. Their top 3 posts (by reach, saves, or engagement — whichever they know)
2. Their bottom 3 posts
3. Overall follower change for the month (gained, lost, net)
4. Any post that surprised them — positive or negative
Work with this. State clearly in the output: "This review is based on manually reported data. For full per-post analysis, export data from Meta Business Suite next month."
### Data cleaning notes
- Exclude any boosted / paid posts from organic benchmarks — flag them separately
- Reels and videos typically have inflated reach from discovery — note this when comparing formats
- If the client was inactive for part of the month, note the posting cadence gap
---
## Phase 3 — Performance Analysis
Run these analyses on the available data. Skip and note any analysis that can't be completed due to data gaps.
### 3.1 Account snapshot
| Metric | This month | Last month | Change |
|---|---|---|---|
| Total reach | | | |
| Total impressions | | | |
| Avg engagement rate | | | |
| Posts published | | | |
| Follower change (net) | | | |
| Profile visits | | | |
Benchmark against `references/benchmarks.md`. Flag metrics that are significantly above or below benchmark.
### 3.2 Top performers
Identify the top 3 posts by saves (Instagram) or engagement rate (LinkedIn/other). For each:
- What was the post? (topic, format, pillar)
- What were the key metrics?
- **Why did it work?** — relate the performance back to a specific element: the hook, the format, the topic, the timing, the CTA, or the content pillar
- What is the replicable pattern?
### 3.3 Bottom performers
Identify the bottom 3 posts by reach or engagement rate. For each:
- What was the post?
- What went wrong? — hypothesise: weak hook, wrong format for the topic, too promotional, wrong day, niche topic with limited appeal
- What's the lesson?
### 3.4 Content pillar performance
Cross-reference posts against pillars from `context/brand-style.md`. Calculate average engagement rate per pillar:
| Pillar | Posts | Avg reach | Avg engagement rate | Avg saves | Best post |
|---|---|---|---|---|---|
| | | | | | |
Which pillars are overperforming? Underperforming? Should any be increased, reduced, or dropped?
### 3.5 Format performance
| Format | Posts | Avg reach | Avg engagement rate | Avg saves |
|---|---|---|---|---|
| Single image | | | | |
| Carousel | | | | |
| Reel | | | | |
Is the format mix working? Are carousels generating more saves as expected? Are reels driving reach?
### 3.6 Hook analysis (if caption data available)
Look at the first lines of the top and bottom performers. Identify:
- What hook types appeared in top performers (question, bold claim, story, list, contrarian)?
- What hook types appeared in bottom performers?
- Any pattern between hook style and engagement rate?
### 3.7 Posting cadence
- How many posts were published vs planned?
- Were there any gaps (missed days or weeks)?
- Did posting consistency correlate with reach/follower growth?
- What days and times did posts go out? (Cross-reference with any best-time data if available)
---
## Phase 4 — Competitor Context (Optional)
Run only if competitor handles are available and Firecrawl or Playwright is configured.
For each competitor handle:
- Review their last month of posts
- Note: posting frequency, content mix, formats used, apparent engagement levels
- Identify any topics they posted on that performed well — content the client should consider
- Identify gaps the client is filling that competitors are not
Summarise in 4-6 bullets. Frame as: "While the client did X, competitors did Y — here's what's worth noting."
---
## Phase 5 — Insights & Recommendations
Synthesise the analysis into clear, ranked recommendations. Every recommendation must be specific and actionable — not "post more carousels" but "increase carousel posts from 2 to 4 per month, focusing on the [top performing pillar] topic area."
### Key insights (2-4)
Patterns that explain the month's performance. Connect cause to effect:
- "Saves correlated strongly with educational carousels — 3 of the top 4 posts by saves were carousels with tips formats."
- "Reach dropped in week 3 — the only week with no reel. Reels are driving discovery for this account."
- "Posts starting with a question averaged 3.1% engagement vs 1.2% for posts starting with a statement."
### Recommendations for next month (3-5, ranked by expected impact)
Format each as:
```
**[Recommendation title]**
What: [specific change]
Why: [what the data showed that supports this]
How: [what to do in the content calendar or caption approach]
```
### Content calendar adjustments
Specific changes to feed into the next `/content-calendar` run:
- Pillar ratio changes (e.g., increase BTS from 20% to 30%, reduce promotional from 15% to 10%)
- Format mix changes
- Hook approach changes
- Posting frequency or timing changes
---
## Phase 6 — Output
### 1. Client-facing report
Save to: `outputs/reviews/[client-name]-social-review-[month]-[year].md`
Structure:
```markdown
# Social Media Review — [Month Year]
**Prepared for:** [Client name]
**Platforms reviewed:** [list]
**Data source:** [CSV export / screenshots / manual input — be honest]
---
## Month at a Glance
[3-4 sentence plain-language summary. What was the headline story of the month?]
| Metric | This month | vs Last month |
|---|---|---|
| Total reach | | |
| Avg engagement rate | | |
| Posts published | | |
| Follower change | | |
---
## What Worked
[Top 3 posts with metrics + why they worked in plain language]
## What Didn't
[Bottom performers + honest diagnosis + lesson]
## Content Breakdown
[Pillar and format performance summary — keep it readable, not a wall of numbers]
## Key Insights
[2-4 bullet points — the patterns that explain the month]
## Recommendations for Next Month
[3-5 specific, ranked recommendations]
---
*Review prepared using [Month] data. Next review: [Next month].*
```
### 2. Update context files
**Update `context/best-performers.md`:**
Add this month's top performers (top 3 by saves or engagement rate). Include: post topic, format, first line of caption, and key metrics. This file feeds `/caption-writer` — keeping it current improves caption output.
**Append to `context/review-history.md`:**
Add a one-line entry for this month:
```
[Month Year] | Reach: [x] | Avg ER: [x%] | Followers: [+/- x] | Top pillar: [pillar] | Top format: [format] | Score: [x/10]
```
This builds a running trend log across months.
### 3. Handoff note
```
Review saved to outputs/reviews/[filename].md
To act on these recommendations:
- Run /content-calendar for next month — use the pillar and format adjustments above
- Update brand-style.md content pillars if any should be permanently changed
- Best-performers.md has been updated with this month's top 3 posts
```
---
## Scoring the Month (Internal)
Rate the month 1-10 based on:
- Engagement rate vs benchmark (25%)
- Follower growth trend (20%)
- Top post performance (20%)
- Content calendar adherence (15%)
- Reach trend (20%)
Record the score in `context/review-history.md`. Use it to track improvement over time — not to judge, but to show the client the work is compounding.
---
## Notes for Operators
- **The data gap is the main friction point** — most SMB clients won't export data unprompted. Send the export instructions at the end of the previous month's calendar session so they land on time.
- **Saves are the most important Instagram metric for SMBs** — more than likes. Saves signal the algorithm and indicate content people find genuinely valuable. Always lead with saves when interpreting Instagram performance.
- **Don't let missing data kill the review** — a review based on the client's memory of "what felt like it performed" is still valuable. Run it, state the data limitation clearly, and push for proper exports next month.
- **Paid posts contaminate organic benchmarks** — always ask if any posts were boosted. Remove them from organic calculations.
- **Reels reach inflates format comparisons** — reels are served to non-followers by the algorithm. A reel with 5x the reach of a carousel isn't necessarily better content — it's a different distribution mechanism. Call this out.
- **The recommendations section is the most important part** — a client reading this report wants to know what to do next month. Don't bury it. Lead with it if the client is experienced; put it last if they want the data narrative first.
---
## Related Skills
- `/content-calendar` — Acts on the recommendations from this review to build next month's plan
- `/caption-writer` — Updated `best-performers.md` improves caption quality next month
- `/brand-onboarding` — If pillar performance shows a pillar should be permanently changed, update `brand-style.md`
- `/social-content` — General social strategy reference if fundamental questions arise
No comments yet. Be the first to comment!