CRO optimizer skill
CRO specialist that pulls live analytics data via the Humblytics MCP, analyzes conversion funnels, identifies drop-off points, and generates prioritized A/B test hypotheses.
by Humblytics·MIT license·★ 85 Stars on the repo·GitHub ↗
npx degit Humblytics/humblytics-marketing-skills/skills/cro-optimizer#main ~/.claude/skills/cro-optimizerChecked ·commit main
Inside this skill
SKILL.md · the author's own words# CRO Optimizer ## Purpose Analyze conversion funnels using live Humblytics analytics (via the Humblytics MCP), identify the highest-impact drop-off points, and gener… ## When to Use - Diagnosing why a funnel is underperforming - Identifying the biggest conversion bottleneck across a user journey - Generating a prioritized list of A/B test ideas - Preparing a CRO sprint plan or quarterly optimization roadmap - Analyzing page-level or step-level drop-off rates - Comparing conversion performance across segments (device, source, geography) ## Credentials
Word-for-word excerpt, not a result. Read the full SKILL.md ↓
Files of CRO optimizer
Show the full text187 lines
CRO Optimizer
Purpose
Analyze conversion funnels using live Humblytics analytics (via the Humblytics MCP), identify the highest-impact drop-off points, and generate prioritized A/B test hypotheses with expected conversion-rate / volume impact. This skill turns raw analytics into a ranked optimization roadmap.
When to Use
- Diagnosing why a funnel is underperforming
- Identifying the biggest conversion bottleneck across a user journey
- Generating a prioritized list of A/B test ideas
- Preparing a CRO sprint plan or quarterly optimization roadmap
- Analyzing page-level or step-level drop-off rates
- Comparing conversion performance across segments (device, source, geography)
Credentials
Live data comes from the Humblytics MCP (server humblytics). Connect it once — see the repo README — and this skill calls mcp__humblytics__* tools directly. No API keys, base URLs, or .env plumbing live in the skill.
- Never paste API keys into chat — they persist in transcripts and logs. Your key lives in the MCP connection headers, set once at connect time, and is never committed to the repo.
- Property: the MCP auto-resolves your property for a single-property key (the common case). For a multi-property key, call
list_propertiesand pass thepropertyIdyou want to analyze. - Docs: https://docs.humblytics.com/api
Before You Start
- Confirm the property — The MCP auto-resolves the property for a single-property key. If the key covers multiple properties, call
list_propertiesand confirm which one to analyze. - Identify the funnel — Clarify which conversion flow to examine (e.g., homepage > pricing > signup > onboarding)
- Check for context — Look for existing project docs, AGENTS.md, or product briefs that describe the business model, target audience, and current conversion goals
- Establish the time range — Default to last 30 days; ask if the user wants a different window
- Confirm MCP access — Verify the Humblytics MCP (server
humblytics) is connected before pulling data
Core Workflow
Step 1: Pull Funnel Data
Live data comes from the Humblytics MCP — the relevant tools here are get_pages_breakdown, get_page_details, query_funnel, get_funnel_sankey, get_forms_breakdown, and get_clicks_details. Retrieve:
- Page views and sessions for each step in the funnel
- Event data for key conversion actions (signups, clicks, form submissions)
- Device and source breakdowns to identify segment-specific issues
- Scroll depth via
get_page_detailsand click density viaget_clicks_details(there is no heatmap tool) for high-traffic pages
The analytics tools take start, end (ISO-8601), and timezone:
get_pages_breakdown— Page-level traffic across the siteget_page_details(page: "/path") — Single-page deep dive (UTM, device, country breakdowns, scroll depth)query_funnel(steps: [{ page: "/" }, ...]) — Funnel step data. Optional:mode: "unbounded" | "sequential",breakdownByget_funnel_sankey(samesteps) — Sankey path diagram for the same funnel
Fallback when funnels are down.
query_funnelandget_funnel_sankeycan return HTTP 500. If they fail, approximate the funnel from the tools that do work: pull per-step page volume fromget_pages_breakdown(andget_funnel_suggestionswithpage: "/path"for the ranked next-page sequence), and pull conversion-event volume for the final step(s) fromget_forms_breakdown. Compute step-to-step conversion / drop-off from theseunique_sessions(pages) and submission counts (forms). Note in your output that the funnel is an approximation from page + form breakdowns because the native funnel tool was unavailable.
get_forms_breakdownandget_forms_details(page: "/path") — Form/conversion event data (there is no genericeventstool)get_clicks_details(page: "/path") — Click heatmap data for a specific page (no heatmap tool exists; click data is the closest analogue)get_clicks_breakdown— Cross-page click comparison
Step 2: Map the Funnel
Build a complete picture of the user journey:
Traffic Source → Landing Page → Key Action → Conversion → Retention
For each step, calculate:
- Volume: How many users reach this step
- Conversion rate: Percentage who proceed to the next step
- Drop-off rate: Percentage who abandon at this step
- Absolute drop-off: Raw number of users lost
Step 3: Identify the Biggest Leak
Apply the Largest Leak First principle:
- Calculate the absolute number of users lost at each step
- Rank steps by absolute drop-off (not percentage)
- The step losing the most users in absolute terms is your highest-priority optimization target
Why absolute over percentage: A 50% drop-off at a step with 100 visitors loses 50 people. A 10% drop-off at a step with 10,000 visitors loses 1,000 people. Fix the 1,000-person leak first.
Step 4: Diagnose Root Causes
For each high-drop-off step, investigate:
- Page load time — Slow pages kill conversions. Check if the step has performance issues.
- Mobile vs desktop — Is the drop-off concentrated on mobile? Layout/UX issue.
- Traffic source — Do certain acquisition channels show higher drop-off? Expectation mismatch.
- Scroll depth — Are users seeing the CTA? Check scroll depth via
get_page_detailsand click density viaget_clicks_details(there is no heatmap tool). - Click patterns — Are users clicking non-interactive elements? Confusing UI.
- Form fields — For forms, which field has the highest abandonment rate?
When the leak appears concentrated in paid traffic (drop-off significantly worse for utm_source=google or utm_source=facebook than for organic), call get_ads_attribution (startDate, endDate as YYYY-MM-DD) to see which specific campaigns are landing on the underperforming page. A creative/landing-page mismatch on one campaign can drag down a whole step's conversion rate. Hand off to revenue-attributor for the full ROAS picture or ad-expert to fix the creative.
Step 5: Generate Test Hypotheses
For each identified issue, create a hypothesis using the ICE framework:
Format:
IF we [change], THEN [metric] will [improve/increase/decrease]
BECAUSE [evidence from data]
Impact: [1-10] — How much will this move the needle?
Confidence: [1-10] — How sure are we this will work?
Ease: [1-10] — How quickly can we implement and test this?
ICE Score: [average of three]
Step 6: Prioritize and Recommend
Rank all hypotheses by ICE score and present:
- Top 3 Quick Wins — High ease, decent impact (ship this week)
- Top 3 High-Impact Tests — High impact, may require more effort (sprint backlog)
- Strategic Bets — Lower confidence but potentially transformative (quarterly roadmap)
For each recommendation, include:
- The specific page or funnel step
- What to change and why
- Expected impact on conversion rate
- Suggested test duration based on traffic volume
Analysis Frameworks
The RICE Prioritization (for larger teams)
- Reach: How many users per month does this affect?
- Impact: Expected lift (minimal / low / medium / high / massive)
- Confidence: Data quality supporting the hypothesis (low / medium / high)
- Effort: Engineering/design time (days)
Score = (Reach x Impact x Confidence) / Effort
Segment Analysis Checklist
Always break down conversion data by:
- Device type (mobile / desktop / tablet)
- Traffic source (organic / paid / direct / referral / social)
- Geography (if international)
- New vs returning visitors
- Entry page
Common Funnel Archetypes
| Funnel Type | Key Metrics | Common Leaks |
|---|---|---|
| SaaS Free Trial | Visit > Signup > Activate > Convert | Signup form friction, activation failure |
| E-commerce | PDP > Cart > Checkout > Purchase | Cart abandonment, checkout form |
| Lead Gen | Landing > Form > Thank You | Form length, trust signals |
| Content > Conversion | Blog > CTA > Signup | CTA visibility, relevance match |
Output Format
Present findings as:
- Funnel Overview — Visual step-by-step with volumes and rates
- Key Finding — The single biggest insight in one sentence
- Drop-off Analysis — Ranked list of leaks with absolute numbers
- Root Cause Diagnosis — What is causing each major leak
- Prioritized Test Roadmap — ICE-scored hypotheses ready for execution
- Expected Impact — If top 3 tests succeed, projected conversion lift
Related Skills
- ab-test-generator — Take the hypotheses from this skill and generate actual test configurations
- funnel-reporter — Pull comprehensive funnel reports with traffic & conversion volume (revenue only if a Stripe/ChartMogul revenue connector is attached)
- page-cro — Deep-dive into a specific page's conversion issues
- copywriting — Generate optimized copy for test variants
Shared Frameworks (REQUIRED reading)
Before producing recommendations, anchor your analysis against the shared primitives in skills/_shared/. Skipping these is the #1 cause of generic, low-confidence output.
_shared/frameworks/preflight-checklist.md— five context items to verify before scoring (URL, time range, goal, vertical, statistical reachability). If anything's missing AND would change the recommendation, ask one focused question; otherwise state assumptions explicitly._shared/frameworks/largest-leak-first.md— rank by absolute people lost, not by percentage drop. A 10% drop on 10,000 visitors outranks a 50% drop on 100. Always compute absolute loss per step before applying ICE._shared/frameworks/percentile-framing.md— report current metrics against vertical p25/p50/p75 bands from_shared/benchmarks/baselines.json. Replace "your CVR is low" with "your CVR is at p35 — meaningful headroom to p50"._shared/frameworks/ice-confidence-rubric.md— anchor ICE.Confidence on evidence quality, not familiarity. 9–10 = ≥2 sources with n≥1000 in target vertical; 5–6 = general best practice; 1–3 = directional hunch._shared/frameworks/anti-patterns.md— counter-evidence for canon advice (customer logos LOST in most DoWhatWorks tests, "free" CTAs lose −16.8% platform-wide on Unbounce, hero video net-negative on mobile, etc.). Read before recommending the "best practice" version of any well-known pattern._shared/frameworks/base-rate-priors.md— realistic priors: only ~14% of CTA tests reach significance; ~31% of headline rewrites beat control. Anchor expectations against base rates, not best-case outliers._shared/benchmarks/patterns.json— 54 curated patterns with cited lift ranges, prerequisites, anti-patterns. When recommending a change, find the matchingpattern_idand quoteevidence[].lift_range_pctinstead of guessing.
| 1 | |
| 2 | name cro-optimizer |
| 3 | description "CRO specialist that pulls live analytics data via the Humblytics MCP, analyzes conversion funnels, identifies drop-off points, and generates prioritized A/B test hypotheses. Use when analyzing conversion rates, diagnosing funnel leaks, optimizing signup flows, or creating test roadmaps. Triggers: CRO, conversion rate, funnel analysis, drop-off, optimize conversions, test hypothesis." |
| 4 | metadata |
| 5 | version 1.0.0 |
| 6 | author Humblytics |
| 7 | |
| 8 | |
| 9 | # CRO Optimizer |
| 10 | |
| 11 | ## Purpose |
| 12 | |
| 13 | Analyze conversion funnels using live Humblytics analytics (via the Humblytics MCP), identify the highest-impact drop-off points, and generate prioritized A/B test hypotheses with expected conversion-rate / volume impact. This skill turns raw analytics into a ranked optimization roadmap. |
| 14 | |
| 15 | ## When to Use |
| 16 | |
| 17 | Diagnosing why a funnel is underperforming |
| 18 | Identifying the biggest conversion bottleneck across a user journey |
| 19 | Generating a prioritized list of A/B test ideas |
| 20 | Preparing a CRO sprint plan or quarterly optimization roadmap |
| 21 | Analyzing page-level or step-level drop-off rates |
| 22 | Comparing conversion performance across segments (device, source, geography) |
| 23 | |
| 24 | ## Credentials |
| 25 | |
| 26 | Live data comes from the **Humblytics MCP** (server `humblytics`). Connect it once — see the repo README — and this skill calls `mcp__humblytics__*` tools directly. No API keys, base URLs, or `.env` plumbing live in the skill. |
| 27 | |
| 28 | **Never paste API keys into chat** — they persist in transcripts and logs. Your key lives in the MCP connection headers, set once at connect time, and is never committed to the repo. |
| 29 | **Property**: the MCP auto-resolves your property for a single-property key (the common case). For a multi-property key, call `list_properties` and pass the `propertyId` you want to analyze. |
| 30 | **Docs**: https://docs.humblytics.com/api |
| 31 | |
| 32 | ## Before You Start |
| 33 | |
| 34 | **Confirm the property** — The MCP auto-resolves the property for a single-property key. If the key covers multiple properties, call `list_properties` and confirm which one to analyze. |
| 35 | **Identify the funnel** — Clarify which conversion flow to examine (e.g., homepage > pricing > signup > onboarding) |
| 36 | **Check for context** — Look for existing project docs, AGENTS.md, or product briefs that describe the business model, target audience, and current conversion goals |
| 37 | **Establish the time range** — Default to last 30 days; ask if the user wants a different window |
| 38 | **Confirm MCP access** — Verify the Humblytics MCP (server `humblytics`) is connected before pulling data |
| 39 | |
| 40 | ## Core Workflow |
| 41 | |
| 42 | ### Step 1: Pull Funnel Data |
| 43 | |
| 44 | Live data comes from the Humblytics MCP — the relevant tools here are `get_pages_breakdown`, `get_page_details`, `query_funnel`, `get_funnel_sankey`, `get_forms_breakdown`, and `get_clicks_details`. Retrieve: |
| 45 | |
| 46 | **Page views and sessions** for each step in the funnel |
| 47 | **Event data** for key conversion actions (signups, clicks, form submissions) |
| 48 | **Device and source breakdowns** to identify segment-specific issues |
| 49 | **Scroll depth via `get_page_details`** and **click density via `get_clicks_details`** (there is no heatmap tool) for high-traffic pages |
| 50 | |
| 51 | The analytics tools take `start`, `end` (ISO-8601), and `timezone`: |
| 52 | |
| 53 | `get_pages_breakdown` — Page-level traffic across the site |
| 54 | `get_page_details` (`page: "/path"`) — Single-page deep dive (UTM, device, country breakdowns, scroll depth) |
| 55 | `query_funnel` (`steps: [{ page: "/" }, ...]`) — Funnel step data. Optional: `mode: "unbounded" | "sequential"`, `breakdownBy` |
| 56 | `get_funnel_sankey` (same `steps`) — Sankey path diagram for the same funnel |
| 57 | |
| 58 | > **Fallback when funnels are down.** `query_funnel` and `get_funnel_sankey` can return HTTP 500. If they fail, approximate the funnel from the tools that do work: pull per-step page volume from `get_pages_breakdown` (and `get_funnel_suggestions` with `page: "/path"` for the ranked next-page sequence), and pull conversion-event volume for the final step(s) from `get_forms_breakdown`. Compute step-to-step conversion / drop-off from these `unique_sessions` (pages) and submission counts (forms). Note in your output that the funnel is an approximation from page + form breakdowns because the native funnel tool was unavailable. |
| 59 | `get_forms_breakdown` and `get_forms_details` (`page: "/path"`) — Form/conversion event data (there is no generic `events` tool) |
| 60 | `get_clicks_details` (`page: "/path"`) — Click heatmap data for a specific page (no heatmap tool exists; click data is the closest analogue) |
| 61 | `get_clicks_breakdown` — Cross-page click comparison |
| 62 | |
| 63 | ### Step 2: Map the Funnel |
| 64 | |
| 65 | Build a complete picture of the user journey: |
| 66 | |
| 67 | |
| 68 | Traffic Source → Landing Page → Key Action → Conversion → Retention |
| 69 | |
| 70 | |
| 71 | For each step, calculate: |
| 72 | **Volume**: How many users reach this step |
| 73 | **Conversion rate**: Percentage who proceed to the next step |
| 74 | **Drop-off rate**: Percentage who abandon at this step |
| 75 | **Absolute drop-off**: Raw number of users lost |
| 76 | |
| 77 | ### Step 3: Identify the Biggest Leak |
| 78 | |
| 79 | Apply the **Largest Leak First** principle: |
| 80 | |
| 81 | Calculate the absolute number of users lost at each step |
| 82 | Rank steps by absolute drop-off (not percentage) |
| 83 | The step losing the most users in absolute terms is your highest-priority optimization target |
| 84 | |
| 85 | Why absolute over percentage: A 50% drop-off at a step with 100 visitors loses 50 people. A 10% drop-off at a step with 10,000 visitors loses 1,000 people. Fix the 1,000-person leak first. |
| 86 | |
| 87 | ### Step 4: Diagnose Root Causes |
| 88 | |
| 89 | For each high-drop-off step, investigate: |
| 90 | |
| 91 | **Page load time** — Slow pages kill conversions. Check if the step has performance issues. |
| 92 | **Mobile vs desktop** — Is the drop-off concentrated on mobile? Layout/UX issue. |
| 93 | **Traffic source** — Do certain acquisition channels show higher drop-off? Expectation mismatch. |
| 94 | **Scroll depth** — Are users seeing the CTA? Check scroll depth via `get_page_details` and click density via `get_clicks_details` (there is no heatmap tool). |
| 95 | **Click patterns** — Are users clicking non-interactive elements? Confusing UI. |
| 96 | **Form fields** — For forms, which field has the highest abandonment rate? |
| 97 | |
| 98 | When the leak appears concentrated in **paid traffic** (drop-off significantly worse for `utm_source=google` or `utm_source=facebook` than for organic), call `get_ads_attribution` (`startDate`, `endDate` as `YYYY-MM-DD`) to see which specific campaigns are landing on the underperforming page. A creative/landing-page mismatch on one campaign can drag down a whole step's conversion rate. Hand off to `revenue-attributor` for the full ROAS picture or `ad-expert` to fix the creative. |
| 99 | |
| 100 | ### Step 5: Generate Test Hypotheses |
| 101 | |
| 102 | For each identified issue, create a hypothesis using the ICE framework: |
| 103 | |
| 104 | **Format:** |
| 105 | |
| 106 | IF we [change], THEN [metric] will [improve/increase/decrease] |
| 107 | BECAUSE [evidence from data] |
| 108 | |
| 109 | Impact: [1-10] — How much will this move the needle? |
| 110 | Confidence: [1-10] — How sure are we this will work? |
| 111 | Ease: [1-10] — How quickly can we implement and test this? |
| 112 | ICE Score: [average of three] |
| 113 | |
| 114 | |
| 115 | ### Step 6: Prioritize and Recommend |
| 116 | |
| 117 | Rank all hypotheses by ICE score and present: |
| 118 | |
| 119 | **Top 3 Quick Wins** — High ease, decent impact (ship this week) |
| 120 | **Top 3 High-Impact Tests** — High impact, may require more effort (sprint backlog) |
| 121 | **Strategic Bets** — Lower confidence but potentially transformative (quarterly roadmap) |
| 122 | |
| 123 | For each recommendation, include: |
| 124 | The specific page or funnel step |
| 125 | What to change and why |
| 126 | Expected impact on conversion rate |
| 127 | Suggested test duration based on traffic volume |
| 128 | |
| 129 | ## Analysis Frameworks |
| 130 | |
| 131 | ### The RICE Prioritization (for larger teams) |
| 132 | |
| 133 | **Reach**: How many users per month does this affect? |
| 134 | **Impact**: Expected lift (minimal / low / medium / high / massive) |
| 135 | **Confidence**: Data quality supporting the hypothesis (low / medium / high) |
| 136 | **Effort**: Engineering/design time (days) |
| 137 | |
| 138 | Score = (Reach x Impact x Confidence) / Effort |
| 139 | |
| 140 | ### Segment Analysis Checklist |
| 141 | |
| 142 | Always break down conversion data by: |
| 143 | Device type (mobile / desktop / tablet) |
| 144 | Traffic source (organic / paid / direct / referral / social) |
| 145 | Geography (if international) |
| 146 | New vs returning visitors |
| 147 | Entry page |
| 148 | |
| 149 | ### Common Funnel Archetypes |
| 150 | |
| 151 | | Funnel Type | Key Metrics | Common Leaks | |
| 152 | |------------|-------------|--------------| |
| 153 | | SaaS Free Trial | Visit > Signup > Activate > Convert | Signup form friction, activation failure | |
| 154 | | E-commerce | PDP > Cart > Checkout > Purchase | Cart abandonment, checkout form | |
| 155 | | Lead Gen | Landing > Form > Thank You | Form length, trust signals | |
| 156 | | Content > Conversion | Blog > CTA > Signup | CTA visibility, relevance match | |
| 157 | |
| 158 | ## Output Format |
| 159 | |
| 160 | Present findings as: |
| 161 | |
| 162 | **Funnel Overview** — Visual step-by-step with volumes and rates |
| 163 | **Key Finding** — The single biggest insight in one sentence |
| 164 | **Drop-off Analysis** — Ranked list of leaks with absolute numbers |
| 165 | **Root Cause Diagnosis** — What is causing each major leak |
| 166 | **Prioritized Test Roadmap** — ICE-scored hypotheses ready for execution |
| 167 | **Expected Impact** — If top 3 tests succeed, projected conversion lift |
| 168 | |
| 169 | ## Related Skills |
| 170 | |
| 171 | **ab-test-generator** — Take the hypotheses from this skill and generate actual test configurations |
| 172 | **funnel-reporter** — Pull comprehensive funnel reports with traffic & conversion volume (revenue only if a Stripe/ChartMogul revenue connector is attached) |
| 173 | **page-cro** — Deep-dive into a specific page's conversion issues |
| 174 | **copywriting** — Generate optimized copy for test variants |
| 175 | |
| 176 | ## Shared Frameworks (REQUIRED reading) |
| 177 | |
| 178 | Before producing recommendations, anchor your analysis against the shared primitives in `skills/_shared/`. Skipping these is the #1 cause of generic, low-confidence output. |
| 179 | |
| 180 | **`_shared/frameworks/preflight-checklist.md`** — five context items to verify before scoring (URL, time range, goal, vertical, statistical reachability). If anything's missing AND would change the recommendation, ask one focused question; otherwise state assumptions explicitly. |
| 181 | **`_shared/frameworks/largest-leak-first.md`** — rank by absolute people lost, not by percentage drop. A 10% drop on 10,000 visitors outranks a 50% drop on 100. Always compute absolute loss per step before applying ICE. |
| 182 | **`_shared/frameworks/percentile-framing.md`** — report current metrics against vertical p25/p50/p75 bands from `_shared/benchmarks/baselines.json`. Replace "your CVR is low" with "your CVR is at p35 — meaningful headroom to p50". |
| 183 | **`_shared/frameworks/ice-confidence-rubric.md`** — anchor ICE.Confidence on evidence quality, not familiarity. 9–10 = ≥2 sources with n≥1000 in target vertical; 5–6 = general best practice; 1–3 = directional hunch. |
| 184 | **`_shared/frameworks/anti-patterns.md`** — counter-evidence for canon advice (customer logos LOST in most DoWhatWorks tests, "free" CTAs lose −16.8% platform-wide on Unbounce, hero video net-negative on mobile, etc.). Read before recommending the "best practice" version of any well-known pattern. |
| 185 | **`_shared/frameworks/base-rate-priors.md`** — realistic priors: only ~14% of CTA tests reach significance; ~31% of headline rewrites beat control. Anchor expectations against base rates, not best-case outliers. |
| 186 | **`_shared/benchmarks/patterns.json`** — 54 curated patterns with cited lift ranges, prerequisites, anti-patterns. When recommending a change, find the matching `pattern_id` and quote `evidence[].lift_range_pct` instead of guessing. |
| 187 |
Discussion
Browse more free Claude skills.