ContentHub multi-tenant document platform
Document capture, classification and case handling for organisations, with SSO and a Go job runner.
- Role
- Lead engineer
- Period
- 2026
- Sector
- Document management
- Status
- In production
- Stack
- Django
- Go
- River
- FastAPI
- PostgreSQL
- Zitadel
The problem
Teams receive invoices, claims and letters by email and upload, and need them typed, filed and routed without manual sorting.
What I built
- Replaced Celery and Redis with a Go job runner (River) that keeps jobs in PostgreSQL.
- Python classification and extraction service with fallback tiers and a circuit breaker, so a model outage degrades gracefully.
- Desktop folder-sync client (Go, Wails, Svelte) with notarised macOS builds.
Outcome
- Inbound documents are typed, filed into the right case and their fields extracted automatically.
Updated 2026-10-17
Need something like this?
Tell me what you're working on and I'll reply within one working day.
Start a conversation