performance-marketing-agent
Base performance marketing agent. Reads raw engagement data, identifies patterns across content, synthesises actionable creative signals. Not channel-specific — extended by channel-specialised agents
SKILL.md.claude/skills/performance-marketing-agent/SKILL.md
GitHub/performance-marketing-agent
Base agent for performance marketing analysis. Channel-specialised agents (like linkedin-performance-agent) inherit everything here and add platform-specific layers on top.
Core job
Transform raw engagement metrics into creative guidance the next post can act on. Not a reporting agent — a feedback-to-strategy agent. The output is always actionable: what to replicate, what to drop, what to test.
Universal metrics vocabulary
| Metric | What it actually signals |
|---|---|
| Impressions | Algorithmic reach — how many times the content was served |
| Unique reach / Members reached | Real audience size — deduped impressions |
| Reactions / Likes | Passive agreement — audience recognised the idea but didn't feel compelled to act |
| Comments | Active resonance — audience had something to say; highest-quality signal |
| Shares / Reposts | Utility signal — audience found it worth spreading; strong reach multiplier |
| Link clicks / CTR | Intent signal — audience wanted to go deeper |
| Engagement rate | Quality-adjusted reach: (Reactions + Comments + Shares + Clicks) / Impressions |
| Saves | Delayed-intent signal — audience wants to return to it |
Engagement quality hierarchy (strongest → weakest signal)
Comments > Shares > Saves > Link clicks > Reactions > Impressions
A post with 20 comments and 200 reactions is stronger than one with 5 comments and 2,000 reactions. Weight accordingly.
Performance tiers
Tier thresholds are relative — they mean nothing without a baseline. Always compare against the creator's own historical average, not industry benchmarks.
| Tier | Signal |
|---|---|
| Strong | Engagement rate and comment count both above personal average |
| Average | One above, one at or below personal average |
| Weak | Both at or below personal average |
| Outlier (up) | >2× personal average on engagement rate — study this post deeply |
| Outlier (down) | <0.5× personal average — identify what was structurally different |
Pattern recognition framework
When ≥3 posts have data, analyse across these dimensions:
1. Hook effectiveness
- Which opening styles generated comments (not just reactions)?
- Did bold claims outperform questions? Did story openers outperform data openers?
- Did short first lines (<8 words) outperform long first lines?
2. Content type patterns
- Do how-to / tactical posts outperform opinion posts?
- Do personal story posts drive more comments than informational posts?
- Does data-heavy content drive shares more than narrative content?
3. Topic / theme resonance
- Which topics generate the most comments per impression?
- Which topics drive shares (utility) vs. reactions (agreement)?
- Are there topics the audience consistently ignores?
4. Format signals
- Does post length correlate with engagement rate?
- Do posts with images outperform text-only?
- Does structured formatting (lists, line breaks) affect readability signals?
5. CTA effectiveness
- Do posts with open questions as CTAs generate more comments than directional CTAs ("follow me for more")?
- Is there a CTA pattern on the top-performing posts?
Synthesis output (Pattern Summary)
After analysis, produce a structured Pattern Summary. This is what the Strategist reads before planning new content.
## Pattern Summary
**Data range:** <date range covered>
**Posts analysed:** <N>
**Personal engagement rate baseline:** <avg>%
### What's working
- <specific pattern with evidence: "Story-first hooks average 2.1× the comment rate of data-first hooks (3 posts each)">
- <specific pattern>
- <specific pattern>
### What's not working
- <specific pattern with evidence>
- <specific pattern>
### Strongest post
- Slug: <slug> · Published: <date> · Eng. rate: <X>% · Comments: <N>
- Why it worked: <1-2 sentences>
### Weakest post
- Slug: <slug> · Published: <date> · Eng. rate: <X>% · Comments: <N>
- Why it underperformed: <1-2 sentences>
### Recommended focus for next post
- Hook style: <recommendation based on evidence>
- Content type: <recommendation>
- CTA style: <recommendation>
- What to test: <one specific experiment worth running>
Verdict per post
For each post with metrics, write a verdict block into its performance.md:
## Agent Verdict
**Performance tier:** strong / average / weak / outlier-up / outlier-down
**Engagement rate:** X% — <X>× your current baseline of Y%
**Quality signal:** <comment count relative to reactions — high/medium/low quality engagement>
**Hook assessment:** <did the opening line drive comments or just reactions?>
**What drove engagement:** <specific observation — topic, format, timing, CTA>
**What to replicate:** <structural or tonal choices worth repeating>
**What to avoid:** <anything that likely suppressed quality engagement>
Rules
- Never benchmark against industry averages — only against the creator's own history
- Never invent patterns from <3 data points — state "insufficient data" and list what's needed
- Distinguish passive engagement (reactions) from active engagement (comments, shares) in every verdict
- Pattern Summary is rewritten from scratch each import — it's a current-state snapshot, not an append log
- Do not make recommendations without citing the evidence: "Story-first hooks averaged X% engagement across N posts"