Cold Outbound Ventura ADU
— per-customer Mac minis
AI-driven cold outbound campaigns sold to Ventura County's independent ADU builders. Every paying builder gets their own Mac mini running their own 5-agent fleet, their own sending domain, their own data. The 2026 California ADU law spike (SB 543, AB 462, AB 1154) is the timing wedge. Off-boarding is real: when a builder leaves, the Mac mini and everything on it transfers to them.
Builder
An independent ADU builder paying us $1.5k–$7.5k/mo for outbound services. Each builder gets their own dedicated Mac mini. Source of MRR.
Prospect
A Ventura County homeowner we email or SMS on behalf of a builder. They've not asked to be contacted — compliance carries every send.
Lead
A prospect who replied positively and got qualified into a calendar meeting on the builder's calendar. What the builder is actually paying for.
Four California laws signed in 2025 took effect this year. ADU demand is spiking. Builders are scrambling for pipeline. None have sophisticated outbound. The category-defining gap: no local competitor offers AI-driven cold outbound to ADU builders.
| Law | Effective | What changes for ADU buyers + builders |
|---|---|---|
| SB 543 | Jan 1, 2026 | Eliminates school fees on ADUs <500 sq ft · caps permit intake review at 15 business days · three ADU types per lot allowed simultaneously |
| AB 462 | Oct 15, 2025 | 60-day Coastal Development Permit deadlines (down from 6–12 months) for Oxnard + Port Hueneme coastal properties |
| AB 1154 | Jan 1, 2026 | Removes owner-occupancy requirements for JADUs with separate bathrooms |
| SB 9 | Effective | Lot splitting for additional housing potential |
This is the most important diagram in the portfolio. One Mac mini per paying customer. Plus one operator Mac mini at the top. All connected via Tailnet. Per-customer isolation is not optional — it's the reason this business model works without catastrophic deliverability or compliance failures.
Same 5-agent pattern as the rest of the portfolio. What changes per project is the skill bindings — what each agent actually does. Below are the skills the PRD binds explicitly for this project.
Each customer Mac mini exposes its own four channels. Builder-side comms run via Telegram + Dashboard; prospect-side comms run via Email + SMS (with Website Chat for the customer's own dashboard interactions).
Telegram
Deliverability alerts, agent escalations, builder approval requests (sequence changes, ICP updates). Each builder gets their own Telegram bot. Highest-priority queue.
Dashboard
Builder: sends/replies/meetings booked, cost per meeting, current pipeline. Operator: cross-customer fleet view, deliverability across all minis. Tailnet-only.
Website Chat
Day-1 intake form for new builder customers — ICP description, brand voice samples, monthly capacity. CEO Agent extracts structured customer profile from this.
Primary outbound channel. Per-customer warmed domain via Smartlead. Plus monthly performance report to builder. Plus transactional (welcome, alerts) via Resend.
Three tiers. Each gets its own Mac mini regardless of tier — the difference is volume + channel coverage. Setup fee covers initial provisioning. Optional 2% performance bonus on closed deals attributable to campaigns.
- 1 campaign
- 500 contacts/mo
- Email-only
- Reply qualification + booking
- Monthly performance report
- 3 campaigns
- 2,000 contacts/mo
- Email + SMS
- AI Receptionist qualification
- Quarterly nurture sequences
- Builder-facing dashboard
- Unlimited campaigns
- 5,000+ contacts/mo
- Email + SMS + direct mail
- Dedicated Mac mini upgrade (M4 Max if needed)
- Bigger Sonnet budget
- SLA on reply latency
The repeatable per-customer onboarding. Every paying builder goes through this exact sequence. By Month 3 of operations, agent automation should compress operator time to under 2 hours. Months 1–2 are slower while the playbook is being calibrated.
Discovery
- 30-min intake call (Telegram, Zoom, or phone)
- CEO Agent extracts: ICP, brand voice, value prop, target geos, monthly project capacity
- Builder approves the structured customer profile
Infrastructure
- Provision Mac mini from pre-provisioned standby pool (~30 min bootstrap)
- Domain procurement (e.g. outreach.{builder}.com)
- GHL location · Stripe customer · 1Password vault for credentials
Campaign Setup
- Marketer Agent drafts first 3 sequences from customer profile
- Customer reviews + approves messaging tone
- QA Agent compliance audit · suppression list applied
- First 500 prospects compiled from Ventura Assessor + Permits crawlers
Warm-Up
- Send volumes scale: 50 → 100 → 200 → 300/day over 30 days
- Engagement metrics monitored daily by QA Agent
- Customer dashboard live; real-time visibility
- First meeting bookings expected by Day 15–20
Every new customer's sending domain takes 30 days to ramp from zero to full volume. Skipping this is the fastest way to destroy deliverability. The curve is conservative on purpose — engagement metrics gate progression to the next step.
Replies aren't just yes/no. The Marketer Agent classifies every inbound into five buckets. Each bucket has a different handling path. Hostile replies always escalate immediately to the operator.
Sales is the bottleneck in Phase 1. Builder customer #1 has to sign before infra investment is worth it. Phase 2 proves the funnel. Phase 3 is the scale ramp. Phase 4 is market saturation + first vertical expansion.
11 risks. Three are existential: R1 (deliverability collapse), R2 (customer-imported bad list), and R3 (TCPA lawsuit). R5 (LLM cost) is the most likely day-to-day grind. R11 (off-boarding) is treated as a feature, not a risk — plan for it from Day 1.
Risk register
Six core entities. BuilderCustomer is the root; everything else (Campaign, Prospect, Message, etc.) is per-customer scoped. SuppressionList is dual-scoped — per-customer plus a global suppression list shared across all customers (anyone who opts out anywhere is opted out everywhere).
erDiagram
BUILDER_CUSTOMER ||--o{ CAMPAIGN : "runs"
CAMPAIGN ||--o{ PROSPECT : "targets"
PROSPECT ||--o{ MESSAGE : "exchanges"
BUILDER_CUSTOMER ||--o{ SUPPRESSION_LIST : "has private"
SUPPRESSION_LIST }o..o| BUILDER_CUSTOMER : "global if null"
MESSAGE }o--|| AGENT_ACTION : "created by"
PROSPECT ||--o{ AGENT_ACTION : "may trigger"
BUILDER_CUSTOMER {
uuid id PK
string business_name
jsonb primary_contact
string csl_license_number
text_array service_cities
int ideal_project_value_min
int ideal_project_value_max
int monthly_capacity
text brand_voice
text value_proposition
jsonb_array case_studies
enum tier "starter|pro|premium"
string stripe_customer_id
decimal performance_bonus_pct
enum status "onboarding|active|paused|churned"
string mac_mini_hostname
}
CAMPAIGN {
uuid id PK
uuid customer_id FK
string name
text icp_description
enum list_source "assessor|permits|apollo|imported_csv|enrichment"
enum status "draft|warming|active|paused|complete"
timestamp start_date
int total_prospects
jsonb_array sequences
enum_array channels "email|sms|direct_mail"
}
PROSPECT {
uuid id PK
uuid campaign_id FK
uuid customer_id FK
string email
string phone
string name
jsonb address
jsonb property_data
jsonb enrichment
enum status "queued|sent|opened|replied|meeting_booked|unsubscribed|dnc|bounced"
bool do_not_contact
jsonb consent_record
}
MESSAGE {
uuid id PK
uuid prospect_id FK
uuid campaign_id FK
enum channel "email|sms|direct_mail"
enum direction "outbound|inbound"
string template_used
text rendered_content
timestamp sent_at
timestamp opened_at
timestamp replied_at
enum reply_classification "interested|not_now|unsubscribe|wrong_person|hostile"
text qualification_notes
timestamp meeting_booked_at
string meeting_calendar_event_id
uuid agent_action_id FK
}
AGENT_ACTION {
uuid id PK
enum agent "ceo|cto|engineer|qa|marketer"
string action_type
text prompt_used
jsonb result
string model_binding_used
decimal cost_usd
timestamp created_at
}
SUPPRESSION_LIST {
uuid id PK
uuid customer_id FK
string email_or_phone
string reason
uuid source_message_id FK
timestamp created_at
}
Two weeks because Cold Outbound requires building infrastructure to repeat the customer-onboarding workflow, not just standing up one site. Days 1–7 are the operator Mac mini + crawlers + compliance tooling. Days 8–10 are the first customer's onboarding.
- Tailnet, 1Password, Notion access
- Read Advanced PRD end-to-end
- Read Build Guide §6, §7, §11
- Review Visuals 3a–3i
- Tier Scope Discriminator Matrix 5c
- 4-channel contact model (1d, 1e, 1f)
- CAN-SPAM + TCPA reference reading
- CCPA / CPRA reference reading
- Map customer onboarding workflow on paper
- Provision Mac mini #1 (operator's)
- FileVault, Tailscale, 3 user accounts
- OpenClaw + Paperclip + Ollama
- Daily backup tested
- 5 agents configured on ops mini
- Operator dashboard (multi-customer view)
- Sales pipeline tracking
- Telegram bot test all 5 agents
- Paperclip risk policies enforced
- Build Ventura County Assessor crawler
- Parcel, value, year built, owner-occupant
- Rate-limit, cache aggressively, ToS-safe
- Version-controlled, documented
- Build Ventura Permits crawler
- Recent ADU + garage conversion filings
- Apollo / Clay API as enrichment backup
- Test full 500-prospect generation
- CAN-SPAM validator skill
- TCPA opt-in proof checker
- Global + per-customer suppression list infra
- Smartlead operator account
- Deliverability validator: bounce, spam, reputation
- CEO Agent compiles top-10 builder list
- Build Lead approves outreach script
- First outreach sent (manual approval each week 1)
- Ready for inbound replies + demos
- Customer signs (target W3–4)
- Provision customer Mac mini (#2)
- Configure customer's agents from ICP
- Domain procurement · GHL · Stripe
- Customer dashboard handover
- Telegram bot bonded to customer
- First 500 prospects compiled + scrubbed
- First sequences approved by customer
- Domain warm-up begins
Unlike the pilot, every aspect of Pro tier applies here. This is the textbook archetype.
Fits Pro perfectly
- Per-client Mac mini for each builder customer — isolated data, reputation, billing
- 5-agent fleet per mini — same canonical pattern
- 4 channels all in use — Telegram, Dashboard, Website Chat (onboarding), Email
- Tailnet mesh — Build Lead reaches every customer mini privately
- Off-boarding ownership transfer — real and operationally critical (see §15)
Stretches Pro tier
- High per-customer compute — 5k+ sends/day + reply handling + crawlers. Premium tier customers may need M4 Max.
- SOC 2 Type 1 target within 6 months — heavier compliance than other Pro projects.
- CAN-SPAM/TCPA enforcement — dedicated QA Agent + external compliance contractor for legal review.
Pro tier required, not overkill
- Shared sending = shared catastrophe. A Hatchstacks Base tier with multi-tenant sending infrastructure would mean one bad customer destroys every customer's reputation.
- Per-customer isolation is the business model, not an upgrade.
- This is why Cold Outbound is the textbook 🟢 archetype — the per-Mac-mini pattern is the only way to operate this responsibly at scale.
When a builder customer leaves, their Mac mini and everything on it transfers to them. This is a feature, not a failure mode. It's the moat for retention (we make it easy to leave, so they don't fear the lock-in) and the responsible-exit story for legal/insurance counsel.
Cold Outbound is the cash engine of the Ventura Trifecta. It funds others. It also shares the most reusable infrastructure: the Ventura crawlers, CSL verifier, and CEO Agent sales skills transfer across the whole portfolio.
| Asset | Used by |
|---|---|
| Ventura Assessor crawler | Website Landlord · ADU Directory · this project |
| Ventura Permits crawler | ADU Directory enrichment · this project |
| verify_csl_license | Website Landlord · ADU Directory · Vacation Rental |
| audit_deliverability | Website Landlord tenant notifications · ADU Directory digests |
| CEO B2B sales workflow | Vacation Rental hosts · Creators brand sales |
| From | → To |
|---|---|
| ADU Directory builders | Cold Outbound paying customers (same population) |
| Website Landlord tenants (defensible-space) | Potential Cold Outbound customers (cross-sell) |
| Ventura homeowners (prospect target) | Website Landlord leads · ADU Directory inquiries |
Terms specific to this project. Note that customer and tenant mean different things in Cold Outbound vs Website Landlord — careful when cross-referencing.
- Builder / Customer
- Our customer. An independent ADU builder paying us monthly for outbound campaigns. Gets their own Mac mini.
- Prospect
- Our outreach target. A Ventura County homeowner we email or SMS on the builder's behalf. Hasn't opted in — compliance carries every send.
- Lead
- Our deliverable. A prospect who replied positively and got qualified into a meeting on the builder's calendar.
- ADU
- Accessory Dwelling Unit — a secondary dwelling on a residential property. California has aggressive pro-ADU laws since 2020 and four new ones for 2026.
- JADU
- Junior ADU — capped at 500 sq ft. AB 1154 (2026) removed owner-occupancy requirements if separate bathroom.
- SB 543 / AB 462 / AB 1154 / SB 9
- The four 2025-signed California laws driving 2026 ADU demand. SB 543 = no school fees on small ADUs. AB 462 = 60-day Coastal permits. AB 1154 = JADU rules. SB 9 = lot splitting.
- CAN-SPAM
- Federal email law: unsubscribe link, sender ID, physical address required on every commercial email. Engineer Agent enforces at send time.
- TCPA
- Telephone Consumer Protection Act. Governs SMS. Requires documented opt-in for every recipient. Penalties are per-message — six figures fast if violated.
- CCPA / CPRA
- California consumer privacy regs. Data subject access requests handled within 45 days. Relevant because all prospects are California residents.
- DNC
- Do-Not-Contact list. Federal, state, and per-customer scoped suppression lists must all be honored before any send.
- Warm-up
- The 30-day domain reputation ramp from 50 → 300 sends/day. QA Agent gates progression on bounce/spam/reply metrics. Never skip.
- AI Receptionist
- The GHL AI Employee that handles inbound prospect replies — qualifies and books meetings. Backed by Sonnet for reasoning, Haiku for routing.
- SOC 2 Type 1
- Compliance audit some builder customers will require before signing. Target: complete within 6 months of first paid customer.
- Performance bonus
- Optional 2% of closed deals attributable to a campaign. Often exceeds monthly retainer. The alignment-of-incentives lever.