.claude/skills/ads-report/SKILL.md
Pull live performance metrics for all active Meta ad campaigns. Reports spend, CPL, leads, and recommends kill/scale/hold decisions. Compares against vertical benchmarks. Use daily to monitor ad performance.
npx skillsauth add wallacedobbs428/thecalltaker ads-reportInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pull performance report for: $ARGUMENTS (or all active campaigns if no vertical specified)
The Call Taker: AI receptionist SaaS. CPL benchmarks:
If a vertical was specified, read:
~/thecalltaker-ops/ads/active/{vertical}-campaign.json
If no vertical, glob all: ~/thecalltaker-ops/ads/active/*-campaign.json
If no campaigns found: "No active campaigns. Run /ads-launch {vertical} first."
echo "META_ACCESS_TOKEN: ${META_ACCESS_TOKEN:+SET}"
If tokens exist, pull live data from Meta API:
curl -G "https://graph.facebook.com/v21.0/${CAMPAIGN_ID}/insights" \
-H "Authorization: Bearer ${META_ACCESS_TOKEN}" \
-d "fields=spend,impressions,clicks,cpc,cpm,actions,cost_per_action_type" \
-d "date_preset=last_7d"
If no tokens, generate report from campaign config with "PENDING_LAUNCH" status.
For each campaign:
Per-ad breakdown:
curl -G "https://graph.facebook.com/v21.0/${ADSET_ID}/insights" \
-H "Authorization: Bearer ${META_ACCESS_TOKEN}" \
-d "fields=spend,impressions,actions,cost_per_action_type" \
-d "level=ad" \
-d "date_preset=last_7d"
For each ad:
KILL (red): CPL > 2x benchmark after 1,000+ impressions → pause immediately HOLD (yellow): CPL between 1x-2x benchmark OR < 1,000 impressions → keep running SCALE (green): CPL < benchmark for 3+ consecutive days → increase budget TEST NEW (blue): All 3 ads killed → return to /ads-brief for new angles
═══════════════════════════════════════
AD PERFORMANCE REPORT — {date}
═══════════════════════════════════════
{VERTICAL} Campaign — {days} days active
Budget: ${daily}/day | Total Spend: ${total}
Leads: {count} | CPL: ${cpl} (benchmark: ${bench})
Ad 1: "{headline}"
Spend: ${x} | Leads: {n} | CPL: ${x}
→ RECOMMENDATION
Ad 2: "{headline}"
Spend: ${x} | Leads: {n} | CPL: ${x}
→ RECOMMENDATION
Ad 3: "{headline}"
Spend: ${x} | Leads: {n} | CPL: ${x}
→ RECOMMENDATION
ACTIONS:
1. {action item}
2. {action item}
ROI MATH:
{leads} leads × 20% close rate = {clients} clients
{clients} × $97/mo = ${mrr}/mo MRR
Ad spend: ${spend} → Payback: {days} days
═══════════════════════════════════════
Save to: ~/thecalltaker-ops/ads/reports/{vertical}-{date}.json
Update ~/thecalltaker-ops/ads/intelligence.json:
cpls_by_vertical with latest actual CPLtotal_spend and total_leadsburned_angleswinning_anglesCreate directory if needed: mkdir -p ~/thecalltaker-ops/ads/reports
If campaigns are active and have data, send to ntfy SALES topic (tct-sales-63uYsIT9):
AD REPORT: {vertical} | Spend: ${spend} | Leads: {leads} | CPL: ${cpl} | Action: {primary recommendation}
Print the full formatted report, then: "Report saved to ~/thecalltaker-ops/ads/reports/{vertical}-{date}.json" "Intelligence updated."
documentation
Agentic memory system for writers - track characters, relationships, scenes, and themes
tools
Automate repetitive development tasks and workflows. Use when creating build scripts, automating deployments, or setting up development workflows. Handles npm scripts, Makefile, GitHub Actions workflows, and task automation.
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices". Fetches latest Vercel guidelines and checks files against all rules.
development
Implement web accessibility (a11y) standards following WCAG 2.1 guidelines. Use when building accessible UIs, fixing accessibility issues, or ensuring compliance with disability standards. Handles ARIA attributes, keyboard navigation, screen readers, semantic HTML, and accessibility testing.