Selected Work

What we've built.

Real AI systems, shipped and running. Here is what they replaced, what they do now, and how they were made.

0
Systems shipped
0
AI agents, one cockpit
0
Tests, revenue engine
Multi-Tenant STR SaaS

STR Secrets

Five AI agents per operator, one multi-tenant dashboard, running every night.

The Problem

Operators were stitching together spreadsheets, PMS exports, and guesswork. STR Secrets puts a full AI operations team behind one login, isolated and secure per workspace.

The Build

A multi-tenant SaaS where each short-term-rental operator connects their PMS and tools, then five specialist AI agents (Revenue, Guest, Operations, Analytics, Marketing) analyze pricing, messaging, turnovers, and market data, coordinated by an orchestrator, streamed live, and swept nightly.

Before
  • Pricing, messaging, and ops run by hand
  • Data scattered across PMS and spreadsheets
  • No isolation or security for client data
  • Insights that are always a day behind
After
  • Five specialist agents run the operation
  • One dashboard connects PMS, pricing, and market data
  • Per-tenant encrypted credentials, RLS isolation
  • Nightly automation plus live run streaming
How it was built

Built a strict multi-tenant backend

Express and Supabase Postgres with row-level security, a 5-layer architecture, and AES-256-GCM per-tenant credentials.

Coordinated five agents with an orchestrator

Revenue, Guest, Operations, Analytics, and Marketing agents run on schedule and stream every run live over Socket.io.

Shipped as a real product

React 19 dashboard, Stripe billing, and CI/CD that auto-deploys on merge to main.

React 19Node 22ExpressSupabaseSocket.ioStripeOpenRoutern8n
0
AI agents per operator
Nightly
automated sweep + live stream
Isolated
per-tenant, RLS-enforced
Live
in production, CI/CD
AI Operations Platform

LegacyRnR Control Center

Nineteen AI agents for one property-management operation, under a single cockpit.

The Problem

A growing property-management operation had 19 distinct jobs to automate and no safe way to run AI against live guest and reservation data. The cockpit runs every agent with real logic and human approval gates.

The Build

A unified command center for LegacyRnR that runs 19 specialist AI agents on top of Guesty: guest, owner, and operations agents grouped into orbits, with a dual-approval gate on anything touching money or compliance, an immutable activity log, and three external portals.

Before
  • 19 manual jobs across a property operation
  • No safe way to run AI on live guest data
  • No audit trail for automated actions
  • Owners and guests on disconnected tools
After
  • All 19 agents run under one command center
  • Guesty wired live for real listings and reservations
  • Dual-approval queue: nothing auto-applies on money
  • Immutable activity log and three external portals
How it was built

Turned specs into 19 real agents

Built from the client's agent build list into a typed agent runtime with training briefs and real run logic, no mock data.

Wired Guesty live behind a snapshot adapter

A cached snapshot maps live listings and reservations into every agent, with writes gated behind approval.

Gated every sensitive action

A dual-approval queue and append-only activity log so money and compliance actions are human-approved, never auto-applied.

Next.js 14TypeScriptSupabaseInngestClaudeGuesty
0
AI agents, one cockpit
Guesty
wired in live
Dual
approval on money + compliance
0
guest, owner, education portals
STR Management Automation

West Properties Ops Platform

Eight AI agents running the busywork of a 27-property management company.

The Problem

A management company with revenue-share partners was losing its team to reporting, messaging, and copy-paste work between tools. The platform runs those jobs automatically, with a human approval loop in Slack before anything reaches a partner or guest.

The Build

A single-client operations platform for West Properties: eight specialist agents covering guest messaging, review intelligence, partner statements, revenue sheets, an AI revenue manager on top of PriceLabs, daily booking reports, a Slack-to-Monday bridge, and a content engine, wired into Guesty for Pros, per-partner QuickBooks, and Google Sheets.

Before
  • Partner statements assembled by hand every month
  • Guest messages and reviews handled one by one
  • Pricing managed ad hoc across 27 properties
  • Team copy-pasting between Slack, Monday, and Sheets
After
  • Statements generated and routed for approval automatically
  • Guest messaging and review intelligence run as agents
  • Daily and weekly AI pricing scans on top of PriceLabs
  • Slack and Monday bridged, reports delivered daily
How it was built

Built a strict layered backend

Adapters, controllers, services, and repositories with per-partner QuickBooks OAuth and Supabase Vault for secrets.

Shipped agents behind approval loops

Each agent runs in shadow mode first; statements and pricing pushes require named-human approval in Slack before anything sends.

Automated the calendar

n8n crons drive daily 30-day and weekly 90-day pricing scans, booking reports, and statement cycles.

NodeExpressSupabaseGuestyPriceLabsQuickBooksSlackn8n
0
AI agents, one platform
0
properties under management
0
tests behind the platform
Slack
approval loop before anything sends
STR Operations Platform

Stay With Somos Platform

Seven AI agents and one dashboard for a mixed arbitrage-and-management portfolio.

The Problem

Operators running both arbitrage units and managed properties get statements wrong with off-the-shelf tools: flat rent lines for one model, commission and expenses for the other. This platform models both per property, per owner.

The Build

A full operations platform for Stay With Somos: seven specialist AI agents (guest messaging, revenue intelligence, analytics, operations, marketing, market comping, and lead response) plus an accounting engine posting across two QuickBooks companies, all behind a seven-page dashboard, with owner statements that correctly handle a portfolio mixing rental arbitrage and managed properties.

Before
  • Two QuickBooks companies reconciled by hand
  • Owner statements broke on mixed business models
  • Guest messaging and pricing run manually
  • Leads followed up whenever someone had time
After
  • Accounting agent posts across both ledgers
  • Per-property statements: flat rent or commission, correctly
  • Seven agents run the day-to-day operation
  • Lead agent responds and follows up automatically
How it was built

Integrated the full stack

Guesty, dual-realm QuickBooks, PriceLabs, GoHighLevel, Stripe, and Turno wired in behind one backend.

Modeled the mixed portfolio

Per-property business-model rules so arbitrage units bill flat monthly rent while managed units carry commission and expenses.

Ran shadow mode before cutover

Every agent message and posting visible for review before the system went live with real guests and real money.

NodePythonSupabaseGuestyQuickBooksPriceLabsGoHighLevelStripe
0
AI agents behind one dashboard
0
QuickBooks companies, one view
Mixed
arbitrage + managed statements
0
dashboard pages, live data
STR Revenue Automation

Solnest Automation Stack

Revenue intelligence, pricing reports, and market scraping, on autopilot.

The Problem

Revenue management and market research for short-term rentals is hours of manual scraping and spreadsheet work every week. This stack runs it automatically and delivers decisions, not raw data.

The Build

The automation stack powering Solnest Stays: a multi-agent revenue engine, a PriceLabs agent that scrapes rates weekly and emails AI pricing reports, plus Airbnb and Instagram scrapers that feed Claude analysis, all wired through n8n.

Before
  • Hours of manual PriceLabs and market research weekly
  • Pricing decisions made on gut feel
  • Competitor and review data pulled by hand
  • No repeatable revenue process
After
  • A battle-tested revenue engine makes the calls
  • PriceLabs scraped weekly, AI reports emailed automatically
  • Airbnb and Instagram data pulled via Apify, analyzed by Claude
  • One repeatable, automated revenue workflow
How it was built

Built a tested revenue engine

A Python pricing engine of 12 modules backed by 164 tests turns market data into pricing decisions.

Automated the weekly pricing report

A Node agent scrapes PriceLabs, generates an AI pricing report, and emails it, no manual pull required.

Fed the agents live market data

Apify scrapers pull Airbnb listings, reviews, and Instagram profiles into Claude for analysis.

ClaudePythonNode.jsPriceLabsApifyn8n
0
tests behind the revenue engine
0
pricing decision modules
Weekly
AI pricing reports, emailed
Claude
analysis on scraped market data
MedSpa Automation

Patient Concierge Agent

87% booking rate from inbound leads. Fully hands-free.

The Problem

The front desk was losing 40% of leads to voicemail during peak hours. The concierge agent now captures every inquiry within seconds and books them directly into the calendar.

The Build

An AI concierge that handles appointment scheduling, treatment consultations, pre-care instructions, and post-treatment follow-ups for a luxury MedSpa - across SMS, email, and web chat simultaneously.

Before
  • 40% of leads going to voicemail during peak hours
  • 2-person front desk overwhelmed by phone + walk-ins
  • Follow-ups falling through the cracks
  • $18K+ in potential revenue lost monthly
After
  • Every inquiry captured in under 3 seconds
  • 87% of leads converted to booked appointments
  • Automated pre-care and post-treatment follow-ups
  • Front desk focuses on in-person experience only
How it was built

Audited the lead funnel

Tracked where inquiries came from and where they dropped off - voicemail was the #1 killer.

Built multi-channel concierge

SMS, email, and web chat all handled by one AI agent with full treatment knowledge.

Connected to Cal.com

Appointments booked directly into the clinic's calendar - no human handoff needed.

Claude AITwilioCal.comn8nAirtable
0%
Lead-to-booking rate
2.4x
More bookings/mo
0
Missed inquiries
$0K
Monthly revenue added
MedSpa Finance AI

MedSpa Financial Automation

The monthly financial close of a med spa, fully automated with an AI CFO.

The Problem

Clinic owners were losing 3-4 days a month to manual bookkeeping across Jane, RepeatMD, and Stripe - and still had no clear picture of the numbers. The close now runs itself, with a human approving before anything posts.

The Build

A financial automation system that replaces days of fractional-CFO work every month: bots collect data from the booking, membership, and payment systems, journal entries post to QuickBooks automatically, an 18-KPI engine feeds a nine-page dashboard, and Claude writes plain-English CFO commentary delivered as a monthly report. Now running for two clinics.

Before
  • 3-4 days of manual close work every month
  • Data scattered across Jane, RepeatMD, and Stripe
  • Hundreds of SKUs reconciled by hand
  • Numbers arrived too late to act on
After
  • Automated collection, matching, and posting
  • 18 KPIs and a 9-page dashboard, always current
  • AI CFO commentary explains the month in plain English
  • Human-in-the-loop approval before anything posts
How it was built

Automated the data collection

A Playwright bot pulls Jane reports; RepeatMD and Stripe flow in through APIs, all landing in Supabase via n8n.

Built the accounting agents

Expense review, GL validation, deposit matching, and vendor-bill agents - each with confidence scoring and human approval before QuickBooks posting.

Shipped the AI CFO layer

An 18-KPI engine feeds a React dashboard and a Claude-written monthly commentary, delivered as a PDF report.

n8nSupabaseQuickBooksStripePlaywrightClaudeReactGoHighLevel
0
KPIs computed monthly
0
journal entries auto-posted to QuickBooks
0
dashboard pages, live financials
0
clinics running in production
Restaurant AI

Voice Ordering Agent

Handles 120+ calls per day. Never puts anyone on hold.

The Problem

The restaurant was losing $3,200/week in abandoned phone orders during the dinner rush. Staff couldn't answer fast enough. The voice agent now handles the entire queue.

The Build

A voice AI agent that takes phone orders for a high-volume restaurant - understanding menu customizations, dietary restrictions, upselling combos, and processing payments. Speaks naturally with under 400ms latency.

Before
  • $3,200/week lost to abandoned phone orders
  • Customers on hold 4+ minutes during dinner rush
  • Staff pulled from kitchen to answer phones
  • Order errors from rushed, distracted staff
After
  • 120+ calls handled daily with zero hold time
  • 94% order accuracy - better than human staff
  • $3,200/week in revenue recovered immediately
  • Kitchen staff stays in the kitchen
How it was built

Mapped the full menu + edge cases

Every item, modifier, combo, allergy note, and upsell - programmed into the voice agent.

Built natural voice flow via Vapi

Under 400ms response latency. Customers don't realize they're ordering from AI.

Integrated with Square POS

Orders go straight into the kitchen queue. Payment processed on the call.

VapiClaude AISquare POSn8nTwilio
0+
Daily calls handled
0%
Order accuracy
$3.2K
Weekly revenue recovered
0.4s
Voice latency
Dental Clinic AI

Patient Voice Agent

Zero missed patient calls. 24/7 scheduling that sounds human.

The Problem

The clinic's two-person front desk was overwhelmed, resulting in 35% of calls going to voicemail. Most of those patients never called back. The voice agent eliminated that entirely.

The Build

A conversational voice AI that answers every call to a dental clinic - scheduling appointments, handling insurance pre-qualification questions, sending appointment reminders, and managing cancellations and rebookings automatically.

Before
  • 35% of patient calls going to voicemail
  • Most voicemail patients never called back
  • High no-show rate with no automated reminders
  • 28 hours/week spent on phone scheduling alone
After
  • 0% missed calls - every patient gets answered
  • 62% reduction in no-shows via smart reminders
  • 28 hours/week freed up for patient care
  • 4.9★ patient satisfaction rating maintained
How it was built

Analyzed call patterns

Mapped peak call times, common questions, and where the front desk bottlenecked.

Built voice agent with Vapi

Natural conversation flow for scheduling, insurance questions, and reminders.

Connected to Dentrix

Direct integration with the clinic's practice management software - real-time availability.

VapiClaude AIDentrix APIn8nTwilio
0%
Missed calls
0%
Fewer no-shows
0
Hours saved/week
4.9
Patient satisfaction
Real Estate AI

Lead Gen Agent

Every lead answered in under 60 seconds. Around the clock.

The Problem

The average agent takes over 15 hours to respond to a new lead, and 78% of buyers end up working with whoever answers first. Responding inside 5 minutes makes a lead 21x more likely to qualify - so the agent responds in seconds, every time, including nights and weekends.

The Build

An AI lead-response agent for a real estate team that engages every inbound lead instantly over SMS and email - qualifying budget, timeline, and area, scoring the lead, booking showings into the agent's calendar, and running the full follow-up sequence until the lead answers or opts out.

Before
  • First response measured in hours, not seconds
  • Leads arriving nights and weekends went cold
  • Follow-up stopped after one or two attempts
  • No qualification - every lead treated the same
After
  • Every lead engaged in under a minute, day or night
  • Budget, timeline, and area qualified automatically
  • Scored leads pushed to the CRM, showings booked
  • Persistent follow-up until answer or opt-out
How it was built

Wired every lead source into one intake

Zillow, portal, and website leads all flow into a single pipeline - nothing depends on an agent seeing an email.

Built instant qualification over SMS

The agent opens a natural conversation, qualifies budget, timeline, and area, and scores the lead in real time.

Automated booking and follow-up

Qualified leads book straight into the calendar via GoHighLevel; everyone else enters a persistent multi-touch sequence.

Claude AIGoHighLevelTwilion8n
<0s
Response time, 24/7
0x
Higher qualification odds vs. 30-min response
0+
Follow-up touches, automated
0
Leads left cold
What We Build

Six kinds of systems, one team.

AI agents & orchestration

Specialist agents coordinated by an orchestrator, each with its own job and its own scope.

Proven in — STR Secrets · LegacyRnR Control Center

Revenue & pricing intelligence

Market data turned into pricing decisions, tested and repeatable, not guesswork.

Proven in — Solnest Automation Stack

Guest & customer messaging

Conversations handled automatically, on brand, without dropping a single thread.

Proven in — Patient Concierge Agent

Multi-tenant SaaS platforms

Isolated, secure workspaces built to hold real customer data at scale.

Proven in — STR Secrets

Automation & data pipelines

Scraping, syncing, and scheduling that runs on its own clock, not yours.

Proven in — Solnest Automation Stack

Approval-gated operations

Anything touching money or compliance waits for a human, logged and reversible.

Proven in — LegacyRnR Control Center

Real Tools, Real Builds
ClaudeOpenAIn8nSupabaseStripeGuestyPriceLabsApifySocket.ioPostgresVercelGitHubClaudeOpenAIn8nSupabaseStripeGuestyPriceLabsApifySocket.ioPostgresVercelGitHub

Want something like this for your business?