RoofEra
AI-powered sales platform that acts as a 24/7 inside sales rep for roofing companies. It answers calls, texts leads, qualifies prospects, and books inspections autonomously.
- Built the entire platform from scratch: database, API layer, frontend, AI agents, and billing
- Multi-agent orchestration with 3 specialized AI agents handling the lead-to-booking pipeline
- RAG with optimized embeddings (Google text-embedding-001, 768 dims) for client-specific knowledge bases
- 24/7 autonomous operation across voice and SMS with zero human intervention
Tech Stack
Problem & Solution
Origin: RoofEra was born out of Peakleads. After building and automating the company's entire lead generation system, we wanted to productize our service as a SaaS and expand into inbound sales automation. RoofEra is that product.
Problem: Roofing companies lose leads because they can't respond fast enough, miss calls, and don't follow up consistently. Hiring inside sales reps is expensive and doesn't scale.
Solution: An AI platform with specialized agents that handle the entire lead-to-booked-inspection pipeline autonomously via voice and SMS, from initial contact through qualification to a confirmed appointment on the sales rep's calendar.
Architecture & Design Decisions
Multi-agent orchestration over monolithic agent
3 specialized agents (analyzer, messenger, scheduler) instead of one large agent. Each gets focused context and a single responsibility, improving reliability and making failures easier to isolate and debug.
Optimized embedding model selection
Evaluated models on Hugging Face's MTEB leaderboard. Chose Google's text-embedding-001 for best-in-class document retrieval performance at 768 dimensions, balancing accuracy with storage efficiency.
RAG over fine-tuning
Each client gets a custom knowledge base via website scraping, chunking, and vector storage. Onboarding a new client means building a new knowledge base, not retraining a model.
VAPI for voice AI
Used VAPI for speech-to-text and text-to-speech rather than building from scratch. Focused engineering effort on the orchestration logic and agent behavior that differentiates the product.
Google Cloud Run + Cloud Tasks
Serverless containers for auto-scaling with zero idle cost. Cloud Tasks for reliable async processing of follow-ups, notifications, and scheduled messages with built-in retry logic.
Multi-Agent Lead Pipeline
When a new lead fills out a form or clicks on an ad, it triggers a 3-agent pipeline. Rather than one monolithic agent handling everything, each agent specializes in one part of the process and receives only the context it needs to make the best decision.
Analyzer Agent
Receives all available context (lead data, conversation history, form submissions, timestamps) and determines the next action: send a message, schedule a follow-up, escalate to the sales rep, or stop.
Messenger Agent
If the analyzer decides to send a message, this agent drafts and sends the text. It has full context about the lead, the client's business, and the conversation so far to craft a natural, relevant response.
Scheduler Agent
Handles follow-up timing. If the lead doesn't respond, this agent determines when to re-engage and schedules the next touchpoint, ensuring persistent but non-aggressive follow-up cadences.
RAG & Knowledge Base
Every client gets a custom knowledge base so their AI agents can answer questions about their specific business: services, pricing, coverage areas, team structure, and workflows.
Ingestion
Scrape the client's website → chunk text from each page → generate embeddings using Google's text-embedding-001 (768 dims, selected from Hugging Face's MTEB leaderboard for top retrieval performance) → store in a vector database.
Retrieval
At query time, the agent's knowledge base tool embeds the question → runs a similarity search against the vector DB → returns the most relevant chunks as context for the LLM to generate an accurate, grounded response.
Prompt Engineering & LLM Observability
The quality of every AI agent lives and dies by its prompts. Across RoofEra's multi-agent system, prompt engineering required deep, iterative work. Each agent needed carefully crafted instructions, guard rails, and context engineering to make reliable decisions and produce natural, effective messages.
Iterative prompt development
Many iterations to get each agent's behavior right: tuning the analyzer to make accurate routing decisions, training the messenger to match each client's tone, and calibrating the scheduler for appropriate follow-up cadences.
Langfuse for LLM observability
Integrated Langfuse to trace and analyze every LLM call across all agents. This was critical for understanding how and why agents respond the way they do, surfacing prompt issues, identifying failure patterns, and systematically improving response quality based on real conversation data.
AI Agent Capabilities
Inbound Call Handling
AI voice assistant answers incoming calls 24/7, handles questions, collects lead details, and books inspections
Speed-to-Lead Texting
Instantly texts new leads from Facebook ads, Google ads, website forms, and other sources
Missed Call Text-Back
Automatically texts callers whose calls were missed to re-engage and book appointments
Automated Inspection Booking
Schedules appointments directly onto connected calendars with real-time availability checks
Lead Qualification
Collects structured data (project type, address, urgency, insurance status, photos, timeline) to deliver qualified appointments
Quote Follow-Up
Manages SMS follow-ups after quotes, handles objections, and prompts next steps
Review & Referral Requests
Texts customers post-job to request reviews and referrals, generating additional inbound opportunities
Results
24/7 autonomous
Agents handle calls and texts around the clock with zero human intervention
Instant response
Speed-to-lead texting engages new leads within seconds of form submission
Zero manual follow-up
Multi-agent pipeline handles qualification, booking, and re-engagement automatically
Minutes to onboard
New clients go live with a custom AI agent and knowledge base with no retraining needed
