Six-Step AI Workflow with Human Oversight
Each step shows the workspace, what the AI completed, and what still needs human review.
Steps 2, 4 and 5 need a person. Step 4 is waiting for approval right now. Click it to open the full walkthrough.
Estimates are directional and based on stated assumptions. All names, organizations, and identifying details have been anonymized in accordance with our confidentiality agreements.
How a Growth-Stage Professional Services Firm Built Books That Match Each Payment to the Invoice It Settles
Every movement of the firm's money, from the moment it lands on a feed to the moment it stands on a dashboard. The agents capture each movement whole, screen it against the firm's own history, match it to the invoice or bill it settles, carry it through the close and the filings, and publish only numbers a closed ledger line stands behind. A person decides three things: whether a held payment moves, whether the month closes, and what goes out over the firm's name. Six stations, run as a loop: the duplicate station 3 traces becomes the merge rule station 1 runs tomorrow, and the hold a person releases becomes a pattern station 2 clears on its own.
What Was Broken
What We Built
Six stations and 12 subagents. Each subagent carries its own tasks and its own refusal.
How It Runs
Transaction Capture
Nobody is asked anything hereAgents collect every movement off the bank feeds, the card processor and the billing system, normalize each to one record, merge the ones that arrived twice, and hold anything that arrives partial. Nothing waits on a person here. A partial entry is held whole, never padded into a record.
Payment Screening
A person answers hereAgents score every movement against that counterparty's own history of amount, timing and account, and hold the ones that fit nothing, with the pattern they broke attached. A person decides every held payment, both ways. A hold never releases itself and never ages out.
Reconciliation
Nobody is asked anything hereAgents match every incoming payment to the invoice it settles and every outgoing one to the bill or payroll run behind it, compare bank to book on every account, and carry every break until it is explained. Nothing waits on a person here. An unmatched payment carries its nearest candidates to the close instead of being forced onto the closest one.
Month-End Close
A person answers hereAgents run the close checklist account by account, draft the adjusting entries with a reason beside each, and stop the close on any account still carrying an unexplained break. This is where the controller works. The month closes on a signature, and a close with an unexplained break in it waits, however late the month runs.
Compliance Filing
A person answers hereAgents assemble the audit trail behind every transaction, link every filing line to the ledger entries that make it up, draft each filing off the signed close, and hold any filing with a gap in its trail. A person signs every filing. It goes to a regulator or an auditor over their name, and nothing is sent for them.
Forecast and Portal
Nobody is asked anything hereAgents project the coming quarter's cash off the matched history and the signed engagements, publish each client's own numbers to their portal view, and withhold any dashboard number the closed books do not carry. Nothing waits on a person here. The forecast is read when wanted, and every number on it answers where it came from.
Where a Person Decides
Operating Model
This changes how work flows through the team.
What Transfers, What Must Be True
Failure Modes
What breaks this pattern:
An entry missing its counterparty lands in the ledger as a real record. Every report downstream now carries a number nobody can trace to its source.
A queue under pressure starts letting go of whatever has sat there longest. Nobody decided, so nobody answers for it when one of those payments was the one that mattered.
A payment that ties to nothing gets forced onto its nearest candidate. Two wrong records now agree, and the real break hides inside a match that looks clean.
The dashboard shows a figure the closed books do not carry. The meeting acts on it, and the ledger spends the rest of the month catching up to a decision already made.
Directional Outcomes
What the agent counts, and the station that counts it.
These counts are the tallies from one monitored run of the agents. They are not monthly or annual totals.
What Runs Where
Every step names the subagent that does the work, the record it writes, the thing that raises a question for a person, and what it is allowed to touch. This is drawn from the source, not from a diagram somebody kept in sync by hand.
feed-captureledger/arrivals/<txn-id>.jsonhold-partial-entryledger/arrivals/**, ledger/held/**, the feeds read-onlypayment-screenledger/screened/<txn-id>.jsonrelease-held-paymentledger/screened/**, ledger/held/**, the history read-onlyrecon-matchledger/matched/<txn-id>.jsoncarry-unexplained-breakledger/matched/**, ledger/breaks/**, the invoice book read-onlyclose-runnerclose/<period>/checklist.json, close/<period>/journal-drafts/<entry-id>.mdsign-the-closeclose/**, ledger/** read-onlyfiling-deskfilings/<period>/<filing-id>.mdawait-your-signaturefilings/**, close/** read-onlyreport-publishreports/<period>/<view-id>.json, portal/<client-id>/view.jsonnumber-without-ledger-linereports/**, portal/**, close/** read-onlyStack
Every system this agent reads or writes.