European Municipal Services — Cloud + AI enablement
Modernized a legacy application stack to cloud infrastructure and deployed a citizen-facing AI assistant for common service requests.
The problem
- A monolithic .NET application on aging on-prem VMs handled 12 citizen services with frequent outages during peak periods.
- Frontline staff manually triaged ~1,800 inbound emails and forms per week, routing them across 9 departments.
- Strict GDPR and data-residency requirements blocked off-the-shelf SaaS chatbots.
The solution
- Strangler-fig migration: kept the legacy app behind an API gateway while progressively moving service lines to containerized services in an EU-region cloud.
- Citizen-facing assistant trained on official policy documents, FAQs, and form metadata — answers in the local language and routes complex cases to the correct department.
- Internal triage copilot for staff that classifies inbound requests, pre-fills case forms, and suggests next actions based on prior cases.
Architecture highlights
EU-region Kubernetes cluster with IaC (Terraform), private networking, VPN to on-prem for legacy integrations.
All citizen data + LLM inference inside the EU region; self-hosted embedding model + EU-hosted LLM endpoint for sensitive flows.
RAG over versioned policy corpus with citation-required answers; classifier model fine-tuned on 18 months of historical case data.
Integration with national eID for authenticated citizen flows; role-based access for staff with full audit trail.
Centralized logs, traces, and PII-scrubbed prompt logs for compliance review.
Measurable outcomes
Indicative figures from the engagement. Exact numbers are placeholders pending client approval to publish.
Let's scope a pilot or a discovery sprint.