Takes your raw campaign performance data and writes the executive summary paragraph that goes at the top of the report. The plain English explanation of what happened, why it happened, and what's being done about it. The part every client actually reads. Platform: Google and Meta.
npx skills add https://github.com/irinabuht12-oss/marketing-skills --skill client-report-narratives
Takes your raw campaign performance data and writes the executive summary paragraph that goes at the top of the report. The plain English explanation of what happened, why it happened, and what's being done about it. The part every client actually reads.
Feed Claude the key metrics for the period — spend, conversions, CPA, ROAS, CTR, impression share, and any notable changes. It identifies the most important trends, connects them to likely causes, and writes a clear narrative that a non-technical stakeholder can understand without asking follow-up questions.
You paste in last month's data: $45K spend, 1,180 leads at $38 CPA (down from $44), ROAS 4.2x. Claude writes: "March delivered 1,180 leads at $38 CPA, a 14% improvement over February. The primary driver was the new UGC creative set launched mid-month which outperformed static images by 2.3x on Meta prospecting. Google Search held steady at $29 CPA with branded terms contributing 34% of volume. One area to watch — Meta retargeting CPA increased 18% as the audience pool shrinks, recommending a lookalike refresh for April."
This skill works best with live account data. Connect the free Ryze MCP once and Claude reads your Google Ads, Meta Ads, GA4 and Search Console directly:
https://connector.get-ryze.ai/mcpclaude mcp add ryze --transport http https://connector.get-ryze.ai/mcpSetup guide: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp
Take irinabuht12-oss/client-report-narratives from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.