A payroll bureau where the longest step was retyping what clients sent in
Built a per-client intake-to-run tool that turns the raw documents a client sends, hours, timesheets, and pay adjustments in whatever format they arrive, into a structured, editable payroll table in seconds, sitting on one centralized platform that holds every client file and every cycle as a single source of truth, with data kept on infrastructure the firm controls.
Every pay cycle, a processor opens what each client sent: hours on paper, a spreadsheet by email, a scan from the client portal, notes about a new hire or a one-off bonus. Then someone retypes all of it by hand into the structured form the run actually needs. That re-keying, not the calculation, was the longest step in the cycle. The work that demanded judgment was small; the work that ate the hours was a person reshaping inbound documents into clean rows, one client at a time.
The firm had started automating the easy part, scanning a document and reading the numbers off it, but it stalled at scale: the tools could not hold a separate, ongoing context per client, and the team still chased missing documents by hand. Records lived across a stack of spreadsheets, one for client info, one for cycle status, one for follow-ups, plus a shared drive. As the book of clients grew, finding the current version of anything, knowing which cycle was waiting on what, and getting a new processor productive all got harder.
We started with the foundation the team asked for: one platform as the single source of truth, kept on infrastructure the firm controls, since the data is sensitive. Every client and every cycle in one place, a structured intake so the same data is entered once at the right spot, role-based access, notes kept by role, and a dashboard showing the status of every cycle and what each one is still waiting on at a glance.
On top of it sits the flagship: a per-client documents-to-run tool. You drop in what the client sent, click structure, and a clean payroll table appears, names, hours, rates, adjustments, grouped and ready to review, every cell editable, and exportable in seconds. Each client keeps its own running context, so the tool remembers that client's people and patterns instead of starting cold every cycle. The extraction is AI-driven with a deterministic fallback behind it, so it produces a usable table even when the input is messy and never simply fails.
The re-keying step that used to take the better part of a week per client now takes a few hours, and the work left for a person is the judgment, validating and adjusting the table, not retyping it. The same team turns around more clients per cycle without adding processors, and the missing-document chase that used to live in a processor's head now shows up as a status on one dashboard.
The firm also stopped hunting across spreadsheets for the current number. There is one source now, every cycle's state is visible in one view, and a new processor can find their way around in days instead of weeks.
“The calculation was never the hard part. The hard part was taking everything a client sent, in five different formats, and retyping it into clean rows before we could even start.”
Have a mess like this?
Tell us where time and money are leaking. We’ll map the fastest high-ROI win, usually a Pilot that pays for itself.
