Protofire billing reconciliation agent built with Claude | Altoros case study
Altoros
AI-Era Technology Solutions  /  Forward Deployed Engineer Model
Case study · Internal operations agent

Protofire runs its billing reconciliation cycle on a Claude agent in Slack

The slowest step of Protofire's billing reconciliation cycle went from hours to minutes, on an agent built end-to-end with Claude and shipped from first commit to a deployed service in seven days.

See if this approach may bring benefits in your particular case→
Protofire billing reconciliation agent built with Claude
Customer
Protofire
Industry
Technology
Use case
Internal operations agent: automated time reporting reconciliation and billing readiness, delivered inside Slack.
Built with
Claude Code for the build. The Claude API in production (model claude-sonnet-4-6).
Hours to 2–5 minutes on the slowest step of the billing cycle

drafting the per-person reconciliation messages and filling the reconciliation documents

Seven days from first commit to a deployed, scheduled service

deploy scripts, a systemd listener, and an eleven-page user guide out in the same week

01

The problem

Protofire bills clients by the hour, so every invoice waits for the reported hours to be reconciled. People forget to report, over-report, or miss entries, and the knowledge of what normal looks like lived in a few heads. Reconciliation sat directly on the revenue path, and no system owned it.

Every billing cycle started with thirteen spreadsheets sent to project managers by hand, followed by two to three rounds of corrections, and invoices landing three to five days late. The work pulled in two functions, Finance and the resource managers, every billing period before a single invoice could go out.

02

How the engagement ran

Altoros brought a forward-deployed engineer who started with discovery rather than code: interviews with the finance lead, resource managers, the billing specialist, and the developers, mapping the process as it actually runs rather than as documented. The economic case was taken to the finance lead before the build started.

Altoros then delivered the agent end-to-end on Claude: a deterministic core with Claude used only where language is genuinely needed, an eval suite written on the first day of the build, before the classifier it grades, deployment inside the customer's own perimeter, and a phased rollout with adoption materials.

03

What changed

With Claude, Protofire:

A

In the cycle

  • Replaced the ping-and-chase loop: reconciliation status used to be assembled by hand every cycle, and billing managers and resource managers can now ask the agent for it directly, in Slack
  • Moved deviation detection from manual spot checking to automatic comparison against per-project and per-person historical baselines, with deterministic rules deciding whether a person is flagged; the model never makes that call
  • Rolled out in phases, internal testing, then resource managers, then the whole company, with no new interface: the agent works in Slack where people already are
B

How it's checked

  • Calibrated the deviation baselines on the company's own historical time data: 102 people, 58 projects, six billing periods
  • Wrote the eval suite on the first day of the build, before the classifier it grades, and grew it to 77 cases across 18 categories, including six that probe the agent with prompt injection
  • Checks in automated evals that a generated message about one person never leaks another person's name or another person's projects
C

Where it runs

  • Kept the deployment on the customer's own servers, inside the existing security perimeter: the time tracker is read only, the agent has no write or delete access anywhere, and the only outbound calls are to the Anthropic and Slack APIs for message generation and to the customer's own Trello board when someone files feedback. No new SaaS system holds the data at rest
  • Enforced access control in code: each resource manager is scoped to their own departments and gets one of the three direct message tools, the finance tools are gated by an explicit allow list of four people, and an unauthorised user gets none
04

What this does not do

The agent flags and drafts. People decide. A share of the manual work stays with people by design.

Hours collection was already automatic. The agent did not replace it — what changed is the reconciliation step that follows.

"Every billing period used to start with my team sending out spreadsheets and waiting for corrections to come back; now that pass runs on its own in Slack and we only deal with the people it flags."
Yuliya M, CFO, Protofire

Delivery methodology name

Gate-First Delivery (Ground, Assemble, Test, Embed). We ground the work in the process as it actually runs, assemble a deterministic core with Claude used where language is needed, write the test gate before the output it grades, and embed the result inside the customer's own perimeter with a phased rollout.

See if this model fits your case→

Claude Code for the build. The Claude API in production (model claude-sonnet-4-6), called as a subroutine from deterministic Python: event interpretation, per-audience message writing, and a question-answering mode in direct messages.

I need this too!

Describe the outcome you need — we'll come back with how a forward-deployed engineer would own it, on a fixed price paid for the result.

Explore the engagement model →