Monthly Performance Report skill and the Yalc Framework
The end-of-month deliverable that turns Reddit GEO performance data into a 12-section client-facing report in Notion. Runs on opus, max-turns 40.
Say this to fire the Monthly Performance Report skill
Any of these natural language phrases activates the skill inside Claude Code.
Monthly Performance Report, plainly
The Monthly Report skill generates the canonical Earleads monthly Reddit GEO performance deliverable for any active client. It pulls scraped data from the client's Notion DBs (Posts Published, Repurposing Queue, Sentiment Analysis), synthesizes via Claude Opus, and writes a 12-section Notion page covering reach, engagement, sentiment, content highlights, brand mention quality, competitor activity, opportunities for next month, and recommendations.
This skill is the monthly deliverable. It runs on demand at month-end, takes 30 to 45 minutes, and produces a client-facing artifact ready for the AM to walk through. For Earleads, it's how clients see what their retainer paid for in concrete terms.
Position in the GTM operating system
The Monthly Report skill sits at the **listen** node, aggregating a month's worth of activity into one structured deliverable. It chains downstream of every other Reddit GEO skill: monitoring runs daily, repurposing runs daily, sentiment runs monthly, this skill assembles the story.
The skill explicitly uses Claude Opus and `--max-turns 40` because the synthesis is non-trivial: 30+ days of activity, multiple content surfaces, and a narrative arc that has to feel client-facing rather than data-dump.
Running the Monthly Performance Report skill end to end
Workflow position
The monthly client deliverable. Yalc invokes this skill once per client per month. Output is a polished Notion report under the client's Reddit GEO Hub.
Required inputs
- → Active client name
- → Month being reported (e.g. "March 2026")
- → Access to the client's Notion workspace (Posts Published, Repurposing, Sentiment DBs)
- → [object Object]
Outputs
- → 12-section Notion page under the client's Reddit GEO Hub
- → Headline numbers (impressions, comments, brand mentions)
- → Per-section narrative (what worked, what didn't, why)
- → Recommendations for next month
- → Visual elements (charts) where structurally useful
Chaining recommendations
Anti patterns to avoid
Pros, cons, who it's for
Pros
- Battle tested across 5+ Earleads clients monthly
- 12 sections cover the full client narrative arc
- Opus synthesis quality reads as agency-grade, not auto-generated
- Output goes directly to the client's Notion (where they already work)
- Includes recommendations, not just data dump
Cons
- 30 to 45 minutes per report run (opus is slow, 40 turns adds up)
- Requires clean Notion DB hygiene; dirty data produces dirty reports
- Per-client setup required (DB IDs, voice, history)
- Single-client per run; batch operation requires manual sequencing
Who it's for
- Earleads AMs running monthly client check-ins
- Reddit GEO agencies with monthly reporting commitments
- Operators who want their performance synthesized into a story, not a spreadsheet
What this skill expects to find
Other skills
- apify-reddit-scraping (provides the underlying scraped data)
- sentiment-analysis (provides the monthly sentiment snapshot)
- notion-page-writer (writes the report)
MCP servers
- Notion MCP (read DBs, write report page)
Environment variables
NOTION_API_KEYANTHROPIC_API_KEY (opus access)
The skill assumes the per-client Notion DB IDs are available in the client's memory file (e.g. `memory/buildbetter.md`, `memory/datascalehr.md`). Each client has Publish DB, Repurposing DB, Posts Published DB, and Thread Map DB.
The Monthly Performance Report ecosystem inside Yalc
Skills that overlap
Frequently asked
Why opus and not haiku?
Synthesis quality matters. Monthly reports are a major touchpoint. Haiku produces summaries that read as auto-generated. Opus produces narrative that feels written. The cost per report is small versus client perception.
When in the month should this run?
First or second business day of the next month. Running mid-month produces incomplete data; running on the 1st gives the cleanest cutoff.
How does the skill handle months with limited activity?
The narrative honestly reflects low activity. Fabricating engagement is worse than reporting truthfully. The skill produces a shorter report when there's less to say.
Can the skill compare to prior months?
Yes if the prior month's report is in Notion. The skill reads it as context and produces delta analysis (this month vs last month, trends, shifts).
Does it produce visual charts?
Where structurally useful (impressions over time, sentiment breakdown). Charts are simple Notion-native blocks, not complex visualizations.
How is the AM supposed to use this?
Read the draft end-to-end on day 1. Edit any sections that don't match your sense of the client. Add personal context (recent calls, planned next steps). Share the polished version with the client by day 3.
Get the Monthly Performance Report skill
Clone the Yalc skill set, drop in your env, run from your next Claude Code session.
gh repo clone Othmane-Khadri/YALC-the-GTM-operating-system && cp -r YALC-the-GTM-operating-system/.claude/skills/monthly-report ./.claude/skills/