Work

01 · SAAS · PRODUCT ENGINEERING

Application Processing Platform

Turning a complex application process into a structured SaaS workflow with document intake, business rules, background processing and AI-assisted review.

PROJECT EXPLORER INTERACTIVE
Application Processing Platform dashboard on a laptop
SYSTEM ARCHITECTURE React clients Applicant portal · Admin ASP.NET Core API REST · auth · validation Workflow services Business rules · stages SQL Server Cases · documents · audit Hangfire Background jobs · queues OCR · AI extraction Document intelligence

Ask about this project

Pick a question — the answers come from how this project was actually built.

OVERVIEW

A SaaS platform that turns a complicated, document-heavy application workflow into a structured digital process. Applicants submit through a guided intake instead of email; uploaded documents are enhanced, OCR'd and read by AI into structured fields; business rules decide what each case still needs and when it can advance; and staff review from a single queue where every case carries its status, its documents and its history. Built on ASP.NET Core, React and SQL Server, with background processing for the heavy lifting.

PROBLEM

The application process this platform replaced lived in inboxes and spreadsheets. Applications arrived as emailed PDFs and scanned documents; staff re-keyed the same applicant data into multiple places, tracked multi-step casework by hand, and chased missing documents over email. Every case moved through the same stages — intake, eligibility checks, document collection, review, filing — but nothing enforced that order, so steps were skipped, deadlines were tracked in people's heads, and nobody could answer "where is this application right now?" without digging.

Generic CRMs and form builders didn't fit: the workflow has real business rules (what a case needs before it can advance, which documents apply to which application type, what has to happen when something expires) and a heavy document component that off-the-shelf tools treat as an attachment field, not as data.

MY ROLE

Software engineer across the full stack — I designed the workflow model (stages, transitions and the rules that gate them), built the document intake pipeline and the AI-assisted review step, and implemented the ASP.NET Core backend, the React front end and the SQL Server schema behind them. That included the background-processing layer for OCR and long-running jobs, role-based access for staff and applicants, and integrations with the systems the business already ran — delivered iteratively while the previous process was still in daily use.

TECHNICAL APPROACH

Upload Enhancement OCR AI extraction Validation Human review Structured output

CHALLENGES

Documents are messy. Real submissions are phone photos, skewed scans and inconsistent formats. The pipeline had to enhance images before OCR, attach a confidence score to every extracted field, and route anything below threshold to a human review queue — extracted data is never committed to a case without either high confidence or a person confirming it.

Business rules change. Requirements differ by application type and evolve over time, so the rules couldn't be hardcoded into page logic. Modelling them as data — which documents a case type needs, what gates each stage transition — kept rule changes from becoming code rewrites.

The business couldn't stop. The platform replaced a live process, so it shipped in stages alongside the existing systems — intake first, then document handling, then automated checks — with data flowing both ways during the transition instead of a big-bang cutover.

RESULT

One structured pipeline instead of inboxes and spreadsheets. Applicant data is keyed once — or extracted automatically — instead of re-entered per step; intake that used to take days of back-and-forth typically completes the same day; and every case shows its current stage, outstanding documents and full history at a glance. Staff time moved from re-keying and status-chasing to the review decisions that actually need judgment, and the same team now absorbs a growing caseload without growing with it.