Reverse-engineers public sales funnels from URLs and rebuilds adapted versions for your brand using Hook/Story/Offer framework. Handles single or multi-page funnels.
npx claudepluginhub ominou5/funnel-architect-pluginThis skill uses the workspace's default tool permissions.
Reverse-engineer any live sales funnel, understand why it converts, and rebuild it for your user's brand and offer.
Assesses existing sales funnels against DotCom Secrets framework: scores hook/story/offer strength, traffic match, and conversion path; prescribes fixes for low conversions.
Builds 2-page opt-in funnel with squeeze page for email capture via lead magnet and thank-you page for delivery/upsell. Use to grow email lists.
Guides conversion rate optimization (CRO) via A/B testing, funnel mapping, PIE prioritization, and best practices for high-traffic web pages like homepages and landing pages.
Share bugs, ideas, or general feedback.
Reverse-engineer any live sales funnel, understand why it converts, and rebuild it for your user's brand and offer.
What is Funnel Hacking? A term coined by Russell Brunson — strategically analyzing successful funnels to understand their structure, psychology, and conversion mechanics, then using those patterns to build your own. It is NOT copying. You are studying the blueprint, not photocopying the building.
Before you begin, internalize these rules. They are non-negotiable.
| ✅ DO | ❌ DO NOT |
|---|---|
| Study layout structure and section order | Copy any headline, sentence, or paragraph verbatim |
| Identify the funnel type and flow pattern | Reuse any images, logos, or brand assets from source |
| Analyze the Hook / Story / Offer framework | Use the source brand name, trademarks, or taglines |
| Note which JS functionality drives conversions | Clone CSS stylesheets wholesale |
| Adapt proven conversion patterns for the user | Represent the output as the source brand's work |
If you are unsure whether something crosses the line, rewrite it from scratch or ask the user.
Ask the user for the following. Skip anything they've already provided.
Record the intake in this structure before proceeding:
FUNNEL HACK INTAKE
==================
Source URLs:
1. [URL] — [user's description of what this page is, if provided]
2. [URL]
...
User's Business:
Product/Service: [what they sell]
Audience: [who they sell to]
Price Point: [amount]
Brand: [name, colors, fonts — or "TBD, will gather"]
What They Love About Source: [specific elements]
What They Want Changed: [specific elements]
Existing Assets: [testimonials, media, email provider, payment processor]
For each URL provided, use your web fetch tools to retrieve the full page content (HTML, visible text, meta tags). Then perform this systematic extraction.
If the user provides multiple URLs, analyze them in funnel order (entry page first, thank-you page last). If the order isn't clear, ask.
Determine what type of page this is:
| Page Type | Markers |
|---|---|
| Squeeze / Opt-in | Email form, lead magnet offer, no pricing |
| Sales Page | Long-form copy, pricing, buy button, testimonials |
| VSL Page | Video above the fold, copy below, single CTA |
| Webinar Registration | Date/time, registration form, speaker bio |
| Checkout / Order Form | Payment fields, order summary, guarantee |
| Upsell (OTO) | "Wait! One-time offer", countdown, add-to-order button |
| Downsell | Reduced offer after upsell decline |
| Thank You / Confirmation | "You're in!", delivery instructions, next steps |
| Application | Multi-field form, qualification questions |
| Bridge Page | Pre-frame content before the main offer |
After classifying all pages, determine which funnel type this is. Reference skills/funnel-select/SKILL.md for the full decision tree:
| Funnel Pattern | Page Sequence |
|---|---|
| Opt-in | Squeeze → Thank You |
| Tripwire | Squeeze → Sales → Thank You |
| Webinar | Registration → Confirmation → Replay → Sales |
| VSL | VSL Page → Order Form → Thank You |
| Product Launch | Pre-launch (x3) → Cart Open → Sales → Checkout |
| Application | Landing → Application Form → Confirmation |
| Challenge | Registration → Daily Content (x5) → Offer |
| SaaS | Landing → Pricing → Signup → Onboarding |
| Membership | Sales → Checkout → Welcome/Login |
| E-commerce | Product → Cart → Checkout → Confirmation |
| High-Ticket | Landing → VSL/Webinar → Application → Call Booking |
For each page, extract using Russell Brunson's framework:
HOOK — What grabs attention?
STORY — What builds connection and credibility?
OFFER — What's being presented?
Document the section-by-section structure of each page:
PAGE LAYOUT: [page name]
========================
Section 1: [Hero / Above the Fold]
- Elements: [headline, sub-headline, CTA, hero image/video]
- Layout: [centered, split, full-width video]
Section 2: [Problem / Agitation]
- Elements: [pain point bullets, "sound familiar?" copy]
- Layout: [text block, icon grid]
Section 3: [Solution / Introduction]
...continue for every section...
Note these design patterns:
Identify every interactive/dynamic element. These must be replicated in the build:
| Functionality | What to Look For |
|---|---|
| Countdown timer | Fixed date, evergreen, or session-based |
| Exit-intent popup | Overlay triggered on mouse-leave or back button |
| Sticky CTA bar | Fixed header/footer with CTA that stays on scroll |
| Scroll-triggered reveals | Sections that animate in on scroll (fade, slide) |
| Video player | Auto-play, gated (watch before CTA unlocks), custom controls |
| Pricing toggle | Monthly/annual switch, tier selector |
| Progress bar | Multi-step form or checkout progress indicator |
| Social proof notifications | "John from NY just purchased" toast popups |
| Accordion / FAQ | Expandable Q&A sections |
| Testimonial carousel | Rotating testimonial slider |
| Form validation | Real-time field validation, multi-step forms |
| Analytics events | Pixel tracking, scroll depth, click events |
| A/B test indicators | URL parameters, cookie-based variants |
| Chat widget | Live chat or chatbot integration |
| Order bump checkbox | Add-on offer on checkout page |
For each page analyzed, fill out the analysis template at skills/funnel-hacking/templates/analysis-template.md. This creates a structured record Claude and the user can reference during the build.
After analysis, you may have gaps that only the user can fill. Conduct a focused Q&A session. Only ask what's missing — don't repeat questions they've already answered.
skills/design-system/SKILL.md?)skills/marketing-stack/SKILL.mdskills/marketing-stack/SKILL.mdskills/deploy-netlify/SKILL.md, skills/deploy-vercel/SKILL.md, or skills/deploy-cloudflare/SKILL.mdUsing the analysis from Step 2 and the user's answers from Step 3, produce a Funnel Blueprint — the complete build specification.
Fill out the blueprint template at skills/funnel-hacking/templates/blueprint-template.md.
The blueprint must include:
Traffic Source → [Page 1: Name] → [Page 2: Name] → [Page 3: Name] → ...
│ │ │
[Primary CTA] [Primary CTA] [Primary CTA]
│ │ │
└──────────→ ──────┘──────────→──────┘
For each page, specify:
skills/funnel-copy/SKILL.md for formulas)skills/design-system/SKILL.md for system tokens)For every piece of copy, document how you're transforming it:
| Source Pattern | User's Version | Framework Used |
|---|---|---|
| Source headline formula | Rewritten headline for user's offer | Benefit-driven (ref: skills/funnel-copy/SKILL.md) |
| Source CTA copy | Rewritten CTA for user's action | Action-result pattern |
| Source urgency mechanism | Adapted urgency for user's timeline | Scarcity / deadline |
Critical: Every line of copy must be original. Use the formulas and frameworks from
skills/funnel-copy/SKILL.md— never the source's actual words.
Present the complete blueprint and ask:
Wait for explicit confirmation before proceeding to the build.
Once the blueprint is approved, delegate the build. Do not build the pages yourself — use the Task tool to delegate to the specialist agents.
1. Delegate to funnel-builder:
Use the Task tool to ask
funnel-builderto build the funnel using the approved blueprint. Include:
- The full blueprint spec (or path to the blueprint file)
- The funnel type skill to reference (e.g.,
skills/webinar-funnel/SKILL.md,skills/optin-funnel/SKILL.md)- The design system to apply (
skills/design-system/SKILL.md) with customizations from the user's brand- All JS functionality requirements
- All integration requirements
Example delegation prompt:
Build a [funnel type] funnel based on the approved Funnel Hack Blueprint at [path].
Pages to build:
1. [Page name] — [type] — Reference: skills/[funnel-type]/templates/[template].html
2. [Page name] — [type]
...
Design: Use skills/design-system/SKILL.md with these overrides:
--accent: [user's brand color]
--bg-primary: [user's bg color]
Font: [user's font]
JS Features Required:
- [countdown timer — evergreen, 24h from visit]
- [exit-intent popup — show after 30s or on exit]
- [sticky CTA bar — appears after scrolling past hero]
...
Integrations:
- Email: [provider] — ref: skills/marketing-stack/SKILL.md
- Payment: [processor] — ref: skills/marketing-stack/SKILL.md
2. Delegate copy polish to copy-doctor:
Use the Task tool to ask
copy-doctorto review and sharpen the copy on all built pages. Referenceskills/funnel-copy/SKILL.mdfor frameworks.
3. Delegate audits to conversion-optimizer and page-speed-optimizer:
Use the Task tool to ask
conversion-optimizerto run the full audit fromskills/conversion-audit/SKILL.mdon every page.Use the Task tool to ask
page-speed-optimizerto audit page speed usingskills/page-speed/SKILL.md.
4. Delegate mobile check:
Ensure all pages pass mobile responsiveness checks per
skills/mobile-responsive/SKILL.md.
5. Deploy when ready:
When the user approves the final build, delegate to
deploy-assistantusing the appropriate deployment skill (skills/deploy-netlify/SKILL.md,skills/deploy-vercel/SKILL.md, orskills/deploy-cloudflare/SKILL.md).
Before presenting the finished funnel to the user, verify:
skills/mobile-responsive/SKILL.mdskills/page-speed/SKILL.mdskills/conversion-audit/SKILL.mdscripts/validate-funnel-structure.jsskills/analytics-setup/SKILL.mdskills/ab-testing/SKILL.mdWhen you identify the source funnel type in Step 2, use this table to find the right build skill:
| Identified Funnel Type | Build Skill | Template Location |
|---|---|---|
| Opt-in / Squeeze | skills/optin-funnel/SKILL.md | skills/optin-funnel/templates/ |
| Tripwire | skills/tripwire-funnel/SKILL.md | skills/tripwire-funnel/templates/ |
| Webinar | skills/webinar-funnel/SKILL.md | skills/webinar-funnel/templates/ |
| Evergreen Webinar | skills/evergreen-webinar-funnel/SKILL.md | skills/evergreen-webinar-funnel/templates/ |
| VSL | skills/vsl-funnel/SKILL.md | skills/vsl-funnel/templates/ |
| Product Launch | skills/product-launch-funnel/SKILL.md | skills/product-launch-funnel/templates/ |
| Challenge | skills/challenge-funnel/SKILL.md | skills/challenge-funnel/templates/ |
| Application / High-Ticket | skills/application-funnel/SKILL.md | skills/application-funnel/templates/ |
| High-Ticket (multi-step) | skills/high-ticket-funnel/SKILL.md | skills/high-ticket-funnel/templates/ |
| SaaS | skills/saas-funnel/SKILL.md | skills/saas-funnel/templates/ |
| Membership | skills/membership-funnel/SKILL.md | skills/membership-funnel/templates/ |
| E-commerce | skills/ecommerce-funnel/SKILL.md | skills/ecommerce-funnel/templates/ |
Common JS patterns to replicate and how to build them:
// Evergreen Countdown Timer (session-based)
function startCountdown(hours) {
const key = 'funnel_deadline';
let deadline = localStorage.getItem(key);
if (!deadline) {
deadline = Date.now() + hours * 60 * 60 * 1000;
localStorage.setItem(key, deadline);
}
// Update display every second
setInterval(() => {
const remaining = deadline - Date.now();
if (remaining <= 0) { /* expired logic */ return; }
const h = Math.floor(remaining / 3600000);
const m = Math.floor((remaining % 3600000) / 60000);
const s = Math.floor((remaining % 60000) / 1000);
document.querySelector('.countdown').textContent =
`${h}h ${m}m ${s}s`;
}, 1000);
}
// Exit-Intent Popup
document.addEventListener('mouseout', (e) => {
if (e.clientY < 0 && !sessionStorage.getItem('exit_shown')) {
document.querySelector('.exit-popup').classList.add('active');
sessionStorage.setItem('exit_shown', 'true');
}
});
// Sticky CTA Bar (appears after scrolling past hero)
const observer = new IntersectionObserver(([entry]) => {
document.querySelector('.sticky-cta').classList
.toggle('visible', !entry.isIntersecting);
}, { threshold: 0 });
observer.observe(document.querySelector('.hero'));
// Scroll-Triggered Fade-In
const fadeObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.fade-in').forEach(el => fadeObserver.observe(el));
// Social Proof Toast Notifications
// IMPORTANT: Replace these placeholder names with realistic names
// matching the user's target market and geography.
const names = ['Sarah from Austin', 'Mike from London', 'Priya from Mumbai'];
function showProofToast() {
const name = names[Math.floor(Math.random() * names.length)];
const toast = document.querySelector('.proof-toast');
toast.textContent = `${name} just signed up!`;
toast.classList.add('show');
setTimeout(() => toast.classList.remove('show'), 4000);
}
setInterval(showProofToast, 15000);
Use this template when analyzing each page:
HOOK (what grabs attention):
Headline: [exact text]
Headline Formula: [benefit-driven | curiosity | urgency | question | command]
Sub-headline: [exact text]
Visual Hook: [hero image | video | animation | bold stat]
Scroll Stopper: [counter | ticker | social proof bar | before-after]
STORY (what builds connection):
Framework: [PAS | AIDA | StoryBrand | Before-After-Bridge | none]
Pain Points Addressed: [list]
Credibility Elements: [founder story | credentials | press | data]
Testimonial Pattern: [quote + photo | video | case study | results only]
Differentiation: [how they position vs alternatives]
OFFER (what's being presented):
Core Offer: [name and description]
Price: [amount] | Anchored Against: [higher amount]
Payment Options: [one-time | plan | trial]
Bonuses: [list with stated values]
Guarantee: [type and duration]
Urgency: [countdown | limited | price increase | seasonal]
CTA Text: [exact button text]
CTA Count: [how many times CTA appears on page]