Hybrid · operator on Pro, users on SaaS First 🟡 archetype Wave 2 · cluster 3 PRD v1.0 · May 2026

Vacation Rental Turnover
— STR cleaning dispatch

A two-sided marketplace dispatching cleaning + restocking between Airbnb/Vrbo hosts and local cleaners. Same-day turnover is the promise. iCal calendar sync auto-triggers job creation on guest checkout; photo proof of work; payment release on host approval. Launch in Joshua Tree — concentrated STR density, manageable geography, AB5 compliance landmines faced head-on.

Hosts target · M12
50+
Concentrated in Joshua Tree
Cleaners target · M12
30+
Active service area
Jobs/mo · M12
800+
$20–$30k platform MRR
Markets · M18
2
Joshua Tree + (Big Bear or Sedona)
Two sides plus a unit of work
Demand side

Host

An Airbnb/Vrbo property owner or property manager. Has 1–10 properties (50+ for the future Premium tier). Pays per turnover + optional monthly subscription.

Supply side

Cleaner

A local independent cleaner or small cleaning business. Builds reputation. Gets paid via Stripe Connect Express on job approval — not 30 days later.

The transaction

Job

One turnover. Auto-created on calendar checkout event. Lifecycle: queued → claimed → in-progress → submitted (with photos) → approved → payment released.

The hybrid pattern at a glance. One Mac mini runs the platform backend (operator, on Pro tier). Hosts and cleaners are users of a multi-tenant SaaS layer above it — they're not Hatchstacks Pro clients. The Premium tier ($1–5k/mo, 50+ unit property managers) is the future path to a true per-client Mac mini upgrade. See §03 and §14.
02The same-day turnover promise

Every architectural decision serves one promise: a cleaning happens between guest checkout and the next check-in. Failure here breaks host trust irrecoverably. The backup queue and QA photo audit are the safeguards.

Trigger

Guest checkout

iCal pull from Airbnb/Vrbo. Job created in backend within 30 seconds of the checkout event landing.

Default schedule

Clean starts +1 hr

Cleaning starts 1 hour after checkout. Deadline = 1 hour before next check-in. Host can override per property.

Safeguard

Backup queue · top 3

Top 3 nearby cleaners maintained as backup. 15-min response window. Auto-reassign on no-claim. Cleaner cancels <4 hrs out → backup dispatched.

Suspension trigger. Cleaner suspended automatically after 2 no-shows OR rating drops below 3.5. Quality enforcement runs on hard rules, not operator judgment.
03Hybrid architectureOperator on Pro · users on SaaS · Premium = future Pro per-client

The single most important diagram for this project. Build Leads coming from the 🟢 projects assume "Mac mini per host." That's wrong. The Mac mini is the operator backbone. Hosts and cleaners are end users of a multi-tenant SaaS layer running on that backbone.

USER TIER · MULTI-TENANT SAAS · NOT HATCHSTACKS PRO CLIENTS Hosts and cleaners share one platform · isolated by tenant ID · standard SaaS auth HOSTS · DEMAND SIDE 🏠 Web portal Next.js · 1–10 properties 📅 iCal sync Airbnb + Vrbo + direct ⭐ Premium tier · $1–5k/mo 50+ unit PMs · future per-client mini CLEANERS · SUPPLY SIDE 📱 React Native app iOS + Android · job queue 📸 Photo checklist Room-by-room before/after 💳 Stripe Connect Express Payout on host approval ↓ all traffic terminates at the operator backbone ↓ OPERATOR BACKBONE · HATCHSTACKS PRO · ONE MAC MINI Operator Mac mini turnover-ops.local TAILSCALE MESH Build Lead + Operator Admin access only FILEVAULT Photo storage Key access encrypted OPENCLAW + PAPERCLIP Same canonical runtime Risk policy enforcement 99.7% UPTIME Critical Failed dispatch = lost trust 5-AGENT FLEET · OPERATIONS SUPERVISION CCEOHost + cleaner onboarding TCTOCalendar sync · uptime EEngineerNext.js + React Native QQA · visionPhoto audit · disputes MMarketerMarket expansion · supply growth MODELS Sonnet vision Photo QA Haiku · Ollama Routing · offline INTEGRATIONS · BOUND TO AGENTS Airbnb iCalCalendar sync Vrbo iCalCalendar sync Stripe ConnectExpress payouts Twilio (GHL)Cleaner SMS MapboxGeo + routing S3 + CloudflarePhoto storage + CDN PersonaCleaner ID verify CheckrBackground check 4-CHANNEL CONTACT · OPS + USERS Telegram Build Lead alerts · dispute escalations Dashboard Hosts: properties + turnovers · Ops: fleet Website Chat Host onboarding · public support Email + SMS Cleaner job notifs · host receipts
Architectural mistake to never make: provisioning a Mac mini per host. Hosts are platform users, not Hatchstacks Pro clients. The only per-client Mac mini scenario here is a 50+ unit Premium property manager — a future upgrade lane, not the default.
04The 5-agent fleetQA Agent = vision audit · highest stakes

Same canonical 5-agent pattern. QA Agent's photo audit is the differentiator here — Claude Sonnet vision spot-checks submitted photos against the checklist to catch quality failures before the host sees them.

C
CEOIndigo · Growth ops
Host onboarding, cleaner recruitment campaigns, growth ops, retention check-ins, Premium-tier sales for 50+ unit property managers.
host_onboardingcleaner_recruitmentprocess_stripe_subscription
T
CTOCyan · Platform health
iCal sync reliability (Airbnb + Vrbo), uptime monitoring (99.7% critical), Sentry + PostHog, Stripe Connect health, S3 photo storage.
monitor_ical_syncmonitor_uptime
E
EngineerGreen · Platform build
Next.js host portal, React Native cleaner app, dispatch matching algorithm, Mapbox routing integration, calendar sync pipeline.
match_cleaner_to_jobscaffold_mobile_app
Q
QA · visionAmber · Photo audit
Sonnet vision spot-checks submitted photos against the room-by-room checklist. Flags incomplete/poor-quality cleans before host approval. Owns the dispute flow.
audit_photo_qualityverify_checklist_completeclassify_dispute
M
MarketerPink · Market expansion
Joshua Tree host acquisition (first-month-free), cleaner supply campaigns (Craigslist + cleaning company partnerships), Market 2 launch content.
compose_cold_outreach_emailgenerate_market_launch_content
05The 4-channel contact model

All four channels are in active use, but split differently than other projects: Email + SMS dominate cleaner notifications; Dashboard dominates host workflow; Website Chat = host onboarding; Telegram = ops escalations.

Telegram

Ops + dispute escalations

Build Lead alerts: failed iCal sync, no-claim escalation, QA Agent photo audit flagged, dispute submitted, Stripe payment issue.

Dashboard

Hosts · Operator

Host: property list, calendar, turnover history, photo review, payment status. Operator: fleet view, cleaner roster, market analytics. Tailnet-only for ops.

Website Chat

Host onboarding intake

Marketing site live chat for host signups. Identity verification kickoff. Property details intake. Hands off to CEO Agent for structured onboarding.

06Dispatch sequence

From calendar event to payment release. Each transition is enforced by a timer or rule. The 15-min response window is what makes same-day promise viable.

sequenceDiagram
    participant Cal as Airbnb/Vrbo iCal
    participant Be as Backend
    participant Cl as Cleaner App
    participant QA as QA Agent (vision)
    participant Ho as Host
    participant St as Stripe Connect

    Cal->>Be: Checkout event detected (≤30s)
    Be->>Be: Create Job · status=queued
    Be->>Cl: Push + SMS to matched cleaner
    Note over Cl,Be: 15-min response window
    alt Cleaner claims within 15 min
        Cl->>Be: status=claimed
    else No claim
        Be->>Cl: Auto-reassign to backup #1
        Note right of Be: Falls through top 3 backups
    end
    Cl->>Be: status=in_progress (cleaner on-site)
    Cl->>Be: Photo checklist room-by-room
    Cl->>Be: Submit job · status=submitted
    Be->>QA: Vision spot-check photos vs checklist
    alt QA passes
        Be->>Ho: Push notification — review photos
        alt Host approves within 24h
            Ho->>Be: status=approved
        else No response in 24h
            Be->>Be: Auto-approve · status=approved
        end
        Be->>St: Release payment · cleaner payout
        St-->>Cl: Payout
    else QA flags
        Be->>Ho: Push — review · QA flag attached
        opt Host disputes
            Be->>Be: status=disputed · operator review
        end
    end
07QA Agent · photo auditSonnet vision · pre-host review

The QA Agent runs Claude Sonnet with vision on every submitted job. It compares submitted photos against the property's checklist and flags anomalies before the host sees them. This is what prevents "the one bad clean" from killing host trust (R2).

CLEANER SUBMITS Photos + checklist 5–20 photos typical QA AGENT · SONNET VISION Compare to checklist Room-by-room match All required photos OK? PASS HOST NOTIFIED Push: "Review photos" Auto-approve in 24h if no response PAYMENT RELEASED Stripe Connect Cleaner paid FLAG HOST + QA FLAG Push: "Review + QA notes" "Bathroom photos look incomplete" DISPUTE PATH Operator review Insurance escrow holds Cleaner reputation feedback: QA pass rate becomes a ranking signal. Cleaners with consistently flagged jobs get auto-demoted in dispatch matching. 2 no-shows OR rating <3.5 = auto-suspend.
08Cold-start mitigation & flywheel

Two-sided marketplaces fail without supply and demand simultaneously. The Joshua Tree concentrated launch + month-1 free + 30 days manual dispatch solves the chicken-and-egg. Self-reinforcing flywheel kicks in by Month 3–4.

PRE-LAUNCH · W6–8

Recruit cleaners

15–20 cleaners via Craigslist + partnerships with local cleaning companies. Persona ID verify + Checkr background check. Bonded.

PRE-LAUNCH · W9–10

Onboard hosts

10 hosts beta with first-month-free incentive. Direct outreach to top Airbnb hosts in Joshua Tree. iCal sync configured.

LAUNCH · D1–30

Manual dispatch

Operator-assisted matching for first 30 days. Build Lead watches every job, builds the playbook. 50 manual jobs target.

M3–4 onward

Flywheel turns

Automated dispatch live. Happy hosts → reviews + referrals. Earning cleaners → invite friends. Supply & demand compound.

Why Joshua Tree specifically? ~5,000 active Airbnb listings (high density), enthusiast cleaner workforce (many already serve STR market informally), manageable geography (one Mapbox zoom level covers everything), AB5 compliance landmine faced upfront rather than discovered later in expansion.
Market 2 candidates. Big Bear (seasonal but high density · simpler labor law) or Sedona (year-round · premium tier customers). Decision made in Phase 3 based on Joshua Tree unit economics + capacity to support a second market without splitting operator attention.
09Pricing & commission

Flat per-job pricing by property size. Platform retains 15–20% commission. Optional host subscription for 5+ unit property managers ($50–$200/mo) gives priority dispatch + custom checklists. Future Premium tier ($1–$5k/mo) for 50+ unit managers gets dedicated infrastructure.

Studio
$80
per turnover
1 BR
$100
per turnover
2 BR
$135
per turnover
3 BR
$165
per turnover
4 BR+
$200
per turnover
TierPricingWhat it unlocks
Per-job (default)$80–$200/jobPlatform retains 15–20% commission · pay-as-you-go for individual hosts with 1–4 properties
Property manager sub$50–$200/moFor hosts with 5+ units. Priority dispatch · custom checklists · multi-property dashboard · linen/supply restock with markup
Premium · future$1k–$5k/mo50+ unit property managers. Dedicated Mac mini infrastructure (true Hatchstacks Pro per-client). Bespoke SLAs. Dedicated CEO Agent attention.
10Phase timeline52 weeks · single-market focus

Phase 1 builds the platform and seeds Joshua Tree. Phase 2 automates. Phase 3 scales market 1 to economic viability. Phase 4 launches market 2.

W1W12W20W36W52 PHASE 1Joshua Tree launch · MVP + 50 manual jobs PHASE 2Automation · 200 jobs/mo PHASE 3Scale Joshua Tree · 800+ jobs/mo PHASE 4 — market 2 launch1,500+ jobs/mo combined · $40–$60k MRR PLATFORM Mac mini + Pro stack Next.js + React Native MVP Iteration · automated dispatch · QA vision CLEANERS 15 onboarded 20+ active 30+ active in J-Tree Market 2 cleaners recruited + bonded HOSTS 10 beta 20+ paying 50+ hosts in J-Tree Market 2 host beta · first PM sub JOBS/MO 50 manual 200/mo automated 800+/mo 1,500+/mo across markets MVP complete Automation live · $5–8k MRR $20–30k MRR · J-Tree mature $40–60k MRR · 2 markets $0 $5–8k $20–30k $40–60k MRR target MRR
11Risk heatmap

Eight risks. R1 (cleaner cancels, no backup) and R6 (cold-start) are the two High/High risks the operations design directly addresses. R4 (AB5 reclassification) is the regulatory landmine that gates expansion to other California markets.

Low
Medium
High
Critical
High
R8
R2
R4
R1
R6
Medium
R3
R5
Low
R7
— Likelihood →
Risk register
R1Cleaner cancels · no backupBackup queue of 3 nearby · surge pricing if needed
R2One bad clean kills host trustQA Agent vision audit + insurance + escrow
R3Host poaches cleaner off-platformNon-circumvention clause · stickiness via insurance + scheduling
R4California AB5 reclassifies cleaners W-2Face head-on in Joshua Tree · legal review of cleaner agreement
R5Seasonal volatility (J-Tree winter slow)Recurring cleaning subscriptions · long-term cleaner retention
R6Cold start chicken-and-eggConcentrated launch · month-1 free · manual dispatch first 30 days
R7Airbnb API access deniediCal works fine · Partner API is nice-to-have
R8Insurance claim from cleaner damageRequired bonding · platform insurance · photo evidence
12Data model

Five core entities. Job is the central hub — every transition (queued / claimed / in_progress / submitted / approved / disputed) drives operations and billing.

erDiagram
    HOST ||--o{ PROPERTY : "owns"
    HOST }o--o{ CLEANER : "preferred"
    PROPERTY ||--o{ JOB : "schedules"
    CLEANER ||--o{ JOB : "claims"
    JOB ||--|| PAYMENT : "settles"

    HOST {
        uuid id PK
        jsonb contact
        bool identity_verified
        string stripe_customer_id
        enum tier "per_job|subscription|premium"
    }
    PROPERTY {
        uuid id PK
        uuid host_id FK
        string address
        int beds
        int baths
        text key_access "encrypted"
        string ical_feed_url
        enum calendar_sync_status
        uuid cleaning_template_id
        text special_instructions
        bool active
    }
    CLEANER {
        uuid id PK
        jsonb contact
        bool identity_verified
        enum background_check_status
        int service_radius_mi
        string vehicle
        decimal rating_avg
        int jobs_completed
        int no_show_count
        string stripe_connect_account_id
        enum status "active|suspended"
    }
    JOB {
        uuid id PK
        uuid property_id FK
        uuid cleaner_id FK
        timestamp scheduled_start
        timestamp scheduled_end
        enum status "queued|claimed|in_progress|submitted|approved|disputed"
        jsonb checklist
        text_array photos
        int pricing_cents
        int commission_cents
        timestamp claim_at
        timestamp complete_at
        timestamp approve_at
    }
    PAYMENT {
        uuid id PK
        uuid job_id FK
        int host_charge_cents
        int cleaner_payout_cents
        string stripe_payment_intent_id
        string stripe_transfer_id
        enum status "held|released|refunded"
    }
13Build Lead · Days 1–10Longer because of platform complexity

Days 1–7 build the operator backbone. Days 8–10 are platform integrations + Joshua Tree pre-launch (cleaner recruitment + host outreach). MVP build (Next.js + React Native) continues into Week 2.

DAY 1Read-in
  • Tailnet · 1Password · Notion
  • Read Advanced PRD end-to-end
  • Read Build Guide §6, §7, §11
  • Review hybrid architecture in §03
Context loaded
DAY 2Read-in cont.
  • AB5 legal reference (California)
  • Persona + Checkr docs
  • Stripe Connect Express docs
  • iCal spec for Airbnb/Vrbo feeds
Compliance + integrations clear
DAY 3Mac mini
  • FileVault · Tailscale · 3 users
  • OpenClaw + Paperclip + Ollama
  • 5 agents configured
  • Sonnet vision binding for QA Agent
Operator backbone online
DAY 4Platform stack
  • Postgres database
  • Next.js host portal scaffold
  • React Native cleaner app scaffold
  • S3 + Cloudflare CDN for photos
Stack scaffolded
DAY 5Payments + maps
  • Stripe Connect Express test accounts
  • Mapbox geo + routing
  • Test payout flow end-to-end
  • Webhook handlers wired
Money + geo working
DAY 6Calendar sync
  • iCal pull from Airbnb test account
  • iCal pull from Vrbo test account
  • Job creation on checkout event
  • Dispatch matching algorithm draft
Sync → dispatch wired
DAY 7Comms + verify
  • Twilio (via GHL) SMS test
  • Push notifications (Firebase)
  • Persona ID verification flow
  • Checkr background check flow
Comms + verification wired
DAY 8Cleaner recruit
  • Marketer Agent drafts Craigslist + partnership pitches
  • List 30 local cleaning companies
  • First 10 outreach
  • Bonding insurance terms set
Supply pipeline open
DAY 9Host outreach
  • List top 30 J-Tree Airbnb hosts
  • Draft month-1-free pitch
  • First 10 host outreach
  • Beta signup landing page live
Demand pipeline open
DAY 10First manual job
  • First cleaner Persona-verified + Checkr-cleared
  • First host iCal configured
  • Manual dispatch first job
  • Photo upload tested · QA vision audit run
First end-to-end job complete
14Hybrid Pro tier conformance

The hybrid pattern in detail. Different from the 🟢 archetypes: only the operator backbone is on Pro tier. Hosts and cleaners are platform users. Premium tier (50+ unit PMs) is the future path back to true per-client Mac minis.

Operator backbone fits Pro

  • One Mac mini runs the platform backend
  • 5-agent fleet supervises operations · QA Agent vision audit is the standout skill
  • 4-channel contact model active
  • Tailnet + FileVault protects host PII + cleaner financial info + property key access
  • Sonnet vision · Haiku · Ollama model bindings same canonical pattern

Users are NOT Pro clients

  • Hosts and cleaners use a multi-tenant SaaS layer
  • No per-host Mac mini
  • No per-cleaner agent fleet
  • Ownership transfer doesn't apply — nothing to transfer
  • Standard SaaS auth · tenant isolation by ID, not by infrastructure

Premium · future Pro per-client

  • 50+ unit property managers at $1–5k/mo
  • Optional dedicated Mac mini for the largest customers
  • This becomes a true Hatchstacks Pro engagement within the platform
  • Future revenue lane unlocked once Phase 3 economics prove out
  • Bespoke SLA + dedicated CEO Agent attention
15Cross-project map

First of the two-sided marketplace archetypes. Shares more with Network for Creators (the other 🟡 hybrid) than with the Ventura cluster — both need vision-model fraud/quality detection, Stripe Connect Express, Persona + Checkr verification stack.

THIS PROJECTVacation Rental Turnover 🟡 SIBLING HYBRIDNetwork for CreatorsQA fraud detection · Stripe Express SHARED PATTERNMarketplace stack 🟢 PRO · WAVE 1Cold Outbound VenturaShared CEO B2B skill SHARED SKILLHost acquisition outreach 🟢 PRO · WAVE 1ADU Directory V1 / V2Meilisearch infra reusable SHARED TECHMeilisearch for host search FUTURE CONSOLIDATIONMarketplaces OpsOne Mac mini for both 🟡 projects CONSOLIDATION OPTSame Mac mini eventually Black bold = primary shared pattern. Solid = direct shared infra. Dashed = transferable. Dotted = future consolidation option.
Shared with Network for Creators (🟡 sibling)
AssetHow
QA vision audit patternPhoto audit here · profile/content fraud detection there
Stripe Connect ExpressCleaner payouts here · creator brand payouts there
Persona + Checkr stackSame vendor combo for both supply-side verification
Cold-start playbookConcentrated launch market + manual-first 30 days
Customer / data overlap
From→ To
Hosts (multi-property STR owners)Potential ADU Directory homeowner prospects (they own multiple properties)
Cleaner CRM / dispatch logicReusable for other on-demand labor marketplaces
Photo-audit dataset (Sonnet vision feedback)Improves Creator fraud detection prompts
16Glossary
STR
Short-term rental — Airbnb, Vrbo, direct-booking properties.
Turnover
The cleaning + restock between two guest stays. The unit of work this platform dispatches.
iCal
Standard calendar feed format used by Airbnb/Vrbo. Our primary calendar sync mechanism in Phase 1.
AB5
California law on independent contractor classification. Treats cleaners as W-2 in many cases. Hard constraint on California market expansion — must be addressed per market.
Stripe Connect Express
Stripe account type for marketplace payouts to cleaners. Express = simplified onboarding, suitable for individual cleaners.
Host
Demand-side customer. An Airbnb/Vrbo property owner. 1–10 properties typical; 5+ unlocks subscription tier; 50+ unlocks future Premium tier.
Cleaner
Supply-side participant. Independent cleaner or small cleaning business. Bonded + background-checked. Builds reputation through ratings.
Job
The transaction. Lifecycle: queued → claimed → in_progress → submitted → approved (or disputed) → payment released.
Backup queue
Top 3 nearby cleaners maintained as fallback dispatch targets. Auto-reassign on no-claim within 15 min.
Photo checklist
Room-by-room before/after photo requirement. QA Agent (Sonnet vision) audits against the property's template.
Premium tier
Future $1–5k/mo subscription for 50+ unit property managers. Includes dedicated Mac mini (true Pro per-client pattern).
Hybrid pattern
The 🟡 Hatchstacks tier: operator backbone is full Pro tier; end users are on multi-tenant SaaS. Premium tier customers can opt up.
← Portfolio