Pro fits · same backbone as V1V2 · filter-firstWave 1 · cluster 5PRD v2.0 · May 2026
ADU Directory V2 — filter-first comparison engine
A real-time filter configurator. Three selections — scope, destination state, home type — return a ranked builder list in under 300ms. Same Mac mini as V1. Same agent fleet. Same builder catalog. Same Stripe Connect account. Only the frontend product experience differs. Targets decision-mode homeowners that bounce from V1's content-heavy pages.
Filter re-render target
<300ms
Critical · Meilisearch from day 1
Auto-generated landing pages
300
50 states × 6 home types
Multi-builder compare
5 max
Single inquiry form, fan-out
Combined V1+V2 MRR · M12
$50k+
Shared backend = shared revenue
The hero experience · three filters · instant results
Scope Nationwide ▾
Destination Colorado ▾
Home type
Kit HomesPrefabManufacturedMobileTiny HomesAll Home Types
23 of 47 builders deliver kit homes to Colorado · ranked by paid tier × verification × relevance
/builders/kit-homes/colorado
02V1 vs V2 — sibling versionsSame backend · two frontends
The single most important diagram for V2. Build Leads consistently assume V2 is a separate product on its own infrastructure. It isn't. V2 is an additional frontend on top of the same Mac mini, the same agent fleet, the same builder catalog, the same Stripe Connect account.
V1 · CATALOG-FIRST
Discovery through content
"Homeowners discover ADUs through SEO content. They're in research mode for 6–12 months. The catalog is where they end up after consuming guides."
Hero
SEO content → builder profile → unified inquiryState guides anchor the funnel
Buyer mindset
Research modeMulti-week consideration
Primary discovery
State guides · buying guides · comparisons
URL pattern
/builders/[name]/guides/[state]
Search tech
Postgres + WordPress + FacetWP
SEO pages
~50 state guides + ~150 articles
Builder data needs
Standard catalogbasic profile is enough
V2 · FILTER-FIRST · THIS DASHBOARD
Discovery through configuration
"Decision-mode homeowners already know what they want — e.g. 'kit home delivered to Colorado.' They bounce from content-heavy sites. Time-to-shortlist is the conversion driver."
Hero
Three filters → ranked results → multi-builder compareSingle inquiry to up to 5 builders
Buyer mindset
Decision modeDays-to-weeks, not months
Primary discovery
Three-filter configurator
URL pattern
/builders/[home-type]/[state]Deep-linkable filter state
Shared, unambiguously. Mac mini · OpenClaw + Paperclip · 5-agent fleet · WordPress (CMS for content) · Stripe Connect · GoHighLevel · CSLB · Lasso · YouTube · Beehiiv · Builder records · Inquiry data model · 4-channel contact model · Tailnet · FileVault. V2 adds Meilisearch + new builder fields + new SEO pages, but doesn't replace anything.
03The three-filter engine
Three primary filters drive all V2 traffic. Each is geographic-aware, real-time, and deep-linkable. "All Home Types" is mutually exclusive with the others — selecting it clears the rest.
FILTER 1
Geographic scope
Which states does the builder ship from? Defaults to "Nationwide." User can multi-select.
Used to: narrow to regional makers (e.g. "show me West Coast builders only").
FILTER 2
Delivery destination
Which state will the ADU be installed in? Single state. Defaults to IP-geolocated state.
Used to: filter out builders who can't deliver to the buyer's location — the highest-friction filter to get wrong.
FILTER 3
Home type · chip selector
Multi-select. Six options: Manufactured · Prefab · Kit · Mobile · Tiny · All Home Types.
ManufacturedPrefabKit HomesMobileTinyAll
Used to: narrow the matching algorithm. "All" overrides individual selections.
Secondary filters live in a collapsible "More Filters" panel: price range slider, sq ft slider, bedrooms chip, financing toggle, BBB-verified toggle, in-stock toggle, eco-certified toggle. The chip-row pattern is consistent across all secondary filters.
04Filter engine flow
Every filter change triggers this pipeline. Meilisearch is the index; Postgres is the source of truth. Never query Postgres directly for filter results — too slow at scale.
05300 auto-generated landing pages50 states × 6 home types
Every cell below becomes a unique SEO landing page at /builders/[home-type]/[state]. Each page is auto-generated by the Marketer Agent — pre-loaded filter set, ranked builders, state-specific regulations (e.g. SB 543 for the California column), permit timelines, financing notes. Page regenerates whenever new builders are added.
Manufactured
Prefab
Kit
Mobile
Tiny
All Types
California
CA · M
CA · P ★
CA · K
CA · Mo
CA · T
CA · All
Texas
TX · M
TX · P
TX · K
TX · Mo
TX · T
TX · All
Colorado
CO · M
CO · P
CO · K ★
CO · Mo
CO · T
CO · All
Washington
WA · M
WA · P
WA · K
WA · Mo
WA · T
WA · All
Oregon
OR · M
OR · P
OR · K
OR · Mo
OR · T
OR · All
Arizona
AZ · M
AZ · P
AZ · K
AZ · Mo
AZ · T
AZ · All
Nevada
NV · M
NV · P
NV · K
NV · Mo
NV · T
NV · All
Florida
FL · M
FL · P
FL · K
FL · Mo
FL · T
FL · All
New York
NY · M
NY · P
NY · K
NY · Mo
NY · T
NY · All
Wyoming
WY · M
WY · P
WY · K
WY · Mo
WY · T
WY · All
… 40 more
All 50 states represented in the matrix. 300 total cells. Each cell = one auto-generated SEO landing page.
Highlighted in light orange = pages targeted in Phase 1 (25 priority cells based on state population × ADU demand signals). Solid orange = top priority (California Prefab is the most-searched combination; Colorado Kit Homes is a high-LTV niche).
Duplicate-content risk (R5). 300 pages with similar templates is a SEO landmine. Each page must include unique generated content (state-specific regulations, permit timelines, financing notes, top markets within state). Canonical tags must be set carefully relative to V1 state guides.
06Builder schema extensionsV1 schema + V2 fields
V2 adds five fields to the existing Builder + Model records. Builders with incomplete V2 data show in V1 catalog browsing only — they're invisible to the filter engine until they complete states_delivered and home_types_offered.
Builder · V2 additions
states_delivered: text[]V2
Explicit list of state codes this builder ships to (e.g. ["CA","OR","WA","NV","AZ"]). The primary filter input. Mandatory for V2 visibility.
states_operating_from: text[]V2
Where the builder is physically located / manufactures from. Used by the "Geographic scope" filter (Filter 1).
home_types_offered: enum[]V2
Values: manufactured · prefab · kit · mobile · tiny. A single builder can offer multiple types. Mandatory for V2 visibility.
delivery_radius_miles: integer?V2
Optional. For builders that operate by radius rather than state list. Combined with states_delivered to compute coverage.
exclusivity_zones: jsonb?V2
Premium tier only. Locks specific home_type × state combinations to one builder. Example: [{home_type:"kit",state:"CO"}] → Colorado kit home buyers always see this builder at position #1.
Model · V2 additions
home_type: enumV2
Single value, indexed. The specific home type of this model. Used for fine-grained matching when a builder offers multiple types.
deliverable_states: text[]V2
Model-specific overrides. Some models may have more limited shipping than the parent builder.
Phase 1 backfill is real work. Every existing V1 builder needs states_delivered and home_types_offered filled in. Engineer Agent crawls builder websites to infer values; Build Lead reviews. Verified builders self-correct through dashboard's "Coverage & Types" section (US map UI for state selection).
07Architecture · shared with V1
Operationally identical to V1's architecture except Meilisearch is added as a search index layer on the Mac mini. WordPress remains the CMS for content (state guides, articles); Meilisearch is the index for builder filter queries. Postgres remains source of truth.
Meilisearch over Algolia. Meilisearch self-hosts on the Mac mini (consistent with Hatchstacks pattern); Algolia is managed but adds per-search cost. Default is Meilisearch; switch to Algolia only if scale demands.
08The 5-agent fleet · V2 skills
Same 5 agents as V1. New skills called out below in monospace. Engineer Agent does the heaviest V2 lift (filter logic + landing page generation); Marketer Agent benefits from zero-result analytics as a builder-acquisition signal.
C
CEOIndigo · Builder ops
Same as V1. Exclusivity-tier deals get more interesting in V2 — builders pay for specific home_type × state combos rather than just regions.
Same as V1. V2-specific change: Saved Searches use a magic-link account-lite pattern (email-only, no password) — leverages the existing Email channel for the magic links and digest cadence.
✈
Telegram
Ops · Exclusivity builders
Build Lead alerts (filter latency, indexing errors). Concierge channel for Exclusivity builders renewing zones.
Single inquiry form sends to up to 5 builders simultaneously from the Compare view. Same inquiry data model as V1.
✉
Email
Saved-search digests · magic links
Account-lite magic-link auth. Weekly digest: "3 new kit home builders deliver to Colorado this month." User-configurable cadence.
10Phase timelineBuilt alongside V1 · same backbone
V2 is built in parallel with V1. Phase 1 prioritizes schema migration + Meilisearch + the filter MVP. Phase 4 is the decision point: retire V1, retire V2, or run both for different segments.
11Risk heatmap
Eight V2-specific risks. R7 (mobile filter UX) and R4 (zero-result frustration) are the highest-likelihood — both UX failure modes that erode trust fast. R1 (filter latency) and R5 (duplicate-content SEO penalty) are the existential ones. All V1 risks still apply on top.
Low
Medium
High
Critical
High
R1
R5
R8
R4
R7
Medium
R3
R6
R2
Low
— Likelihood →
Risk register
R1Filter latency >500msMeilisearch from day 1 · never query Postgres directly
R3V2 cannibalizes V1 without improving conversionRigorous A/B testing · preserve V1 for SEO-discovery traffic
R4Zero-result filter combos frustrate buyersEmpty state UX with fallback suggestions · gaps drive builder acquisition
R5Duplicate-content penalty on 300 landing pagesUnique generated content per page · careful canonical tags
R6Exclusivity-tier conflicts (two builders want same zone)First-come-first-served contracts · transparent on marketplace
R7Mobile filter UX awkwardBottom-sheet pattern from day 1 · iPad + iPhone test every release
R8Builder surfaced for a combo they can't fulfillMandatory verification of states_delivered + home_types_offered before live
12Data model · V2 extensions
V1 schema extended with new fields on Builder + Model (see §06) and three brand-new entities: SavedSearch, FilterAnalyticsEvent, and LandingPage.
erDiagram
BUILDER ||--o{ MODEL : "lists"
BUILDER ||--o{ LEAD_ROUTING : "receives"
INQUIRY ||--o{ LEAD_ROUTING : "fans out to"
SAVED_SEARCH }o..o| BUILDER : "matches"
FILTER_ANALYTICS_EVENT }o..o{ BUILDER : "surfaced"
LANDING_PAGE }o..o{ BUILDER : "showcases"
BUILDER {
uuid id PK
string business_name
text_array states_delivered
text_array states_operating_from
enum_array home_types_offered
int delivery_radius_miles
jsonb exclusivity_zones
enum payment_tier
bool verified
}
MODEL {
uuid id PK
uuid builder_id FK
enum home_type
text_array deliverable_states
int sqft
int price_starting
int lead_time_weeks
}
INQUIRY {
uuid id PK
jsonb homeowner_contact
string state
enum_array selected_home_types
int quality_score
enum status
}
LEAD_ROUTING {
uuid id PK
uuid inquiry_id FK
uuid builder_id FK
int charged_amount_cents
enum outcome
}
SAVED_SEARCH {
uuid id PK
string user_email
jsonb filter_state
enum notification_cadence "weekly|monthly|off"
timestamp last_notified_at
}
FILTER_ANALYTICS_EVENT {
uuid id PK
uuid session_id
jsonb filter_state
int result_count
int inquiries_sent
text user_agent
text utm_source
}
LANDING_PAGE {
uuid id PK
string url_slug
enum home_type
string state
text generated_content
timestamp last_regenerated_at
int serp_rank_current
int traffic_30d
int inquiries_30d
}
13Build Lead · V2 weeks 1–6V1 onboarding still applies
The V1 Build Lead onboarding (7-day) applies fully — V2 layers on top. These six weeks describe the V2-specific build sequence Engineer Agent runs after the standard Hatchstacks Pro stack is up.
Exclusivity-tier builders pay for home_type × state zones
Optional dedicated GHL sub-account (partial Pro tier ownership pattern)
Sub-account transfers to builder at off-boarding
Mac mini stays Dawson's
15Cross-project map
V2 inherits V1's relationships (same builders, same SEO content engine). Adds one notable share: Meilisearch infrastructure is reusable for Vacation Rental host search and Network for Creators creator search.
16Glossary
V2-specific terms. All V1 terms (Builder, Model, Inquiry, LeadRouting, Verified badge, PPL, Featured, Exclusivity, FacetWP) still apply.
V1 catalog-first
The original version. SEO content drives discovery; the catalog is the destination. Built on Postgres + FacetWP.
V2 filter-first
This version. Three-filter configurator drives instant shortlisting. Built on Meilisearch.
Filter combo
A specific selection of scope × destination × home type. Drives a unique URL pattern and a unique ranked result list.
Zero-result combo
A filter combo returning no builders. = builder acquisition opportunity. Marketer Agent uses these as outbound targets.
Exclusivity zone
A premium-tier home_type × state combo exclusively assigned to one builder. Highest-margin tier.
Faceted search
Multi-dimensional real-time filtering. Powered by Meilisearch in V2.
Meilisearch
Open-source search index, self-hosted on the Mac mini. Real-time, faceted, geo-aware. The performance layer that makes V2 viable.
Account-lite
Magic-link email-only account for saved searches. No password. Sent via Resend.
Saved search
A user-bookmarked filter combo. Triggers digest emails when new matching builders are added.
300 landing pages
50 states × 6 home types matrix. Auto-generated by Marketer Agent. Each has unique content (state regulations, permit timelines, financing notes).
A/B routing
Infrastructure (PostHog feature flag or Cloudflare worker) that splits paid traffic between V1 and V2 by buyer segment.
Builder dashboard "Coverage & Types"
Builder self-service panel where they update states_delivered + home_types_offered via a US map UI.