Skip to content
03Selected work

Systems wehave built.

Three systems we designed and engineered — two running real businesses in production, one in active development, each labelled honestly. Every case shows the problem, the workflow it replaced, the architecture, the automations, and the outcome — with metrics left blank until they've been measured, not invented.

  1. 01Custom Operations Platform
  2. 02AI Research & Outreach System
  3. 03CRM & Business Management Platform
01Operations platform · Field services

Custom Operations Platform

One system for a field-service company that was running on spreadsheets, inboxes and disconnected apps.

Status
In production
Role
Design · engineering · deploy · support
operations · pipeline live
New3
Website inquiry
Referral — office
Google call
Quoted2
Post-construction
Bi-weekly resi
Scheduled4
Nightly janitorial
Move-out clean
Windows — 2 story
Deep clean
Invoiced2
#1042 · paid
#1043 · sent
automationlead → score → reply drafted3 pending approval
Summary

The first system we built was for a veteran-owned cleaning and facilities contractor our founder runs. Leads, quotes, jobs, crews, invoicing, government bids and social posting lived across spreadsheets, inboxes and disconnected apps. We built one platform — from lead intake to paid invoice — that the business runs on every day.

The problem

Every part of the operation lived somewhere different. Leads arrived by email and phone and were re-typed into a spreadsheet. Quotes were Word documents. Jobs were on a shared calendar with no link back to the customer. Invoices were generated by hand and chased by hand. Government bid opportunities were tracked in bookmarks. Nothing talked to anything.

Previous workflow
  • Leads copied from inbox → spreadsheet by hand
  • Quotes as Word docs, invoices in a separate tool
  • Job schedule on a calendar with no customer link
  • SAM.gov opportunities tracked in browser bookmarks
  • 1099 / subcontractor records reconciled at year end
  • Social posts written manually when there was time
With the system
  • Leads land in one pipeline, are scored, and get an AI-drafted first reply
  • Quote → job → invoice → Stripe payment in a single flow
  • Crew scheduling with route-aware assignment and a client portal
  • SAM.gov opportunities pulled automatically into a bid tracker
  • Subcontractor and 1099 tracking that stays current all year
  • AI-drafted, scheduled social posts on the company's channels
Architecture
  1. 1InterfaceServer-rendered web app + secure client portal (invoices, messages)
  2. 2ServicesLeads · Clients · Quotes · Jobs · Invoices · Employees · Schedule · Bids · Social
  3. 3IntegrationsStripe payments · Gmail · Google Maps geocoding · SAM.gov · Meta Graph API
  4. 4AILead scoring, first-reply drafting, post generation — behind guardrails, reviewed before send
  5. 5Data & infraSQLite (WAL) → nightly backups; Linux VPS, nginx, systemd; owned by the client
Automations
  1. 01Inbound lead → score → draft reply → owner approves → sent
  2. 02Job marked complete → invoice created → payment link emailed
  3. 03Daily SAM.gov pull → matched opportunities → bid pipeline
  4. 04Weekly content plan → AI drafts → scheduled → published
Stack
  • Python
  • FastAPI
  • SQLite
  • Stripe
  • OpenAI API
  • Google Maps
  • SAM.gov
  • Meta API
  • nginx
  • systemd
Outcome

The company stopped operating out of its inbox. Intake, quoting, scheduling, billing and bidding now happen in one place, with a single record per customer — and the owner can see the state of the business from one screen.

Modules in production
8
leads · clients · quotes & invoices · jobs · scheduling · bids · social · portal
Integrations
5
Stripe · Gmail · Maps · SAM.gov · Meta
Admin time saved / week
measured with client
Invoice-to-payment time
measured with client
02AI system · SaaS · Go-to-market

AI Research & Outreach System

Prospect research, website analysis and human-sounding outreach — being productised as ScanProspect.

Status
In development
Role
Design · engineering · deploy · support
research → draft → send in development
Prospect
Northgate Dental
northgatedental.example
Site facts
  • 2 locations · est. 2009
  • Accepts new patients
  • Mentions 'evening hours'
  • No janitorial vendor listed
guardrails · passed 3/3
Draft · opener style: question

Subject: quick question for Northgate Dental

Hi Dana — how are you handling after-hours cleaning across both locations right now, in-house or a vendor?

Reason I ask: we run nightly janitorial for a few practices nearby, and evening hours usually change what a schedule needs to look like.

Worth a quick chat, or not on your radar?

approve & sendeditvia your gmail
Summary

The system that won Diop Digital its first contract: it finds businesses by niche and location, reads their websites, drafts a personalised email per prospect with an AI tuned to sound human, sends through the user's own Gmail and classifies every reply. We are turning it into a multi-tenant product, ScanProspect — currently in development.

The problem

Cold outreach tools are built for sales teams with SDRs and $200/month budgets, and their output is generic enough to get deleted on sight. Owner-operators need research + writing + sending + follow-up in one place, and they need the AI to never invent clients, numbers or stories.

Previous workflow
  • Prospect lists built by hand from Google Maps
  • One template pasted to hundreds of contacts
  • Sends from a bulk tool → spam folder
  • Replies lost across threads; follow-ups forgotten
With the system
  • Search a niche + city → business, website and email scraped automatically
  • Website read for real facts → per-prospect personalised draft, four distinct opener styles
  • Triple-layer guardrails reject fabricated clients, stats or peer stories
  • Owner reviews and approves; sends through their own Gmail; replies auto-classified; follow-ups scheduled
Architecture
  1. 1InterfaceWeb app: prospects, drafts, sequences, replies, billing
  2. 2ResearchGoogle Maps discovery → website crawl → structured 'site facts' per prospect
  3. 3AIClaude-driven drafting + follow-ups + reply classification, JSON-constrained, guardrailed
  4. 4DeliveryGoogle OAuth (send-only scope) → user's Gmail; rate-limited; per-user quotas
  5. 5PlatformMulti-tenant, Stripe subscriptions, encrypted OAuth tokens at rest, nightly backups
Automations
  1. 01Scrape → enrich → draft → review queue
  2. 02Approve → send via Gmail → thread tracked
  3. 03Reply → classified (interested / objection / pass) → next step
  4. 04No reply → follow-up drafted and sent on schedule
Stack
  • Python
  • FastAPI
  • SQLite
  • Anthropic Claude
  • Google OAuth
  • Gmail API
  • Stripe
  • Resend
  • nginx
Outcome

The engine works — it is the system Diop Digital used to land its first contract — and the multi-tenant product around it (accounts, billing, encrypted tokens, rate limiting, per-user scoping, backups) is in active development before it opens to customers.

Status
In development
ScanProspect · not yet open
Opener styles
4
Guardrail layers
3
Reply rate uplift
measured per account
03CRM · Operations · Multi-tenant SaaS

CRM & Business Management Platform

A multi-tenant operations platform for cleaning companies — quote to paid invoice, one workspace.

Status
Live
Role
Design · engineering · deploy · support
machtempo · live field activity live
Machtempo — Live field activity
real productdemo-company data
Summary

Machtempo replaces the separate CRM, scheduling, quoting, invoicing and team tools a service company juggles. Leads, customers, properties, estimates, jobs, crews, invoices, payments, bookings and a customer portal — with role-based access, automated reminders and Stripe Connect payments.

The problem

Service companies were bending generic CRMs, calendars, invoice tools and text threads to fit a business that runs on recurring jobs, crews in the field, and get-paid-fast. Every hand-off between tools was a place for money and time to leak.

Previous workflow
  • Customer records in one tool, jobs in another
  • Estimates emailed as PDFs, approvals by phone
  • Crews texting for gate codes and addresses
  • Invoices created after the fact; payments chased
  • No proof of work when a customer disputed a visit
With the system
  • One record per customer, property and contract; encrypted access codes
  • Estimate → online approval → job → invoice → online payment
  • Live dispatch board, crews, GPS check-in, before/after photo proof
  • Booking page + customer portal; confirmations and reminders sent automatically
  • Owner dashboard: revenue, jobs today, outstanding, utilization, renewals
Architecture
  1. 1InterfaceNext.js App Router · role-based dashboards · cleaner portal · public booking/estimate/pay pages
  2. 2DomainLeads · Customers · Properties · Estimates · Jobs · Crews · Invoices · Payments · Contracts · Inventory
  3. 3Auth & tenancyHMAC-signed sessions, RBAC enforced in layouts and server actions, every query scoped to organization
  4. 4PaymentsStripe (platform subscription) + Stripe Connect Express (companies bill their own customers)
  5. 5OpsBlue-green zero-downtime deploys, health checks, daily DB + upload backups, encrypted sensitive fields
Automations
  1. 01Booking submitted → customer + property + job created → confirmation sent
  2. 02Job completed → invoice generated → pay link → payment recorded via webhook
  3. 03Recurring job → next 8 occurrences generated
  4. 04Reminder scheduler → confirmations, reminders, review requests
Stack
  • TypeScript
  • Next.js
  • React
  • Prisma
  • SQLite
  • Stripe Connect
  • Resend
  • Tailwind
  • nginx
  • systemd
Outcome

Live, multi-tenant, taking payments. Cleaning companies in Washington run their day on it — including tenants who migrated off an incumbent tool because the job report, crew scheduling and recurrence model fit how they actually work.

Status
Live
machtempo.com
Deploys
Zero-downtime
blue / green
Payments
Stripe Connect
Time-to-invoice
measured per tenant

Want a systemlike one of these?

Want a system like one of these?

Tell us what your business runs on today. We'll map it with you and give you a straight answer on scope, cost and timeline.

Free 30-minute discovery call · fixed quote before work starts · you own everything