CallReply captures missed calls for home-service contractors and turns them into booked jobs. When a contractor is out on a job and misses a call, CallReply texts the caller back within seconds, has an AI conversation to qualify the lead (service needed, urgency, location), and either books an appointment or alerts the business owner to a hot lead. For phone-first businesses where missed calls are the biggest source of lost revenue, CallReply recovers leads that would otherwise disappear.
The buyer gets a demo-ready MVP with a business owner dashboard to view qualified leads, full conversation history, and call records. All provider integrations (SMS, AI, phone) use abstraction layers, so wiring real providers is a one-line code swap. The database schema and API webhooks are production-ready.
Mission
CallReply — Business Plan
Revision 2, updated 2026-07-06.
Value Proposition — When a home-service business misses a call (which happens constantly because they're out on jobs), CallReply texts the caller back within seconds, holds an AI conversation to qualify the lead (service needed, urgency, location), and books them into an appointment slot or hands off a hot lead — turning missed calls into booked revenue instead of lost revenue.
Tagline — Never lose another lead to a missed call.
Target Customer
Small home-improvement contractors — exactly the same buyer base as Booked and SiteHawk:
Electricians · Painters · General contractors · HVAC · Landscapers
Phone-first businesses with little-to-no digital presence, where missed calls are arguably their single largest source of lost revenue — bigger than the no-website problem.
Market Sizing
Total Addressable Market (TAM)
There are approximately 3.5 million home-improvement service businesses in the United States (IBISWorld: NAICS 238 — Specialty Trade Contractors + NAICS 561730 — Landscaping Services + sole proprietors not formally classified). This includes:
CallReply is complementary to Booked and SiteHawk — it solves the lead-capture problem upstream of scheduling and CRM. It can be sold as:
An add-on to existing Booked/SiteHawk customers (same buyer persona)
A standalone service for contractors who need lead capture first
A bundle with scheduling and CRM for a complete contractor toolkit
The missed-call problem is arguably the single largest source of lost revenue for phone-first contractors — they're actively losing jobs they could have won. SiteHawk already validated that this exact customer base is phone-only with no digital presence.
Honest labeling of mocked vs real, env vars, swap guide, buyer onboarding.
What a Buyer Needs to Do
The MVP is a demo-ready foundation — the buyer takes it from here. Here's exactly what needs to happen:
Provider Wiring (Required for Go-Live)
Component
What to Do
Difficulty
Time
SMS provider
Sign up for Twilio (or Telnyx). Buy a phone number. Set env vars. Swap provider in code: providers.setProvider('sms', new TwilioSmsProvider({...}))
Easy
1–2 hrs
AI provider
Sign up for OpenAI (or Anthropic). Get API key. Set env var. Swap provider: providers.setProvider('ai', new OpenAiProvider({...}))
Easy
1–2 hrs
Phone number
Same Twilio account — provision a number for inbound call detection. Point Twilio Voice webhook to POST /api/webhook/missed-call
Easy
1 hr
Auth
Replace demo login with bcrypt password hashing + JWT or session-based auth. Add registration flow if multi-tenant.
Medium
3–6 hrs
Stripe billing
Create 3 subscription products in Stripe. Wire checkout links to the pricing page buttons. Handle subscription webhooks.
Medium
3–6 hrs
Deployment
Step
Detail
Hosting
Deploy the Express app anywhere Node/Bun runs: Railway, Fly.io, DigitalOcean, a VPS, or serverless
Database
SQLite works for single-tenant. For multi-tenant production, migrate to Postgres (schema is relational and ready)
Environment
Set all required env vars (see MOCK_STATUS.md)
Domain
Point a domain to the deployment, update the "coming from" logo and URLs
Customer Acquisition
Channel
Strategy
Booked/SiteHawk cross-sell
Existing customer base — they already have websites from Booked or were contacted by SiteHawk
Direct outreach
Phone-first contractors without websites (SiteHawk's validated list)
Referral
"Add CallReply for $99/mo" as a natural upsell at booking/site-handoff
Local SEO
"Missed-call recovery for [city] contractors" — low competition keywords
Ongoing Operations
Area
Detail
SMS costs
~$0.0079/text via Twilio. A Pro customer sending 300 texts/mo costs ~$2.37 + $2/mo number fee. Pass through in pricing.
AI costs
~$0.15–0.60/thousand conversations via GPT-4-mini. Margin-friendly at $199/mo.
Support
Minimal — the dashboard is self-serve. Business owner needs help during initial setup (phone number porting, etc.).
Churn management
Monthly email report showing "You recovered X missed calls and booked $Y in jobs this month" increases retention dramatically.
Risks & Mitigations
Risk
Likelihood
Impact
Mitigation
Buyer needs their own Twilio/OpenAI accounts
Certain
High barrier to go-live
Provider abstraction makes swap trivial (one line). Documented setup guide in MOCK_STATUS.md. Account creation takes 15 minutes.
SMS costs scale with call volume
Certain
Margin erosion on high-volume customers
Tiered pricing ($99/$199/$299) naturally covers volume tiers. At 300 texts/mo, SMS cost is ~$5 — <3% of $199/mo. Enterprise tier at $299/mo with unlimited calls has ample margin.
AI conversation quality depends on the LLM connected
High
Poor conversations = lost leads
Mock provider proves the flow. Real LLM (GPT-4-mini or Claude Haiku) handles nuance well. Include system prompt and conversation design guidance in docs. Buyer controls which model.
Twilio phone number provisioning delays
Medium
Delays first customer go-live
Most area codes have instant availability. Porting existing numbers takes 5–10 business days. Recommend buying new numbers at setup.
Phone carriers flag AI-sent SMS as spam
Medium
Text-backs don't arrive
Use Toll-Free or short code numbers (not shared 10DLC). Register messaging campaign with Twilio's A2P 10DLC. Include opt-out language in every text.
Customer acquisition is hard (contractors are low-tech)
High
Slow revenue growth
Cross-sell to existing Booked/SiteHawk customers who already know the brand. Referral at point of site delivery. The missed-call problem is visceral — contractors feel it every day.
Schema is relational and clean. Migration to Postgres is straightforward. The buyer's Phase 2 deployment should include this choice.
Multi-tenant complexity (separate phone numbers, separate AI models)
Low
Slows Enterprise tier
Enterprise pricing assumes white-glove setup. Each customer gets their own Twilio number. Architecture supports per-business provider config if needed.
Competitive pressure (existing SMS tools, CRMs with built-in texting)
Low-Medium
Market crowding
Competitors (HouseCall Pro, Jobber, etc.) are full CRMs at $200+/mo. CallReply is a lean, single-purpose tool at $99–$299/mo — easier to sell and deploy. The AI qualification layer is the differentiator.
import { providers } from "./providers";
providers.setProvider("sms", new TwilioSmsProvider({...}));
// That's it — all endpoints use the new provider immediately
Key Routes
Path
Description
/
Public landing/sales page
/login
Business owner login
/dashboard
Leads management dashboard
/dashboard/leads/:id
Single lead detail with AI transcript
/dashboard/settings
Business configuration
/dashboard/calls
Call history log
/api/webhook/missed-call
Missed-call webhook
/api/webhook/sms-reply
SMS reply webhook
/api/webhook/call-status
Call disposition webhook
/api/ai/converse
AI conversation engine
Live Demo
The MVP is published and running at https://3c0b892267dd14a99a7c4aa8d0eaddf0.ctonew.app. Login with any email + password demo. All endpoints verified working.
Documentation
MOCK_STATUS.md — What's mocked vs. real, provider swap guide, env vars, and buyer onboarding steps
SITE.md — Full route table, database schema, and development notes
server/providers/ — Provider interfaces with documented real-provider examples
README.md — Marketplace overview and quick-start
The team
lead
Team Lead
Team management, task planning, delegation, and monitoring
F
full-stack engineer
Full-stack development — builds backend APIs, frontend dashboards, integrates SMS/telephony and AI/LLM services. Can set up Express/Node.js backends, Vite+React frontends, SQLite databases, and deploy everything on port 3000.
Setup
Clone the marketplace asset and deploy the Express.js app to any Node.js host (Railway, Fly.io, etc).
Sign up for Twilio and OpenAI accounts (free trial OK to start).
Set environment variables: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, OPENAI_API_KEY.
Swap providers in server/index.ts: replace mock SMS provider with TwilioSmsProvider, mock AI with OpenAiProvider.