Project 01
The Problem
The owner of a 12-person HVAC company was spending 3 hours every Monday manually pulling job completion rates, revenue, technician utilization, and open invoices from three different systems — ServiceTitan, QuickBooks Online, and a Google Sheet — then assembling everything into a single spreadsheet report. That's 150+ hours a year lost to report-building instead of running the business.
The Solution
Built a Python + Google Apps Script pipeline that connects directly to ServiceTitan (their field service software via REST API), QuickBooks Online, and Google Sheets. The script pulls job completion rates, revenue by technician, open invoices, and utilization metrics, then feeds them into a single Looker Studio dashboard configured with the owner's KPI layout. A cron schedule triggers the full refresh automatically every Monday at 6am — the dashboard is live and waiting before the owner sits down.
How It Works
→
→
+
→
📋
Google Sheets (staging)
→
📈
Looker Studio Dashboard
The Result
3 hrs/week → 0
Manual reporting time eliminated
~$7,800/yr
Recovered time value at $50/hr
Live every Monday
Dashboard refreshes at 6am automatically
Owner now reviews a live dashboard instead of building a report. Monday mornings shifted from data entry to decision-making.
Example engagement — illustrates a typical project of this type. Not a real client.
Project 02
The Problem
New client inquiries came through the agency's website form and landed in someone's email inbox. From there: manually copy the lead into HubSpot, manually assign to the right account manager, manually send a welcome email, and hope nobody dropped the ball. Four manual steps, 20–45 minutes per lead, and leads were routinely falling through the cracks when the team was busy.
The Solution
Built a Zapier multi-step workflow that handles the entire intake sequence the moment a form is submitted: HubSpot contact is created automatically with all fields populated, conditional routing logic reads the service type selected on the form and assigns the lead to the correct account manager, a personalized welcome email goes out under the AM's name within seconds, a Slack notification fires to the assigned AM with lead details, and an Asana task is created for the discovery call follow-up with a deadline pre-set to 48 hours. Zero human intervention required.
How It Works
→
⚡
Zapier Workflow Triggers
→
🏢
HubSpot Contact Created
✅
Asana Task + 48hr Deadline
The Result
4 steps → 0
Manual tasks eliminated per lead
Under 60 sec
Time from form submission to welcome email
Zero
Dropped leads since deployment
Every lead is handled identically, instantly, and completely — regardless of how busy the team is. AMs focus on conversations, not admin.
Example engagement — illustrates a typical project of this type. Not a real client.
Project 03
The Problem
A 22-person commercial cleaning operation receives 40–60 vendor invoices every month as email attachments. One admin was spending approximately 8 hours per month manually opening each PDF, reading the vendor name, invoice number, line items, amounts, and due dates, then re-keying all of it into QuickBooks Online. Beyond the time cost, the manual entry averaged 3–4 data entry errors per month — resulting in mispaid invoices, duplicate payments, and month-end reconciliation headaches.
The Solution
Built an AI-powered document processing pipeline using Anthropic's Claude API to read and extract structured data from each PDF invoice — vendor name, invoice number, individual line items, amounts, and due dates. A Python script takes the extracted data and validates it against the company's vendor master list, flagging anything that doesn't match a known vendor or falls outside expected amount ranges. Clean invoices are automatically pushed to QuickBooks Online via API as draft bills ready for one-click approval. Exceptions get routed to a review queue for the admin to handle directly — the system handles the routine 90%, the human handles the edge cases.
How It Works
→
→
🤖
Claude API Reads & Structures Data
→
🔍
Validates vs. Vendor Master List
→
📗
✓ Clean → QuickBooks Draft Bill
⚠️
⚑ Exception → Review Queue
The Result
8 hrs/mo → 45 min
Monthly admin time (review only)
Near zero
Data entry error rate
2 months
Time to recover build cost from time savings
The admin moved from data entry to exception review. Invoice processing that used to eat a full day per month now takes a coffee break.
Example engagement — illustrates a typical project of this type. Not a real client.
🎬 LIVE INTERACTIVE DEMO AVAILABLE
Project 04
The Problem
A 3-location HVAC services owner had data scattered across five systems — QuickBooks Online (financials), ServiceTitan (jobs & CRM), Stripe (customer payments), a bank account (cash position), and Google Workspace (emails & documents). To answer a basic question like "which technician is most profitable this month?" or "what's my cash position vs. AR?" required pulling reports from each system manually, then cross-referencing in a spreadsheet. The owner gave up and was running the business on gut feel. By the time monthly reports landed, they were 6 weeks out of date and missing the cross-system context that actually mattered.
The Solution
Built an automated, real-time operations dashboard that aggregates data from all five source systems. Webhooks from ServiceTitan and Stripe push job and payment events in real time. QuickBooks Online and the bank account sync every 15 minutes via API. A Make.com scenario normalizes the data into a common schema, then Google Apps Script transforms it into pre-calculated KPIs (revenue, gross margin, AR aging, technician scorecards, top customers, cash runway). The dashboard renders the live data in a single owner-facing view that refreshes automatically. Scheduled reports (weekly summary, monthly close, margin alerts, AR reminders) fire automatically and email the owner without anyone touching a spreadsheet.
Try It Yourself
Open the live interactive dashboard demo
Click filters, watch live data, see the automation panel. Real-time simulation of how this works.
Open Dashboard Demo →
How Data Aggregates
📚
QuickBooks Online
(financials)
+
🔧
ServiceTitan
(jobs & CRM)
+
+
→
⚙️
Make.com
normalizes data
→
📐
Apps Script
calculates KPIs
→
📊
Live Dashboard
+ scheduled emails
The Automation Layer
Beyond just visibility, the dashboard runs 4 automated workflows in the background: (1) Weekly operations summary emails delivered every Friday at 4pm to the owner's inbox — pre-formatted P&L, top customer breakdown, technician scorecard. (2) Monthly close automation generates a complete close package by the 15th of each month. (3) Margin alert monitor watches all technician and job-type margins continuously — fires an email alert if any drops more than 5 points below the team average. (4) Automated AR reminder sequence sends customer payment reminders at 30, 45, and 60 days overdue without anyone touching the inbox.
The Result
5 systems → 1 view
Owner finally has a single source of truth
~20 hrs/month
Manual reporting + chasing data eliminated
Real-time
Visibility went from 6-week lag to live
~$18,400 / year
Recovered AR caught faster via automated dunning
Owner now opens one tab to see everything that matters. Margin alerts catch underperforming technicians and job types within days instead of months. The business operates with the kind of operational visibility usually reserved for companies 10× the size.
Example engagement — illustrates a typical multi-system aggregation project. Interactive demo above shows the actual experience.