GTM Engine V2 - Implementation Plan

Version: 2.2 (Multi-Campaign)
Created: 2026-02-05
Trimmed: 2026-02-06
Multi-Campaign: 2026-02-07
Status: Ready for Execution
Based on: Firecrawl Agent test results (87% qualification rate, 25x speed improvement)


Change Log

VersionDateChange
2.02026-02-05Original plan with Firecrawl + 5-agent integration
2.12026-02-06Stripped agent integration. Focus: Firecrawl pipeline only. See DR-2026-002.
2.22026-02-07Added multi-campaign architecture (Part 7). Updated schema, skills, and file structure. Aligned with SKYMOD V2.1 pattern.


Executive Summary

This plan upgrades the Maad House GTM Engine with:

  • Website-First Qualification - Analyze website design BEFORE enrichment
  • Firecrawl Agent Integration - Autonomous web research replacing multi-step process
  • Inline Email Writing - Claude writes persona-adapted copy directly (no agent spawning)
  • Multi-Campaign Architecture - Campaign as first-class object with own ICP, scoring, sequences, collateral, and geography. Run multiple ICPs through independent pipelines within a single index.
  • Expected Outcome:


    Part 1: New Architecture

    1.1 Old vs New Workflow

    OLD WORKFLOW (Inefficient):

    Discovery → Enrich ALL → Analyze Website → Filter → Outreach
        ↓
      (50% of enrichment wasted on non-qualifiers)
    

    NEW WORKFLOW (Website-First):

    Discovery → Website Analysis → Filter (NEEDS_REFRESH only) → Enrich Qualifiers → Outreach
        ↓
      (Only enrich prospects with outdated websites)
    

    1.2 Tool Integration Map

    ┌─────────────────────────────────────────────────────────────────┐
    │                  GTM ENGINE V2.2 ARCHITECTURE                    │
    ├─────────────────────────────────────────────────────────────────┤
    │                                                                  │
    │  ┌────────────────────────────────────────────────────────┐      │
    │  │  CAMPAIGN ROUTER                                       │      │
    │  │  campaigns.json → select ICP, scoring, sequences       │      │
    │  │  [hospitality | legal-lawtech | ecommerce-dtc | ...]   │      │
    │  └───────────────────────┬────────────────────────────────┘      │
    │                          v                                       │
    │  ┌────────────────┐    ┌────────────────┐    ┌────────────────┐ │
    │  │   DISCOVERY    │    │ WEBSITE FIRST  │    │    FILTER      │ │
    │  │                │    │                │    │                │ │
    │  │ Firecrawl Agent│───>│ Firecrawl Agent│───>│ Score 1-2 only │ │
    │  │ (campaign ICP) │    │ (batch analyze)│    │ (NEEDS_REFRESH)│ │
    │  └────────────────┘    └────────────────┘    └────────────────┘ │
    │                                                      │          │
    │                                          ┌───────────┤           │
    │                                          │ DEDUP     │           │
    │                                          │ Cross-    │           │
    │                                          │ campaign  │           │
    │                                          └───────────┘           │
    │                                                      │          │
    │                                                      v          │
    │                                          ┌────────────────┐     │
    │                                          │    ENRICH      │     │
    │                                          │                │     │
    │                                          │ Hunter.io      │     │
    │                                          │ Gemini Search  │     │
    │                                          │ Firecrawl      │     │
    │                                          └────────────────┘     │
    │                                                  │              │
    │                                                  v              │
    │  ┌────────────────┐    ┌────────────────┐    ┌────────────────┐ │
    │  │   OUTREACH     │<───│  PERSONALIZE   │<───│   QUALIFY      │ │
    │  │                │    │                │    │                │ │
    │  │ Campaign-spec. │    │ Claude inline  │    │ Campaign ICP   │ │
    │  │ sequences      │    │ copy writing   │    │ scoring model  │ │
    │  └────────────────┘    └────────────────┘    └────────────────┘ │
    │                                                                  │
    └─────────────────────────────────────────────────────────────────┘
    

    1.3 Stage-by-Stage Tools

    StageToolWhat It Does
    Campaign Selectcampaigns.jsonLoad campaign-specific ICP, scoring, sequences
    DiscoveryFirecrawl AgentFind businesses matching campaign ICP criteria
    Website AnalysisFirecrawl AgentBatch score website design quality
    FilterPipeline logicKeep score 1-2 only (NEEDS_REFRESH)
    DeduplicationPipeline indexCheck against ALL campaigns before adding
    EnrichmentHunter.io + Gemini + FirecrawlContacts, research, deep scrape
    QualificationCampaign ICP scoringCampaign-specific scoring model and weights
    PersonalizationClaude (inline)Email copy using campaign-specific templates
    OutreachOutlook MCPSend campaign-specific sequences


    Part 2: Skill Updates

    2.1 /lead-source (UPDATED)

    File: Maad House/Marketing/GTM/skills/lead-source/SKILL.md

    ```markdown

    /lead-source (V2.2 - Website-First, Campaign-Aware)

    Updated: 2026-02-07 | Uses Firecrawl Agent with website-first qualification. Campaign-aware.

    Purpose

    Find new prospects matching a campaign's ICP using Firecrawl Agent, with immediate website quality filtering and cross-campaign deduplication.

    Invocation

    /lead-source hospitality 20 Manchester    # Find 20 for hospitality campaign in Manchester
    /lead-source legal-lawtech 15 London      # Find 15 for legal-lawtech campaign in London
    /lead-source ecommerce-dtc 10            # Find 10 for ecommerce-dtc campaign (UK-wide)
    /lead-source --refresh                    # Re-run last search
    

    Campaign Loading

  • Read campaigns.json → validate campaign ID exists and status is active
  • Load campaigns/{campaign-id}/icp-definition.md → extract discovery criteria
  • Load campaign scoring model → campaigns.json[campaign].scoring
  • All discovered prospects tagged with campaign: "{campaign-id}"
  • Workflow (3-Step Website-First)

    Step 1: Discovery via Firecrawl Agent (Campaign-Specific)

    Discovery queries are loaded from campaigns/{campaign-id}/icp-definition.md. Each campaign has its own discovery criteria, search terms, and qualification signals.

    // Load campaign ICP for search criteria
    const campaign = campaigns[campaignId];
    const icp = loadICP(campaign.icpFile);

    mcp__firecrawl__firecrawl_agent({ prompt: Find ${count} UK ${icp.industry} businesses in ${location} that: - ${icp.discoveryFilters.join('\n - ')}

    For each business, provide: - Company name - Website URL - Location (city) - Brief description - Any growth signals observed, schema: { "type": "object", "properties": { "businesses": { "type": "array", "items": { "type": "object", "properties": { "company_name": {"type": "string"}, "website": {"type": "string"}, "location": {"type": "string"}, "description": {"type": "string"}, "growth_signals": { "type": "array", "items": {"type": "string"} } } } } } } })

    Step 2: Batch Website Analysis

    mcp__firecrawl__firecrawl_agent({
      prompt: Analyze each website and score design quality on this scale:

    5: Modern, professional (2024-2026 design trends) 4: Good but slightly dated (2022-2023) 3: Functional but clearly dated (2019-2021) 2: Outdated, needs refresh (2016-2018) 1: Very outdated, poor UX (pre-2016)

    Consider: - Visual design and aesthetics - Mobile responsiveness - Navigation and UX - Loading speed indicators - Content freshness

    Provide score, reasoning, and specific observations., urls: [/ discovered website URLs /], schema: { "type": "object", "properties": { "analyses": { "type": "array", "items": { "type": "object", "properties": { "url": {"type": "string"}, "design_score": {"type": "integer", "minimum": 1, "maximum": 5}, "reasoning": {"type": "string"}, "specific_issues": { "type": "array", "items": {"type": "string"} }, "mobile_friendly": {"type": "boolean"}, "estimated_age": {"type": "string"} } } } } } })

    Step 3: Cross-Campaign Deduplication

    Before adding to pipeline, check ALL campaigns for duplicate contacts:

    for (const prospect of qualified) {
      // Check website domain against ALL campaigns in index.json
      const existing = pipeline.prospects.find(p =>
        p.company.website === prospect.website
      );

    if (existing && existing.campaign !== campaignId) { logSkipped(prospect, Already in campaign: ${existing.campaign}); continue; // Same company = skip (don't double-contact) }

    if (existing && existing.campaign === campaignId) { logSkipped(prospect, "Already in this campaign"); continue; } }

    Cross-campaign dedup rules:

    Step 4: Filter and Add to Pipeline

    Only add prospects with design_score 1-2 (NEEDS_REFRESH) that pass dedup:

    for (const prospect of analyses) {
      if (prospect.design_score <= 2 && !isDuplicate(prospect)) {
        addToPipeline({
          ...prospect,
          campaign: campaignId,  // Tag with campaign
          website_score: prospect.design_score,
          website_assessment: prospect.reasoning,
          website_issues: prospect.specific_issues,
          stage: "website_qualified",
          qualified_for_enrichment: true
        });
      } else {
        logSkipped(prospect, "Modern website - not a priority");
      }
    }
    

    Output

    Lead Sourcing Complete — Campaign: hospitality

    Query: 20 UK hospitality Manchester Found: 23 businesses Website Analysis: 23 analyzed

    Results: Score 1-2 (NEEDS_REFRESH): 15 - Added to pipeline Score 3 (BORDERLINE): 4 - Logged for review Score 4-5 (MODERN): 4 - Skipped Cross-campaign duplicates: 0 - Skipped

    Qualification Rate: 65%

    New Prospects Added (campaign: hospitality): MH-2026-051 The Northern Quarter Kitchen (Score: 2) MH-2026-052 Manchester Boutique Hotel (Score: 1) MH-2026-053 Didsbury Dining Co (Score: 2) ... +12 more

    Time: 38 seconds Next: Run /lead-enrich hospitality --batch 15 to complete qualification

    Dependencies

    
    

    2.2 /lead-enrich (UPDATED)

    File: Maad House/Marketing/GTM/skills/lead-enrich/SKILL.md

    markdown

    /lead-enrich (V2.2 - Qualified Only, Campaign-Aware)

    Updated: 2026-02-07 | Only enriches website-qualified prospects. Cross-campaign dedup on contacts.

    Purpose

    Deep research on website-qualified prospects. Runs ONLY after /lead-source qualifies via website analysis. Checks for cross-campaign contact collisions before enrichment.

    Invocation

    /lead-enrich hospitality MH-2026-051     # Single prospect in campaign
    /lead-enrich hospitality --batch 10      # Next 10 website-qualified in campaign
    /lead-enrich legal-lawtech --tier A      # Re-enrich A-tier in legal campaign
    

    Pre-Condition

  • Prospect must have website_qualified: true or stage: "website_qualified"
  • Prospect's campaign field must match the specified campaign
  • If not, prompt to run /lead-source first
  • Cross-Campaign Contact Check

    After finding a contact email (Step 1), check if that email exists in ANY other campaign:
    const emailCollision = pipeline.prospects.find(p =>
      p.contact?.email === foundEmail && p.campaign !== campaignId
    );
    if (emailCollision) {
      flag("Contact already in campaign: " + emailCollision.campaign);
      // Notify but continue — different campaign may target different contact at same company
    }
    

    Workflow

    Step 1: Contact Discovery (Hunter.io)

    // Try Email Finder first (most efficient)
    mcp__hunter__Email-Finder({
      domain: prospect.website,
      first_name: prospect.contact?.first_name,
      last_name: prospect.contact?.last_name
    })

    // If no name known, use Domain Search mcp__hunter__Domain-Search({ domain: prospect.website })

    // Verify found email mcp__hunter__Email-Verifier({ email: found_email })

    Decision Maker Priority:

  • Founder / Owner / CEO
  • Managing Director
  • Marketing Director / Head of Marketing
  • Operations Director
  • Step 2: Business Research (Gemini)

    mcp__gemini-text__gemini-search({
      query: "${prospect.company_name}" UK news expansion funding 2025 2026
    })
    

    Extract:

    Step 3: Deep Website Analysis (Firecrawl)

    mcp__firecrawl__firecrawl_scrape({
      url: prospect.website,
      formats: ["markdown"],
      includePaths: ["/about", "/team", "/contact"]
    })
    

    Extract:

    Step 4: Pain Point Synthesis

    Based on gathered data, generate:

    Step 5: Campaign-Specific ICP Scoring

    Load scoring model from campaigns.json[campaign].scoring:

    const weights = campaign.scoring.weights;
    // Each campaign can define its own weight distribution
    // Default: Firmographic (35), Buying Intent (40), Accessibility (25)
    // Legal might weight "outsourcing tendency" higher
    // DTC might weight "growth signals" higher
    

    Apply campaign-specific scoring:

    Calculate tier (A/B/C/D) using campaign-specific thresholds.

    Output

    MH-2026-051 Enriched: The Northern Quarter Kitchen
    Campaign: hospitality

    Company: The Northern Quarter Kitchen (Hospitality - Restaurant) Website: nqkitchen.co.uk | Design Score: 2/5 (outdated) Signals: Expansion (new location), Hiring (chef de partie) Cross-campaign check: No collisions

    Contact: James Morrison (Founder) Email: james@nqkitchen.co.uk Verified (92% confidence) LinkedIn: linkedin.com/in/jamesmorrison-nqk

    Pain Point: Expanding to second location but website doesn't reflect brand quality. Instagram has 12K followers but website looks like 2018.

    Portfolio Match: Byron (multi-location restaurant rebrand) Hook: "Your Instagram shows a packed house every night, but your website tells a different story. With the Ancoats location coming..."

    ICP Score: 82/100 | Tier: A (hospitality scoring model)

    Stage: website_qualified -> enriched

    Dependencies

    
    

    2.3 /outreach-draft (UPDATED)

    File: Maad House/Marketing/GTM/skills/outreach-draft/SKILL.md

    markdown

    /outreach-draft (V2.2 - Campaign-Aware)

    Updated: 2026-02-07 | Inline personalized copy using campaign-specific templates and proof points

    Purpose

    Generate personalized outreach emails using enriched prospect data and campaign-specific outreach sequences, proof points, and collateral.

    Invocation

    /outreach-draft hospitality MH-2026-051 T1   # Generate T1 for hospitality campaign
    /outreach-draft legal-lawtech MH-2026-075 T1 # Generate T1 for legal campaign
    /outreach-draft hospitality --batch due       # All due today in hospitality
    /outreach-draft --batch due                   # All due today across ALL campaigns
    

    Campaign-Specific Loading

  • Load outreach templates from campaigns/{campaign-id}/outreach-sequences/
  • Load proof points from campaigns/{campaign-id}/collateral/
  • Load positioning from campaigns/{campaign-id}/positioning.md
  • Select portfolio match based on campaign proof points (not generic)
  • Workflow

    A-Tier Prospects (Full Personalization)

    Claude writes the email inline using:

    Requirements: Campaign-specific proof points:
    CampaignPrimary Proof PointPortfolio Match
    hospitalityByron, Mother Clucker, Forecourt EyeRestaurant/hotel rebrand
    legal-lawtechLinkilaw (full rebrand + website)Law firm digital transformation
    ecommerce-dtcSKYMOD (own brand, full attribution)DTC brand build from scratch
    lifestyle-wellnessHospitality portfolio transfersExperience-brand design

    B/C-Tier Prospects (Template-Based)

    Use standard template with variable substitution:

    Hi {{first_name}},

    {{opening_hook}}

    We recently helped {{portfolio_company}} with a similar challenge - {{portfolio_outcome}}.

    Maad House specializes in brand and web design for UK {{industry}} businesses. Would a 15-minute call next week be useful?

    Best, Reece maad.house

    Batch Mode

    For batch generation:

  • Group by tier (A gets full personalization, B/C get template)
  • Generate in parallel
  • Save to outbox with status
  • Output

    Email Draft: LEAD-051 - T1

    To: james@nqkitchen.co.uk Subject: Quick thought on NQ Kitchen + Ancoats


    Hi James,

    Your Instagram shows a packed house every night - clearly NQ Kitchen has found its crowd. But your website tells a different story. With the Ancoats location coming, there's a window to bring the two in line.

    We helped Byron refresh their brand across 50+ locations while they were expanding. The result: a cohesive identity that travels.

    Worth a 15-minute chat to see if there's a fit?

    Reece Maad House maad.house


    Personalization Score: 9/10 Status: Draft (ready for review)

    Dependencies

    ```


    Part 3: Implementation Checklist

    Phase 1: Skill Updates (Days 1-2)

    - [ ] Add Step 1: Discovery via Firecrawl Agent - [ ] Add Step 2: Batch website analysis - [ ] Add Step 3: Filter (NEEDS_REFRESH only) - [ ] Update pipeline schema (add website_score, website_assessment) - [ ] Test with 20 prospects

    - [ ] Add website_qualified check - [ ] Integrate Hunter.io workflow - [ ] Test with 10 website-qualified prospects

    - [ ] A-tier: full inline personalization - [ ] B/C-tier: template mode - [ ] Test both modes

    Phase 2: Integration Testing (Days 3-4)

    - [ ] 50 prospects through website-first flow - [ ] Measure qualification rate (target: >70%) - [ ] Measure time savings (target: >20x)

    - [ ] Email quality check (10 samples) - [ ] ICP scoring accuracy - [ ] Pipeline data integrity

    Phase 3: Multi-Campaign Setup (Days 5-7)

    - [ ] Register all 4 campaigns (hospitality, legal-lawtech, ecommerce-dtc, lifestyle-wellness) - [ ] Define scoring models per campaign - [ ] Define cadence and stages per campaign

    - [ ] campaigns/hospitality/ — Migrate existing ICP, positioning, sequences - [ ] campaigns/legal-lawtech/ — Create ICP (Linkilaw case study), positioning, sequences - [ ] campaigns/ecommerce-dtc/ — Create ICP (SKYMOD case study), positioning, sequences - [ ] campaigns/lifestyle-wellness/ — Create ICP, positioning, sequences

    - [ ] Linkilaw case study for legal-lawtech - [ ] SKYMOD case study for ecommerce-dtc - [ ] Cross-industry portfolio piece for lifestyle-wellness

    - [ ] Add campaign field to all existing prospects - [ ] Restructure stats to byCampaign nesting - [ ] Add cross-campaign dedup rules

    Phase 4: Production Rollout (Week 2)


    Part 4: Success Metrics

    Immediate (Post-Implementation)

    MetricBeforeTargetMeasurement
    Time per 15 prospects15 min<1 minStopwatch
    Website qualification rate~50%>70%Qualified / Discovered
    Enrichment waste50%<15%Skipped modern / Total

    30-Day (Per Campaign)

    MetricTarget (per campaign)Measurement
    Pipeline size25+ qualified per active campaignPipeline index, filter by campaign
    A-tier prospects5+ per campaignTier counts by campaign
    Reply rate>5%Replies / Sent, per campaign
    Meeting rate>2%Meetings / Sent, per campaign
    Meetings booked2-3 per campaignStage tracking
    Active campaigns2+campaigns.json status counts
    Cross-campaign dedup rate<10% collisionDedup log

    90-Day (Aggregate)

    MetricTargetMeasurement
    Active campaigns3-4campaigns.json
    Total pipeline150+ across all campaignsPipeline index
    Clients won4-8 across all campaignsCRM
    Revenue attributed£20K-80KInvoicing
    GTM ROI>10xRevenue / (Time + Tools)
    Best-performing campaignIdentifiedCompare reply/meeting rates


    Part 5: Tool Configuration

    Firecrawl Agent

    Confirmed Working:

    Schema Template:
    {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "field_name": {"type": "string"}
            }
          }
        }
      }
    }
    

    Hunter.io

    Credit Efficiency:

  • Email Finder first (1 credit) - if you have a name
  • Verify if found (1 credit)
  • Domain Search only if no name (1+ credits)
  • Typical: 2 credits per prospect

    Gemini

    Best For:

    Not For:

    Part 7: Multi-Campaign Architecture

    7.1 Core Concept

    Campaign is a first-class object encapsulating everything needed to run an independent outbound motion: ICP, scoring model, outreach sequences, collateral, geography, and cadence. All campaigns share a single pipeline (index.json) with cross-campaign deduplication.

    Aligned with SKYMOD GTM V2.1 — same architecture, different campaigns.

    7.2 Campaign Registry (campaigns.json)

    {
      "campaigns": [
        {
          "id": "hospitality",
          "name": "UK Premium Hospitality",
          "status": "active",
          "priority": 1,
          "icpFile": "campaigns/hospitality/icp-definition.md",
          "positioningFile": "campaigns/hospitality/positioning.md",
          "sequencesDir": "campaigns/hospitality/outreach-sequences/",
          "collateralDir": "campaigns/hospitality/collateral/",
          "geography": ["GB"],
          "stages": ["discovered", "website_qualified", "enriched", "outreach_started", "replied", "meeting_booked", "proposal_sent", "won", "lost"],
          "touchCount": 3,
          "cadence": { "t1_to_t2": 5, "t2_to_t3": 7 },
          "scoring": {
            "model": "website-first",
            "weights": { "firmographic": 35, "buying_intent": 40, "accessibility": 25 }
          },
          "proofPoints": ["Byron", "Mother Clucker", "Forecourt Eye"]
        },
        {
          "id": "legal-lawtech",
          "name": "UK Legal & LawTech",
          "status": "planned",
          "priority": 2,
          "geography": ["GB"],
          "scoring": {
            "model": "website-first",
            "weights": { "firmographic": 30, "buying_intent": 40, "accessibility": 30 }
          },
          "proofPoints": ["Linkilaw"]
        },
        {
          "id": "ecommerce-dtc",
          "name": "UK E-Commerce / DTC Brands",
          "status": "planned",
          "priority": 3,
          "geography": ["GB"],
          "scoring": {
            "model": "website-first",
            "weights": { "firmographic": 30, "buying_intent": 45, "accessibility": 25 }
          },
          "proofPoints": ["SKYMOD"]
        },
        {
          "id": "lifestyle-wellness",
          "name": "UK Lifestyle & Wellness",
          "status": "planned",
          "priority": 4,
          "geography": ["GB"],
          "scoring": {
            "model": "website-first",
            "weights": { "firmographic": 35, "buying_intent": 40, "accessibility": 25 }
          },
          "proofPoints": ["Hospitality portfolio"]
        }
      ]
    }
    

    7.3 Campaign Lifecycle

    planned → active → paused → archived
                    ↑       │
                    └───────┘  (can unpause)
    

    StatusMeaning
    plannedICP documented, not yet sourcing
    activeActively sourcing, enriching, and outreaching
    pausedTemporarily stopped (e.g., capacity, seasonal)
    archivedCompleted or abandoned, prospects remain in pipeline

    7.4 Cross-Campaign Rules

  • Deduplication: Check company.website across ALL campaigns before adding a new prospect
  • Contact exclusion: Same email address MUST NOT receive emails from two campaigns simultaneously
  • Company overlap: Same company with different contacts in different campaigns is allowed
  • Campaign transfer: A prospect can be moved between campaigns if the fit is better elsewhere
  • Scoring independence: Each campaign uses its own scoring weights — an A-tier in hospitality may be B-tier in legal
  • 7.5 Planned Campaigns Detail

    Campaign 1: Hospitality (Current — to be migrated)

    AttributeValue
    StatusActive (50 prospects, 11 with pitch decks)
    ICPUK hospitality SMBs (10-100 employees), premium, outdated websites
    Proof PointsByron, Mother Clucker, Forecourt Eye
    Pitch ApproachCustom HTML pitch decks per prospect on maad.house
    Key DifferentiatorWe redesign and build — not just deliver mockups
    BlockerOutlook auth expired for hello@maad.house

    Campaign 2: Legal & LawTech

    AttributeValue
    StatusPlanned
    ICPUK law firms (50-500 staff), LawTech startups
    Proof PointsLinkilaw (existing client — full rebrand + website)
    Key Insight58% of law firms outsource design; 10.42% LinkedIn response rate (highest sector)
    Messaging"We built Linkilaw's brand from the ground up."
    DiscoveryFirecrawl on SRA directory + LegalTech directories
    Estimated Activation4-5 days

    Campaign 3: E-Commerce / DTC Brands

    AttributeValue
    StatusPlanned
    ICPUK DTC brands (GBP 500K-10M revenue), Shopify-based, growth-stage
    Proof PointsSKYMOD (own brand — branding, web design, ad creative, full results data)
    Key InsightNo competitor can match this case study — Maad House built SKYMOD end-to-end
    Messaging"We don't just design brands. We built SKYMOD from scratch — here are the actual numbers."
    DiscoveryShopify store directories, DTC brand lists, Product Hunt
    Estimated Activation7-10 days (needs SKYMOD case study creation)

    Campaign 4: Lifestyle & Wellness

    AttributeValue
    StatusPlanned
    ICPUK lifestyle brands (gyms, spas, wellness studios, boutique fitness)
    Proof PointsHospitality portfolio transfers well visually
    Key InsightNatural extension from hospitality — "brands people experience in person"
    DiscoveryWellness directories, ClassPass, boutique fitness listings
    Estimated Activation3 days

    7.6 SKYMOD-Maad House Flywheel

    Every SKYMOD success strengthens the Maad House DTC pitch. Every DTC client validates the model:

    SKYMOD wins customer → Maad House gets attribution
      → "We built this brand" → DTC prospects see real results
        → DTC client signs → Proves the model → More SKYMOD investment
          → Better SKYMOD results → Stronger case study → Loop continues
    

    The ecommerce-dtc campaign gets stronger over time without additional marketing spend. This is a structural competitive advantage no other design agency can replicate.

    7.7 Migration Steps (When Executed)

    StepActionNotes
    1Create campaigns.jsonRegister all 4 campaigns
    2Create campaign folder structurecampaigns/{id}/ with ICP, positioning, sequences, collateral
    3Migrate hospitality contentMove existing ICP + sequences into campaigns/hospitality/
    4Add campaign: "hospitality" to all 50 prospectsSingle field addition to index.json
    5Restructure pipeline statsbyCampaign nesting
    6Create Legal campaign contentICP + positioning + Linkilaw case study
    7Create DTC campaign contentICP + positioning + SKYMOD case study
    8Create Lifestyle campaign contentICP + positioning
    9Resolve Outlook auth blockerReece needs to re-authenticate

    Blocker: Step 9 (Outlook auth) blocks ALL outreach across all campaigns.

    7.8 Cross-Business Architecture Alignment

    Both SKYMOD and Maad House GTM engines share the same multi-campaign architecture:

    ComponentShared
    Campaign registry formatcampaigns.json with same schema
    Prospect object structureAligned field names and types
    Pipeline stages conceptPer-campaign stage definitions
    Cross-campaign deduplicationSame rules (website/contact collision check)
    Outreach timingSame cadence model in campaigns.json
    Firecrawl AgentSame discovery tool, different queries
    Hunter.ioSame enrichment tool

    Differences:

    ComponentSKYMODMaad House
    Email senderadmin@skymod.watchhello@maad.house
    Pitch materials1-pager + Archive linkCustom HTML pitch decks
    A-tier treatment~35 sec/batch~9 hrs/prospect (custom deck)
    Sales motionTransactionalConsultative
    Deal sizeEUR 2,320-3,090/batchGBP 5K-50K projects
    Qualification modelRecognition-firstWebsite-first


    Appendix A: Updated Pipeline Schema (V2.2 — Campaign-Aware)

    {
      "id": "MH-2026-051",
      "campaign": "hospitality",
      "company": {
        "name": "The Northern Quarter Kitchen",
        "website": "https://nqkitchen.co.uk",
        "industry": "Hospitality",
        "subIndustry": "Restaurant",
        "size": "10-50",
        "country": "GB",
        "city": "Manchester"
      },

    "website_qualification": { "score": 2, "assessment": "Dated 2018 design, poor mobile experience", "issues": [ "Non-responsive layout", "PDF menus instead of web", "No booking integration", "Slow loading images" ], "qualified": true, "qualified_date": "2026-02-05" },

    "contact": { "name": "James Morrison", "role": "Founder", "email": "james@nqkitchen.co.uk", "linkedin": "https://linkedin.com/in/jamesmorrison", "email_verified": true, "email_confidence": 92 },

    "research": { "description": "Independent restaurant in Northern Quarter...", "signals": ["Expansion to Ancoats", "Hiring chef de partie"], "news": ["Featured in Manchester Evening News Jan 2026"], "competitors": ["Mackie Mayor", "Rudy's Pizza"] },

    "personalization": { "pain_point": "Growing brand with dated digital presence", "portfolio_match": "Byron", "hook": "Your Instagram shows a packed house every night..." },

    "scoring": { "firmographic": 28, "buying_intent": 35, "accessibility": 19, "total": 82, "tier": "A" },

    "stage": "enriched", "sequence": {}, "dates": { "added": "2026-02-05", "website_qualified": "2026-02-05", "enriched": "2026-02-05", "last_activity": "2026-02-05" }, "folderPath": "prospects/northern-quarter-kitchen/" }

    Campaign Field Rules

    FieldTypeDescription
    campaignstringCampaign ID from campaigns.json. Required on every prospect.

    Valid values: Must match an ID in Marketing/GTM/campaigns.json

    Cross-campaign dedup rules:

    Pipeline-Level Campaign Structure

    {
      "version": "2.2",
      "campaigns": ["hospitality", "legal-lawtech", "ecommerce-dtc", "lifestyle-wellness"],
      "stats": {
        "byCampaign": {
          "hospitality": { "total": 50, "tiers": { "A": 11, "B": 20, "C": 15, "D": 4 } },
          "legal-lawtech": { "total": 0, "tiers": {} },
          "ecommerce-dtc": { "total": 0, "tiers": {} },
          "lifestyle-wellness": { "total": 0, "tiers": {} }
        }
      },
      "prospects": [ ... ]
    }
    


    Part 6: Prospect Storage

    6.1 Directory Structure

    Every prospect (all tiers) gets a dedicated folder:

    Maad House/Sales/prospects/{company-slug}/
    ├── research.md                  # Company research (Firecrawl + manual)
    ├── prospect-{name-slug}.md     # Decision-maker profile (one per contact)
    ├── outreach/                    # All outreach communications
    │   ├── t1.md                   # Touch 1 email draft/sent
    │   ├── t2.md                   # Touch 2 follow-up
    │   └── replies/                # Inbound replies
    │       └── {date}-reply.md
    ├── assets/                     # Visual files
    │   ├── screenshot-current.png  # Website screenshot
    │   ├── mockup-*.png           # Design mockups
    │   └── logo-*.png             # Logos
    └── pitch/                      # Pitch deck (A-tier)
        └── index.html              # Deployed to maad.house/pitches/{slug}/
    

    6.2 When Folders Are Created

    Pipeline StageWhat Gets Created
    Discovery (/lead-source)Folder + stub research.md from Firecrawl data
    Enrichment (/lead-enrich)prospect-{name}.md from Hunter.io data
    Website Analysisassets/screenshot-current.png from Firecrawl
    Personalization (/outreach-draft)outreach/t1.md with email draft
    Pitch Createdpitch/index.html for A-tier prospects
    Reply Receivedoutreach/replies/{date}-reply.md

    6.3 Cross-Reference

    pipeline/index.json includes folderPath for each prospect:

    {
      "id": 2,
      "company": "Mowgli Street Food",
      "folderPath": "prospects/mowgli/",
      ...
    }
    

    6.4 Reply Handling

    When a prospect replies:

  • Look up prospect in pipeline/index.json → get folderPath
  • Read research.md for company context
  • Read prospect-{name}.md for contact personality/style
  • Read outreach/t1.md to see exactly what was sent
  • Review assets/ for any visual context
  • Save reply to outreach/replies/{date}-reply.md
  • Draft response with full context
  • 6.5 Templates

    Reusable templates in Sales/prospects/_template/:


    Appendix B: File Structure (V2.2 — Campaign-Aware)

    Maad House/
    ├── Marketing/
    │   └── GTM/
    │       ├── gtm-engine-build-plan.md            # Original V1 plan
    │       ├── gtm-engine-v2-implementation.md      # This document (V2.2)
    │       ├── multi-campaign-architecture.md       # Architecture reference
    │       ├── firecrawl-agent-test-results.md      # Test validation
    │       ├── campaigns.json                       # Campaign registry (NEW)
    │       │
    │       ├── campaigns/                           # Per-campaign content (NEW)
    │       │   ├── hospitality/                     # Migrated from current ICP
    │       │   │   ├── icp-definition.md
    │       │   │   ├── positioning.md
    │       │   │   ├── outreach-sequences/
    │       │   │   │   ├── t1-cold-intro.md
    │       │   │   │   ├── t2-follow-up.md
    │       │   │   │   └── t3-breakup.md
    │       │   │   └── collateral/
    │       │   │       └── pitch-decks/             # Custom per-prospect decks
    │       │   │
    │       │   ├── legal-lawtech/
    │       │   │   ├── icp-definition.md
    │       │   │   ├── positioning.md
    │       │   │   ├── outreach-sequences/
    │       │   │   └── collateral/
    │       │   │       └── linkilaw-case-study.md
    │       │   │
    │       │   ├── ecommerce-dtc/
    │       │   │   ├── icp-definition.md
    │       │   │   ├── positioning.md
    │       │   │   ├── outreach-sequences/
    │       │   │   └── collateral/
    │       │   │       └── skymod-case-study.md
    │       │   │
    │       │   └── lifestyle-wellness/
    │       │       ├── icp-definition.md
    │       │       ├── positioning.md
    │       │       ├── outreach-sequences/
    │       │       └── collateral/
    │       │
    │       ├── skills/
    │       │   ├── lead-source/SKILL.md             # UPDATED (campaign-aware)
    │       │   ├── lead-enrich/SKILL.md             # UPDATED (cross-campaign dedup)
    │       │   └── outreach-draft/SKILL.md          # UPDATED (campaign templates)
    │       │
    │       └── [LEGACY — icp-definition.md, sequences/ stay until migration]
    │
    ├── Sales/
    │   ├── prospects/                               # Per-prospect folders (all campaigns)
    │   │   ├── _template/                           # Reusable templates
    │   │   ├── mowgli/                              # hospitality campaign
    │   │   │   ├── research.md
    │   │   │   ├── prospect-lucy-worth.md
    │   │   │   ├── outreach/t1.md
    │   │   │   ├── assets/
    │   │   │   └── pitch/index.html
    │   │   ├── linkilaw/                            # legal-lawtech campaign (future)
    │   │   └── ... (50+ prospects across all campaigns)
    │   ├── pipeline/
    │   │   ├── index.json                           # SINGLE pipeline (all campaigns, with campaign field)
    │   │   └── SCHEMA.md                            # Updated with campaign field + dedup rules
    │   └── outbox/                                  # Archive of sent emails
    


    Document Version: 2.2 (Multi-Campaign) | Created: 2026-02-05 | Trimmed: 2026-02-06 | Multi-Campaign: 2026-02-07 | Ready for Execution