Applied AI case study / 2025—present

An invoice can be read correctly and still create the wrong bill.

I built SyncABill to turn emailed and uploaded invoices into reviewable accounting records. Gemini reads the document. Deterministic code controls what happens next.

04invoice intake paths
02accounting integrations
01controller-owned review policy
00model-authorized financial writes

The model reads. The application decides.

Invoices arrive by upload, forwarding, Gmail, or Microsoft 365. Before Gemini runs, SyncABill checks the file, rejects exact duplicates, reserves plan usage, and keeps the original document for review.

01Receiveemail, inbox, or upload
02ExtractGemini returns structured fields
03Checkrules, arithmetic, and accounts
04Syncapproved bill reaches the ledger

The model proposes vendor names, dates, totals, line items, and expense accounts. Application code checks the response, resolves the account against the real ledger, and applies the controller’s review rules before QuickBooks Online or Xero receives it.

A fluent answer is not permission to move money.

ACCESS

Who may act?

Firebase identity, workspace membership, and roles decide who can review, approve, or sync a bill.

ACCURACY

Does the bill add up?

Ordinary code checks totals and confirms that suggested accounts exist in the connected ledger.

REVIEW

Should a person see it?

The account controller sets the review policy. The model does not choose its own level of oversight.

RETRIES

Will a retry create two bills?

Content hashes, operation locks, duplicate checks, and provider idempotency protect the manual sync path.

Financial documents make security part of the product.

I completed Google’s CASA Tier 2 security assessment and brought SyncABill to SOC 2 readiness. The product uses least-privilege OAuth, encrypted provider credentials, signed uploads, role checks, audit events, and bounded retries.

MODEL OUTPUT

A candidate set of facts parsed from an untrusted document.

APPLICATION DECISION

A checked, authorized, recorded action with a visible failure state.

CASA Tier 2 is a completed security assessment. SOC 2 readiness means the controls were prepared for an audit. It is not a claim that SyncABill completed SOC 2 certification.

The architecture review found work worth doing.

What is working

  • File checks and deduplication before model spend
  • Structured extraction followed by deterministic validation
  • Controller-owned review rules
  • Manual ledger locks and provider idempotency
  • Persistent status and audit history

What comes next

  • Move integration secrets behind a backend-only boundary
  • Give automatic sync the manual path’s safety controls
  • Add a labeled invoice evaluation set
  • Record model, prompt, cost, and correction data
  • Move long-running work to a durable queue
CURRENT STATE

SyncABill is an early production product. Accounting auto-sync is disabled. The current production model is Gemini 2.5 Flash-Lite, and a newer model will not replace it until a versioned invoice test set can show that the change is safer.

05 / WHAT I OWNED

From the first workflow to the security review.

I founded the product and own its requirements, architecture, testing, review, failure handling, integrations, and operation. I use coding agents to implement software, then inspect and test what they produce. The product decisions and accepted results remain my responsibility.