The Problem
A Singapore accounting firm serving ~120 SME clients was hitting a capacity wall. Each accountant could manage 8-12 clients before bookkeeping volume crushed them. receipts to categorise, invoices to reconcile, GST returns to prepare quarterly. The partners had been quoting Big-4 prices but staff costs in Singapore had risen sharply, compressing margins. They couldn't compete on price; they needed to compete on capacity per accountant.
What I Built
1. Receipt and invoice extraction. Clients submit receipts via mobile app or email; documents flow through Azure Form Recognizer + Claude for line-item extraction, vendor identification, and GST calculation. Categorisation suggestions are based on the client's historical Chart of Accounts pattern.
2. Bank transaction matching. Bank feeds (via Xero API) are matched to invoices and receipts automatically. Routine matches auto-reconcile; ambiguities surface with a one-click resolution UI. The accountant reviews exceptions, not every line.
3. GST compliance flow. A quarterly automation prepares GST F5 returns: pulls all relevant transactions, computes input/output tax, generates the filing-ready package, runs sanity checks (unusual ratios, missing GST registration numbers). Submits via IRAS API after partner approval.
4. Management reporting. Monthly board-ready management accounts auto-generate per client: P&L, cash flow, working capital, top revenue/expense lines, variance vs budget, AI-written commentary (200-300 words) flagging items management should care about.
- 01TriggerReceipt or invoice received
Client submits via mobile app or email. Documents flow through Azure Form Recognizer + Claude for line-item and GST extraction.
- 02StepCategorised against client's CoA
Suggestions based on the client's historical Chart of Accounts pattern. Confidence scores drive what surfaces for human review.
- 03StepBank feed reconciliation
Xero bank feeds matched to invoices and receipts. Routine matches auto-reconcile; ambiguities surface with one-click resolution.
- 04DecisionQuarterly GST F5 prepared
System pulls relevant transactions, computes input/output tax, runs sanity checks (unusual ratios, missing GST numbers).
- 05DecisionPartner reviews & signs off
No filing leaves without partner approval. The automation produces the package; the partner approves it.
100% on-time - 06OutputFiled via IRAS API + monthly accounts
GST returns submitted electronically. Per-client management accounts auto-generate by the 8th with AI-written commentary.
Outcome
The firm doubled its SME client base in 14 months without proportional staffing growth. Margin per client rose because the cost-to-serve dropped. Partner-level work shifted from supervising data entry to advisory engagements (tax planning, structuring, growth advice). meaningfully more profitable per hour. Two clients explicitly cited the early-month management accounts as a reason for retaining the firm against price competition.