01 · Selected work

DOME + Claire

AI-enabled mattress comparison with structured catalogue data, guided sleep consultation, and measurable retailer handoff — built so the path can be audited.

  • Problem — Discovery was not becoming a trusted retailer handoff.
  • Built — Mattress catalogue + Claire sleep consult with an auditable path.
  • Result — Live V1 surface; early analytics only; not scaled revenue.
  • Your role — Solo conceptualised, designed, built, and managed.
Live: v1 catalogue + Claire consult Partial: v2 RAG / Stripe / x402 No scaled-revenue claim
Status

Live: v1 catalogue, guides, Claire consult proxy, Firestore, SendGrid, GA4, UTM clicks. Partial: v2 RAG / Stripe / x402 code is complete; deploy state and Stripe are unproven in-repo.

Role

Marco solo conceptualised, designed, built, and manages the system.

Evidence

Live surface dome.ml-nightworx.io. 17 retailer feed CSVs; the site claims 16 retailers / 171+ products. 48 guides plus agent manifests. GA4 90 days ending 15 Sep 2026: 49 active users, 93 new, 48s engagement, 643 events — early signal only. Mattress category context (~A$1.8B) is domain size, not DOME revenue.

Not claimed

Scaled revenue, booked ARR, or 7ARCH / ADE-F.T inside this programme — those are separate ML-Nightworx work.

The system

DOME (brand: Cubby House) is an Australian mattress-comparison platform. It ingests retailer product feeds into a normalised catalogue, renders AI-search visibility surfaces — guides, product pages, agent manifests — and tracks every outbound retailer click.

Claire is the AI Sleep Concierge on top: a conversational consult that collects a sleep profile (position, pain points, budget, household) and matches it against the catalogue. A request flows browser → Express API on Cloud Run (australia-southeast1) → server-side POST /consult proxy → Sleep Deep Firebase Cloud Function → scored matches with AUD prices → click-through via /api/track-click (302 + UTM) to the retailer, with the click logged and GA4-enriched.

Catalogue evidence: 17 retailer feed CSVs; the site claims 16 retailers / 171+ products. AEO/SEO: 48 guides, plus llms.txt, ai-plugin.json, OpenAPI (dome_mattress_au), MCP servers.json, UCP, and sitemap. Lead handoff uses UTM-stamped outbound links and a consultation reference code as a pay-per-lead primitive.

Claire’s design

v1 Claire is prompt-driven consultation, not a tool-calling agent: front-end conversational flow and slot collection; matching by the Sleep Deep function; guide content via a Gemini persona prompt. Four required slots. Guardrails include temperature 0.0, a medical disclaimer, rate limits, brand-name suppression in guides, and privacy limits on stored fields. HITL: admin guide edit; Firestore transcripts flagged audited: false pending review.

v2 (TypeScript) adds Vertex AI RAG retrieval, Gemini 2.0 Flash re-rank, heuristic-first slot extraction, and feature-flagged Stripe + x402 USDC payments. Hybrid scoring falls back to RAG order if the LLM re-rank is skipped.

  • Cloud Run · Express · Node.js
  • Firebase Cloud Function (Gen2 / Genkit)
  • Gemini 2.0 Flash
  • Cloud Firestore
  • GA4
  • SendGrid
  • Vertex AI RAG (v2)

Design decisions worth copying

  1. File-based catalogue over a database — zero-ops on Cloud Run.
  2. Server-side consult proxy — hide the agent endpoint, rate-limit, tight CORS.
  3. Hybrid scoring: RAG retrieve, LLM re-rank, RAG fallback.
  4. Heuristic-first slot extraction.
  5. Temperature 0.0 plus an engineered persona for SEO copy.
  6. HITL guide edit before/after publish.
  7. Consultation reference code as a measurable lead-handoff primitive.
  8. Agent-native discovery treated as first-class SEO.
  9. Feature-flagged payments, dark-shipped.

Production honesty

Live: catalogue, guides, Claire v1 consult proxy, Firestore, SendGrid, GA4, UTM clicks, agent manifests, Gemini guide generation, and admin HITL.

Partial: DOME v2 RAG / Stripe / x402 code is complete; deploy state is not verified from the repo. Stripe is unproven in-repo.

Known limits: in-memory click log (lost on redeploy); shared admin password; v1 scorer lives outside this repo; catalogue freshness cadence is unclear.

Open items, not claims: consultation/affiliate counts on analytics.ml-nightworx.io when that feed is live; Sleep Deep function internals if that repo is shared later.