Menu
SaaS

Regulatory compliance case management platform with automated notice tracking

A case management platform for an industry oversight body, replacing an email-and-shared-folder investigation process with guided public intake, a per-case cloud document workspace, generated formal notices with delivery tracking, template-driven correspondence, integrated card payments with automatic reconciliation, and a migration pipeline that pulled a decade of case history out of emailed forms and scanned PDFs.

Client — an industry oversight and enforcement body
Concept visuals — not actual screenshots
01 — Challenge

The organisation was running a quasi-judicial investigation and enforcement process almost entirely on email, PDFs and shared folders. Reports arrived as emailed forms and scanned attachments, each case accumulated correspondence and evidence in ad-hoc folders organised by whoever happened to file them, formal notices to the parties involved were typed by hand, and fees and fines were collected outside the system with no link back to the case they belonged to. There was no reliable way to know which cases were stalled, whether a notice had actually been delivered, or how many times a given company had been named before — and a decade of case history existed only as emails and scanned documents, some of them image-only with no extractable text at all.

The statutory rules also changed partway through that history, so the intake form needed to offer a different set of citable provisions depending on the date of the incident, and every generated notice carries real legal weight — 'it should have gone out' is not a defensible answer when a notice is what starts an investigation's clock.

02 — Approach

Modelled notice delivery as its own tracked entity rather than a side effect of sending an email — each notice carries attempt count, timestamps, a delivered flag and captured errors, with a scheduled retry command for anything recorded as unsent and a delivery log exposed in the admin. Every case is provisioned with its own document workspace automatically, both in the database tree and in cloud object storage, the moment it's created, so filing structure never depends on individual habit; the same polymorphic tree implementation serves personal user workspaces and case files, with sharing and time-limited signed URLs for retrieval rather than public object exposure.

Correspondence comes from categorised templates with a merge-field map populated from live case data, presented for editing before being committed and rendered to PDF into the case's letter folder — standardised without being rigid. Payment events are signature-verified and persisted raw on receipt, then reconciled against cases by a scheduled process, so a payment can never be lost to a mid-request application error, and a shared surcharge service derives the amount charged from the amount owed so the organisation nets the full assessed figure. For the historical archive, an import pipeline does native PDF text extraction with a page-level OCR fallback for image-only documents, detects which of two historical form layouts it's reading, extracts fields by label, and upserts on the original case number so the import can be re-run safely — with a separate validate-only command that diffs extracted fields against the schema before anything is written.

03 — Impact

Every case now has a structured file from the moment it's opened, and formal notice delivery can be evidenced rather than assumed, with attempts, timestamps and errors recorded against each one. Citations are correct at the point of entry because the form selects the applicable rule set from the incident date, payments reconcile themselves against the case they belong to, and a decade of history that existed only as scans and emails is now searchable — so a question like 'has this company been named before?' can finally be answered from the system instead of institutional memory.

Stack
LaravelMySQLLaravelMySQLGoogle Cloud StorageStripeDomPDFTesseract OCRAnsible
More work
Automated hosting, domain and WordPress platform with registry integration→Sprig — multi-tenant marketing platform with AI content and a unified inbox→Multi-tenant association platform with per-tenant cPanel and database isolation→

Something holding you back?

New build, rebuild, or adding AI to what you already have — I'll take a look and give you an honest perspective.

Get in touch ↗