← Back to Daily Builds

Daily build note · May 5, 2026

HouseCall AI Receptionist

An AI phone receptionist built specifically for home service contractors (HVAC, plumbers, electricians, roofers).

Local Business Automations Focused local MVP built Public demo coming soon

What shipped

  • A focused local MVP for a home-service AI receptionist.
  • Dependency-free Node server in src/server.js.
  • Local JSON persistence in src/db.js.
  • Prompt builder for contractor-specific AI receptionist scripts in src/services/prompt.js.
  • Demo/live integration adapters in src/services/integrations.js.
  • Transcript generation and parsing in src/services/callParser.js.
  • Browser UI in public/ for onboarding, call testing, and lead management.
  • Smoke verification in scripts/smoke.js.
  • Environment template in .env.example.

Architecture

  • Used plain Node.js and browser JavaScript instead of Next.js, Supabase, Prisma, Tailwind, and shadcn because this build must run without network installs or external secrets.
  • Kept the core product loop end-to-end: contractor setup -> agent/demo number provisioning -> inbound call completion -> SMS summary -> lead dashboard.
  • Used data/demo-db.json as a transparent local store so a human can inspect and reset state easily.
  • Isolated Retell/Twilio/Stripe seams behind small adapter functions so demo mode can be replaced incrementally with live integrations.
  • Bound the server to 127.0.0.1 by default for local-only development.

Trimmed scope

The brief's production stack was intentionally reduced for this sandbox:

  • No Next.js App Router.
  • No Supabase Auth or Postgres schema.
  • No Prisma.
  • No real Stripe Checkout session.
  • No Twilio number purchase.
  • No Retell call answering in demo mode.
  • No Calendly OAuth.
  • No email notifications.
  • No Vercel deployment.

These were trimmed to keep the MVP coherent, runnable, and inspectable inside an empty build directory.

Limitations

  • Demo mode simulates voice calls rather than answering real phone calls.
  • Retell live provisioning is a best-effort adapter and still needs a production Retell LLM/voice configuration review.
  • Twilio live SMS is implemented, but phone purchase and voice forwarding remain mocked.
  • Stripe billing is represented as mock trial IDs.
  • Authentication is not implemented; the dashboard is a local sandbox.
  • The transcript parser is deterministic and intentionally simple; production should use a structured LLM extraction step with validation.

Verification

Ran:

``bash node --check src/server.js node --check public/app.js node --check scripts/smoke.js npm run smoke ``

The smoke check passed and verified:

  • Tenant onboarding creation.
  • Demo Retell agent ID creation.
  • Demo Twilio number assignment.
  • Simulated emergency transcript generation.
  • Lead parsing and persistence.
  • Contractor SMS preview generation.
  • Lead status update to booked.

The build sandbox denied listening sockets, so browser-server launch could not be kept running from this session. The app is still runnable locally with npm run dev in a normal shell.

Suggested next steps

  1. Replace JSON persistence with Supabase tables matching the brief.
  2. Finalize Retell agent payloads against the active Retell API and configure a tested hosted LLM prompt.
  3. Implement Twilio number search, purchase, and voice webhook forwarding.
  4. Add Stripe Checkout and subscription webhooks.
  5. Add magic-link auth for contractor dashboards.
  6. Add a real Retell webhook signature check and structured transcript extraction.
  7. Run a pilot with one contractor using manually verified Retell/Twilio setup before automating number purchase.