We run a consulting business on the same kind of system we build for clients — one live operational picture stitched together from our CRM, our accounting system, and an AI agent that can read all of it. Here's exactly how it works.
Which deals closed, who's staffed, what's invoiced, what's paid, how long the cash lasts — the answers were scattered across three systems. And the most important one, "when do we run out of cash?", needed all of them current at the same time.
Every opportunity, company, and close date — the top of the funnel that drives everything downstream.
What's been billed, what's been paid, and the live bank balance — the numbers the business actually runs on.
Who's staffed on what, and the plan for who to hire next — kept by hand, and stale the moment it was saved.
A single dashboard on a shared database, fed by automations that sync every source, with an AI agent that reads the whole picture. A deal closes or a payment lands, and the screen updates itself within seconds.
Cash, runway, utilization, pipeline, AR, and the hiring plan on a single screen — with a This-Month / Rolling-12 toggle and live alerts.
Event-driven automations keep clients, projects, invoices, payments, and the bank balance current — no exports, no nightly batch.
A Claude-powered agent reads the same live data, so anyone can ask a question in plain language and get a grounded answer.
Because it reads the same live data the dashboard runs on, you can ask the open-ended questions a report could never answer:
Given where the business is, what should I focus on these next two weeks?
If we make our two planned hires, when do we dip below our cash reserve?
How's everyone's utilization, and where are we over or under-staffed?
Which projects are missing invoices in QuickBooks, and who's the lead?
Looking at our late-stage pipeline, who will we need to hire soon?
Which clients are overdue, and what do they owe and have in pipeline?
It's read-only by design — it can analyze anything, but it can't change data, create invoices, or move money. Every answer is computed from the same source as the screen, so the two never disagree.
One source of truth in Supabase, the integration and AI workflows in n8n, and Claude doing the reasoning — with Realtime pushing every change straight to the screen.
Each is a defined path that runs the same way every time — the precision work that should never depend on someone remembering to do it.
When a deal is marked Closed Won, it pulls the deal and its company, then creates the client, project, and demand row — and matches or creates the matching QuickBooks customer. Deals missing a company trigger an alert email so nothing syncs half-formed.
Listens for invoice and payment events from QuickBooks, syncs them into the database, derives each invoice's status (sent, partial, paid, overdue, voided), and maintains the payment-to-invoice links — including the tricky cases where a payment is unlinked or voided.
Pulls the live checking-account balance on demand and timestamps it. This single number anchors the entire cash-runway forecast.
Upload a signed contract PDF and Claude reads it, extracting the full invoice schedule — milestones, amounts, payment terms — with a confidence rating and notes. A human reviews it, and a feedback loop lets you refine the extraction while staying faithful to the contract as the source of truth.
Turns the approved schedule into real invoice drafts in QuickBooks, with the right terms and line items. They land as drafts — ready for a human to review and send — and flow back through Load Invoices automatically once issued.
Exposes six read-only query tools to the agent — projects, invoices, cash flow, hiring plan, resource utilization, and the contract-extraction audit trail. The cash-flow tool reproduces the dashboard's math exactly, so the chat and the screen never disagree.
The agent's runtime: it assembles context, calls Claude with the MCP tools attached, streams a "thinking" indicator to the UI, and persists the answer, its tool calls, a session title, and a rolling summary — all without blocking the user's reply.
Six choices that keep the system fast, accurate, and trustworthy.
Webhooks keep the data current and Realtime keeps the screen current — no refresh step, no nightly reconciliation to wait on.
The cash-runway logic lives in one place and is reused by both the dashboard and the agent's tools. Two surfaces, identical math.
Claude reads contracts and answers questions, but always within deterministic workflows. The judgment is the model's; the guardrails are the system's.
Extracted invoice schedules are reviewed before anything is created, and invoices are generated as drafts for a person to send — never auto-issued.
A capable model reasons through ops questions; a fast, inexpensive one handles high-volume extraction and summarization — quality high, cost low.
An in-app feedback button feeds a queue that turns into shipped release notes, shown back in the same dashboard — so it visibly improves where it's used.
Nothing exotic — connected well, and kept in their lanes.
This is the kind of system we design and build — connected data, automated glue work, and an AI agent that actually understands your numbers.