Nik Mirando · Applied AI / LLM engineer

I build production AI systems around how teams actually work.

The strongest proof is a commercial brokerage platform I shipped and hardened in a 6-week build cycle: custom portal, Supabase/Postgres deal database, CRM context, Google Drive document corpus, Notion knowledge, Slack-native tool-use agent, and production hardening.

Download resume
6 wks
flagship platform shipped + hardened
25
agent tools across live systems
2
live RootWurx client builds
RAG
Drive corpus + pgvector retrieval
Flagship case study

Brokerage OS: shipped and hardened in 6 weeks.

A commercial brokerage moved from scattered forms, spreadsheets, CRM records, Drive folders, Notion notes, and Slack workflows into a production operating system. I built the Supabase/Postgres backend, custom portal, commission and AR tracking, document intelligence, Follow Up Boss/Drive/Notion integrations, and the Slack-native AI layer that answers against the whole system.

DatabaseDeals, commissions, broker splits, payments, leases, audit history.
DocsDrive crawl, parsing, chunking, embeddings, pgvector corpus search.
CRMFollow Up Boss contacts, deals, calls, activity context.
AgentSlack-native Claude tool-use loop with cited answers.
HardeningRLS posture, read-only role, safety guards, parity tests, audit logs.
Second deployment
RCB: repeated the operating-system model for another brokerage.

A separate production build covering pipeline, deals, contacts, properties, leases, commissions, AR, statements, documents, reports, auth, uploads, and hardening. This is the repeatability proof: not a one-off KWC build.

View RCB proof →
Service-business pattern
InfluxLead: SMS lead agent with booking workflow.

Multi-tenant SMS/MMS lead response with Claude, Twilio, Google Calendar, contractor notifications, and admin text commands.

View architecture →

Other Technical Builds

GRESB RAG Agent
RAGproduction

RAG advisory agent — 2,021 knowledge-base chunks in pgvector, hybrid retrieval, multi-tenant firm isolation, what-if Excel scenarios via tool use, Teams bot.

View architecture →

ENERGY STAR MCP Server
open sourceMCP

Model Context Protocol server connecting Claude to the EPA ENERGY STAR Portfolio Manager API with 9 typed tools and aggregation endpoints.

View architecture →

ESG Due Diligence Engine
visionprototype

ASHRAE 211-aligned audit engine — Claude vision extracts structured JSON from PCA PDFs and utility bills, then runs ECM, BPS-fine, incentive, NPV/IRR/payback analysis.

View architecture →

Background

Five years leading ESG data and reporting — GRESB, UN PRI, SFDR, GHG Protocol Scope 1/2/3 — left me with a low tolerance for data that cannot be traced or trusted. I now build software to the same standard: RAG over vector databases, tool-use agents wired into operating systems, and multi-tenant platforms I deploy and operate myself.

RootWurx LLC2025 — Present
Founder & Principal Engineer · Remote
  • Build and operate private AI operating systems for two live clients (~$40K ARR); sole engineer across product, infrastructure, and delivery
  • Flagship platform (FastAPI · Supabase/pgvector · Next.js · Docker; ~11K LOC, 24 endpoints): deal pipeline, a deterministic multi-tier commission engine, AR, lease/document intelligence, and a content engine that auto-generates marketing on every deal plus a scheduled weekly market brief
  • Vera — a Claude tool-use agent in Slack: 25 tools across Postgres, a CRM, Notion, and Drive; reads on a read-only role + SELECT-only guard, writes through audited endpoints, and auto-authors reusable skills and scheduled cron jobs as it works
  • A per-client RAG knowledge layer over all of a client's documents (OCR, section-aware chunking, pgvector) so the agent answers from unstructured and structured data together
  • Production hardening: RLS with explicit deny policies, OAuth2 PKCE token rotation, an 86-test suite incl. a security-contract suite, CI/CD, 24/7 monitoring. Built a second client an entire operating system and CRM from scratch in ~2 weeks
Kayne Anderson Real EstateMar 2024 — Present
Associate, Sustainability · Data & Reporting Lead · Boca Raton, FL
  • Own the data and reporting behind the firm's ESG program across 1,100+ assets — the source of truth for GRESB, UN PRI, SFDR, and investor DDQs, where the data has to withstand third-party assurance
  • Led the full GRESB reporting cycle end to end — the firm's first 5-Star rating and 2× Sector Leader
  • Lead reviewer for all investor ESG DDQs at asset, fund, and firm level; directed UN PRI and SFDR Article 8 & 9 reporting
  • Built decarbonization baselines on GHG Protocol Scope 1/2/3 and the Power BI + EPA ENERGY STAR API + SQL analytics layer that automates KPI tracking across the portfolio
Verdani PartnersJun 2022 — Mar 2024
Senior ESG Data Analyst · Data Management Lead

Data management lead for the firm's largest client (1,400+ assets) in Measurabl; owned GRESB data integrity and submissions across 26 funds; ENERGY STAR benchmarking and certification.

FairsteadJan 2022 — Jun 2022
Energy and Sustainability Data Analyst

Portfolio-wide energy and cost data management, improving accuracy by 65% within first month. Energy conservation analysis and annual ESG reporting.

Skills & Tools

Data & ReportingGHG Protocol (Scope 1/2/3), GRESB, UN PRI, SFDR (Art. 8 & 9), TCFD, ENERGY STAR / Portfolio Manager, data QA & assurance, Measurabl, Power BI, SQL AI & LLMClaude (Sonnet/Opus/vision), OpenAI embeddings, RAG (pgvector + HNSW, hybrid & indicator-aware retrieval), tool use / agentic loops, Model Context Protocol (MCP), prompt engineering with hallucination guardrails, prompt caching DevelopmentPython (FastAPI, SQLAlchemy, async), TypeScript/Node.js, PostgreSQL, Supabase (pgvector), Docker, Nginx, DigitalOcean, GitHub Actions CI/CD IntegrationsOAuth2/PKCE, webhooks (Stripe, Twilio, Postmark), Slack SDK, Twilio SMS/MMS, Follow Up Boss, Notion, Google Drive/Calendar, EPA ESPM API Verificationpytest, security-contract tests, parity tests, retrieval test suites, JSONB audit logging, per-call cost telemetry

Education

Stevens Institute of TechnologyMay 2021

M.S. Sustainability Management

Rowan UniversityMay 2019

B.A. Environmental Studies · Minor: Planning & Sustainable Built Environments

ENERGY STAR MCP Server

Open-source Model Context Protocol server connecting Claude to the ENERGY STAR Portfolio Manager API. Enables natural-language querying of live portfolio energy data — property info, consumption metrics, benchmarking scores, and building characteristics.

open sourceMCPPython

Architecture

Claude Desktop
or any MCP client
MCP Protocol
stdio transport
ESPM MCP Server
Python · typed tools
ENERGY STAR API
Portfolio Manager

Tool Catalog — 9 typed tools

get_account
Account info — name, organization, and whether you're on the test or live environment
params: —
list_properties
List every property ID in the account — the discovery entry point
params: —
get_property
Property details — name, address, gross floor area, primary function, year built
params: property_id
get_property_metrics
ENERGY STAR score, site & source EUI, GHG emissions; defaults to last full year
params: property_id, year?, month?
list_property_groups
List property groups (by fund, asset type, management style) and their IDs
params: —
get_property_group
Name and details of a specific property group
params: group_id
get_group_score_summary
Avg / min / max ENERGY STAR score for a group, with a per-property breakdown
params: group_id
get_portfolio_summary
High-level roll-up across the whole portfolio — scores & EUI (samples up to 50)
params: —
get_energy_star_certification_summary
Counts properties actually certified in a year, using certification metrics not score alone
params: year

Why This Matters

ENERGY STAR Portfolio Manager holds data on 600,000+ commercial buildings — but its interface requires manual queries and CSV exports. This MCP server lets any Claude-powered workflow access that data through natural language. Ask "What's the EUI trend for my NYC office portfolio?" and get structured data back, ready for analysis. Published open-source for the sustainability community.

GRESB.AI — RAG Advisory Agent

AI-powered GRESB Real Estate Assessment advisor. RAG pipeline over the complete 2026 GRESB standards, historical scoring documents, and firm-specific portfolio data. Delivers indicator-level guidance, what-if scenario modeling with Excel export, and ASHRAE EUI threshold analysis.

RAGpgvectorClaude APIStreamlitTeams Bot
2,021
Knowledge chunks
644
Indicator pages
1,100
ASHRAE EUI targets
3
Interfaces

RAG Pipeline

GRESB GitBook
2026 standards
Scraper
scraper.py + scrape_roadmap.py
Chunk & Embed
ingest.py · OpenAI embeddings
Supabase pgvector
HNSW index
User Query
Hybrid Retrieval
semantic + keyword
Context Assembly
core.py · build_context()
Claude Sonnet
ask_claude() + tool_use
Response
+ scenario Excel

Knowledge Base Composition

644 chunks
2026 indicator pages — every indicator (LE1–LE5, PO1–PO3, RM1–RM7, EN1, GH1, etc.) split by section: intent, scoring, validation, references
1,245 chunks
Historical docs — 2024 + 2025 scoring documents and reference guides, chunked with sliding window
253 chunks
Roadmap & strategy — Foundation Roadmap 2026, Standard Updates PDFs, Climate Action Plan
112 chunks
Firm data — synthetic portfolio (30 assets). Multi-tenant isolation by firm_id

Interactive Demo

GRESB.AI — Assessment Advisor
U
What evidence is required for LE1?
G
LE1 (Leadership - Sustainability Commitments) requires documented evidence of ESG commitments at the entity level. Specifically: a formal sustainability policy or mission statement, board or C-suite level ESG oversight documentation, and evidence that sustainability commitments are publicly disclosed. The key distinction in the 2026 assessment is that commitments must be entity-level, not just fund or portfolio-specific.

Delivery Interfaces

Streamlit App
app.py · chat UI + file downloads
REST API
api.py · FastAPI · POST /ask
Teams Bot
teams_bot.py · Azure Bot Service

ESG Due Diligence Engine

Desktop audit engine producing outputs equivalent to an ASHRAE Level II energy audit from three inputs: a PCA report, 12 months of utility bills, and basic property data. Models 30+ ECM categories across 10 building systems, forecasts GHG emissions using eGRID and NREL Cambium, and calculates BPS fine exposure by jurisdiction.

ASHRAE 21115 data sourcesClaude APIFastAPI

Analysis Pipeline

PCA Report (PDF)
+
Utility Bills
+
Property Data
Claude PDF Parser
pca_parser.py · bill_parser.py
Archetype Matcher
DOE prototype · climate zone
Calibration
calibrator.py · actual vs model
↓ calibrated baseline
ECM Runner
30+ measures · 10 systems
CapEx · savings · payback
GHG Emissions
eGRID + NREL Cambium
Scope 1 + 2 trajectory
BPS Exposure
jurisdiction fine schedules
exceedance × rate × GFA
Water Savings
WaterSense fixtures
+ DHW energy linkage
Consolidated Report
CapEx + savings + GHG + BPS + incentives

Accuracy Targets (vs ASHRAE Level II)

±20%
CapEx estimates
±15%
Energy savings
±10%
GHG reduction
±5%
BPS fine exposure

ECM Categories

Lighting
Interior/exterior LED, occupancy sensors, daylight harvesting
HVAC
ASHP RTU, VRF, PTHP, condensing boilers, split systems
DHW
Heat pump water heaters, condensing boilers, tankless, pipe insulation
Envelope
Air sealing, insulation upgrades, cool roofs, window replacement
Controls
Smart thermostats, BAS upgrades, demand response
Renewables
Rooftop PV (no-export, ballasted), PV + battery storage

Data Sources (15 integrated)

ASHRAE Standards 211, 90.1, 105, 100 · DOE Commercial Prototype Building Models · EIA CBECS & RECS · EPA eGRID · EPA ENERGY STAR Portfolio Manager · WaterSense Standards · DOE BPS Policy Tracker · DSIRE Incentives Database · RS Means Construction Cost Data · NREL Cambium Dataset · Engineering firm benchmark data (2025)

Brokerage OS — shipped and hardened in 6 weeks

The flagship RootWurx build: a production commercial brokerage operating system with a custom portal, Supabase/Postgres deal database, commission and AR tracking, lease/document intelligence, Follow Up Boss context, Google Drive corpus, Notion knowledge, Slack delivery, and a tool-use agent layer on top. A deal entered once fans out across the business: financial tracking, document workflows, marketing generation, Slack alerts, and searchable institutional memory.

FastAPISupabase/pgvectorClaude APINext.jsDocker
6 wks
shipped + hardened
73
deals tracked in seed set
100
Broker splits
25
agent tools

Deal Lifecycle

Draft
Submitted
Ops Review
Approved
In Collections
Closed

Database Schema

agents
id uuid PK
first_name, last_name
division (FL|NC|NE|TX|OK)
team_leader_id → agents
is_partner, llc_partner_code
split percentages
deals
id uuid PK
address, client_name
status (6 stages)
asset_class (7 types)
sale_price, lease terms
rainmaker_agent_id → agents
AI deal_summary
commissions
id uuid PK
deal_id → deals (1:1)
commission_rate_pct
total_gci, net_commission
external_referral, house_fee
broker_splits
id uuid PK
deal_id → deals
agent_id → agents
alloc_pct, gross
deductions, take_home
lead_origination
payments
id uuid PK
deal_id → deals
amount, status
pending → received →
deposited → disbursed
contributions_llc
id uuid PK
deal_id → deals
partner (a|b)
70/30 split calc
mc_cut, take_home_70
transfer tracking
cost_of_sale
id uuid PK
deal_id → deals
category (9 types)
signs, surveys, photos
matterport, floor plans
changelog
id uuid PK
table_name, record_id
action (create|update|delete)
diff_json, notified_ops
changed_by_agent_id

System Architecture

React Portal
Supabase
PostgreSQL · Realtime
Edge Functions
Vera Agent
25-tool tool-use · 5 live sources
Claude API
deal summaries · content
Google Forms
webhook intake
Email (Resend)
notifications · reports

Live Demo — One Record, Every System

A deal entered once fans out across the whole back office. Switch tabs to see each connected capability — the fan-out, the live pipeline dashboard, lease abstraction, and auto-generated marketing.

One closed deal, entered once — six systems update automatically.
northbridge.platform · one record → six systems
1 deal entered
Cardinal Pointe
Multifamily · 184 units · $42.8M
Closed by Marco · 04/16
fans out automatically →
Announcement graphic
Branded announcement card rendered
Social posts
LinkedIn + Instagram drafted
Slack alert
Posted to #deals for the team
Accounts receivable
Receivable + draw schedule tracked
%
Commission tracking
Splits & payouts calculated
Proactive AI alerts
Lease expirations & overdue AR flagged
Pipeline, lease tasks, and AI document parsing in one operating dashboard.
cre.operating · pipeline
Pipeline · Q4 2026
Active Deals
All Mine Closing
42
Active deals
18
Under contract
$24.7M
Total volume
Volume · last 12 wks ▲ 18.4%
Cardinal Pointe
Multifamily · 184 units
Underwriting
Marco
$42.8M
Mason Industrial
Industrial · 220k sf
LOI Signed
Priya
$28.4M
Ridge & Vine
Mixed-use · 96k sf
Diligence
Marco
$19.1M
Holloway 12
Office · 64k sf
Sourcing
Sam
$11.6M
RW
Agent · just now · Mason Industrial
Parsed PSA — 14 line items posted to Diligence. 2 require review: [CAM cap] & [exclusivity radius].
A lease PDF parsed into a structured abstract, with an LOI drafted from the same data.
lease-intelligence · abstract + LOI
Meridian_Lease.pdf · 38 pp
Extracted abstract
TenantMeridian Health LLC
PremisesSuite 400 · 6,200 RSF
Term7 years
CommencementAug 1, 2026
Base rent$28.50 / RSF NNN
Escalations3% annual
RenewalTwo 5-yr options
TI allowance$45 / RSF
Security2 months
Drafted LOI
Meridian Health to lease 6,200 RSF (Ste 400), 7-yr term at $28.50/RSF NNN, 3% annual bumps, $45/RSF TI, two 5-yr renewals. Ready for review.
The moment a deal closes, the announcement graphic and posts write themselves.
content-engine · auto-marketing
Deal closed · generating assets…
OFFICE
TENANT
REPRESENTED
12,500 SQFT
Northbridge Commercial
1450 Commerce Blvd, Suite 200 · Austin, TX (sample)
LinkedIn post · drafted
NC
Northbridge Commercial
Just now · 🌐
Proud to announce the closing of Cardinal Pointe — a 184-unit multifamily community in Tampa, FL. Our team represented the buyer from underwriting through close at $42.8M. Another result built on disciplined, tenant-first representation. #CRE #Multifamily #TampaRealEstate #JustClosed

Verification & Safety

86 automated tests across the platform — the commission math, lease extraction, the agent's tool-use parity against the legacy path, and a security-contract suite that fails closed · a changelog table that records a JSON diff of every record mutation · a read-only database role for the agent (SELECT-only, enforced at the Postgres layer) · OAuth2 PKCE with single-use refresh-token rotation, hardened to volume-mounted persistence after a real production incident.

Second Client — Their Entire System of Record

The same foundation became a second firm's entire system of record. In about two weeks I stood up a 16-module operating platform with its own row-level-security model and 19 database migrations — their deals, contacts, properties, leases, commissions, AR, statements, documents and reporting all live in one place now.

Pipeline & deals
pipeline, deals, properties, contacts, agents — the full origination-to-close workflow
Money
commissions, ar (accounts receivable), statements — splits, payouts and owner statements
Documents & leases
documents, leases, tracker — abstraction and document management
Reporting & ops
reports, dashboard, feedback — analytics and the team's daily view

16 frontend modules · 19 migrations · own RLS + explicit-deny policies + activity-trigger lockdown

RCB — second brokerage operating-system deployment

A separate RootWurx client build proving the brokerage operating-system pattern was repeatable, not a one-off. RCB required its own workflow, schema, role model, auth path, upload controls, reporting surface, and launch hardening across deals, contacts, properties, leases, commissions, AR, statements, documents, and dashboards.

Next.jsSupabase/PostgresAuth + RLSReporting
16
operating modules
21
database migrations
RLS
client-specific access model
Live
production-hardening path

Why it matters

The first brokerage build proved I could ship a complex operating system. RCB proved I could adapt that operating model to a different brokerage context: different entities, workflows, permissions, reports, imports, and launch constraints. The architecture repeated; the implementation was client-specific.

System surface

Pipeline & deals
Pipeline views, deal records, deal detail pages, agent assignment, stage movement, export paths, and activity history.
Contacts & properties
CRM-like contact records, property records, deal-contact relationships, notes, tags, and linked documents.
Leases & documents
Lease module, document vault, uploads, categories, linked entities, import workflows, and lease alert cron path.
Money
Commissions, AR, statements, broker visibility, payout movement, and exportable reporting.
Reports
Production reports, forecast reports, AR aging, expirations, broker reports, filters, and CSV downloads.
Security
NextAuth login, Google sign-in support, active-agent mapping, RLS posture, explicit deny policies, upload hardening, activity-trigger lockdown.

Repeatability proof

Brokerage workflow
Schema + portal
Auth + permissions
Reports + launch
Hardened client OS

The point is not that RCB reused a template unchanged. The point is that the same product thesis held up under a second real client: brokerages need one operational backbone for deals, money, documents, reporting, and team workflow.

Slack-native AI layer over the brokerage OS

The agent layer originally had an internal name, but the important part is the architecture: Claude tool use inside Slack, connected to the live deal database, CRM, Notion, Google Drive, and document corpus. It answers with citations, carries persistent memory, runs scheduled digests, and writes reusable skills as it learns recurring workflows.

Claude tool useself-improvingproductionSlack
25
Tools
4
Live data sources
≤8
Tool calls / question
100%
Answers cited

Tool-Use Loop

@mention in Slack
Claude tool-use loop
≤8 calls · retry on transient · cached
Answer in-thread
with citations
Supabase deal DB
SELECT-only
Follow Up Boss CRM
Notion
Google Drive

Tool Registry — 25 tools across 5 systems

Supabase deal DB · 2
db_query (SELECT-only, guarded), db_schema
Follow Up Boss CRM · 6
fub_find_user, fub_list_users, fub_get_deals, fub_get_calls, fub_find_person, fub_get_person_activity
Notion · 3
notion_search, notion_get_page, notion_query_database
Google Drive · 4
drive_search, drive_list_folder, drive_get_file_text, drive_get_deal_folder
Knowledge corpus (RAG) · 1
corpus_search — pgvector retrieval over the firm's own documents, SOPs and deal history. The data moat every other tool answers against.
Self-authored skills · 2
skill_read, skill_write — when it works out a reliable way to do something, it writes that method back as a reusable skill, preloaded on the next run
Saved queries / digests · 6
save_query, list_saved_queries, run_saved_query, delete / pause / resume_saved_query
Scheduling awareness · 1
list_scheduled_jobs

Live Demo — Vera in a Thread

Vera is a Claude tool-use agent living in Slack — a 25-tool registry across five systems (Postgres deal DB, CRM, Notion, Drive, and a RAG corpus of the firm's own documents). It answers plain-English questions in-thread with citations pinned to the exact source, carries persistent memory, and runs scheduled digests (e.g. weekly AR aging). Safety by construction: a read-only database role, an 8-tool-call cap, and every tool call audited.

northbridge.slack.com › Vera
V Vera APP
MC
Maya Chen8:42 AM
@Vera what's our procedure when a client misses two payments?
Vera is searching your docs…
V
VeraAPP8:42 AM
Send the Notice of Delinquency, pause service for 7 days, then route to Collections.
Sources · 6 cited
[1] collections.md §3.2[2] MSA §7[3] accounting.md §1.4[4] #ops-archive[5] counsel email[6] CRM · accounts
✅ 2👍 1
Message Vera+ @ 📷

It Writes Its Own Skills

Works a problem
figures out the right tool sequence
skill_write
persists the method to its skills table
Next run, skill_read
preloaded into the system prompt

Vera isn't a fixed prompt. When it works out a reliable way to answer a recurring kind of question — which tables to join for AR aging, how a given firm labels its deal stages, a teammate's standing preferences — it calls skill_write to persist that method as a reusable skill in its own table. On the next invocation those learned skills, per-user preferences and past failures are read back and preloaded into the system prompt. The agent gets more capable the longer a team uses it, without me redeploying anything.

Proactive — Scheduled Digests

“Save this as ‘Monday AR aging’ and run every Monday at 9am” is stored as a saved query; an APScheduler cron inside the container re-runs the full tool-use loop and posts the result to the channel. An optional condition-SQL pre-check skips the run — and the LLM cost — when there's nothing to report. Any teammate can trigger a saved digest on demand.

Safety & Verification

Read-only Postgres role and a SELECT-only guard at the tool layer — writes are rejected even if the guard is bypassed · 8-tool-call cap per question · within-question result cache (a repeated lookup hits the cache, not the API) · retry-once on 429/5xx before counting against the cap · per-tool result truncation · every tool call audited to a JSONB trace. Shipped behind a feature flag with a 15-question parity suite proving the new tool-use path matched the legacy path before cutover.

InfluxLead — AI SMS Lead Response

When a lead comes in from any source — web form, ad, missed call, referral — InfluxLead responds via SMS in seconds using a named AI agent. Qualifies the project through natural conversation, accepts MMS photos for AI damage analysis, scores leads, and auto-books estimates into Google Calendar. The contractor manages everything via text commands to the same Twilio number.

Twilio SMS/MMSClaude SonnetGoogle CalendarMulti-tenant

Live Demo — Lead Conversation

Scope, budget, appointment — handled entirely by the AI. The contractor gets a booked calendar event; the lead gets a confirmation text. Zero human involvement until the site visit.

Customer's phone
9:41
SRSummit Remodel ⌄
Today 8:42 PM
hey — looking for a quote on a bathroom remodel. master bath, ~80 sq ft
Hi! Happy to help 👋 Keeping the existing layout, or moving plumbing?
same layout, keeping plumbing where it is
Great. Finish level — builder, mid, or high-end?
mid finish. tile shower, double vanity
Got it. Is this your primary residence or a rental?
primary
And what's your ideal window to start?
next month if possible
Perfect. For that scope, typical range is $18–26k, about 4–6 weeks. Want me to grab a site visit? I've got Thu 10 AM or Fri 2 PM.
thursday 10 works
Delivered
You're booked for Thu 10 AM ✓ Calendar invite sent. Our PM will confirm Wed.
APR16
Site Visit · Maya Chen
Thursday, 10:00 – 10:45 AM
✓ Added to Google Calendar
+Text Message
RWRootWurx · Bookings ⌄
Today 8:43 PM
✅ New booking — Maya Chen · bathroom remodel (master, ~80 sf). Mid finish, keeping plumbing. Est. $18–26k, 4–6 wks.
APR16
Site Visit · Maya Chen
Thursday, 10:00 – 10:45 AM
✓ Added to Google Calendar
Site visit's on your calendar. I'll text Maya a reminder Wed AM.
👍 nice
+Text Message

Lead Response Flow

Lead arrives
form · ad · missed call · referral
InfluxLead intercepts
webhook · Mailgun · Twilio
AI responds <60s
named agent · Claude Sonnet
↓ natural conversation
AI qualifies
project type · budget · timeline
Lead scored
hot · warm · cold
Auto-books estimate
Google Calendar API
hidden [BOOK:N] tags
Contractor notified
SMS · hot lead alert

Admin SMS Interface

status
Weekly summary — new leads, hot leads, booked, upcoming estimates
hot leads
Top 5 hot leads with name, project type, phone number
schedule
Today's appointments + this week's upcoming bookings
free-text intake
"New lead Mike 561-555-1234 needs roof repair" → Claude parses, creates lead, triggers AI outreach automatically

Multi-Tenant Architecture

Each contractor is a single database row with their own Twilio number, AI agent name, custom system prompt, Google Calendar connection, admin phones, and service area. New clients require zero code changes — add a contractor record and buy a Twilio number. The AI agent knows the business name, services offered, service area, and operating hours from the contractor's system prompt.

Infrastructure

Multi-tenant on a DigitalOcean VPS · FastAPI on port 8000 · PostgreSQL · Twilio A2P 10DLC (pending carrier approval) · Mailgun inbound email parsing · Claude Sonnet with vision (MMS photo analysis) · Google Calendar OAuth · Nginx + SSL · systemd · Admin SMS commands via Claude intent classification