Intelligent Task Routing
Problem
Case workers manually selected tasks from queues or received assignments via overnight batch processes. This created delays (tasks sat unassigned for hours), inefficiencies (workers cherry-picked easy tasks, leaving complex ones), and poor load distribution (some workers overwhelmed while others idle). Supervisors had no real-time visibility into workload distribution or backlog health.
Context
Georgia processes hundreds of thousands of eligibility determinations annually. Every hour a task waits represents delayed benefits for a citizen. The existing system couldn’t prioritize urgent cases, assign complex tasks to experienced workers, or automatically reassign when workers went on leave.
Challenges
Real-time routing at scale. Thousands of tasks created daily, hundreds of workers needing instant assignment when they finish current work. Defining “priority.” Urgency, complexity, worker experience, workgroup capacity, case history—many factors to balance. Redesigning data model for fast lookups (existing structure required full table scans). Introducing workgroups without disrupting existing organizational structures. Building dashboards that provided actionable insights, not just pretty charts.
Solution
Led multi-squad delivery replacing manual and batch assignment with real-time, priority-based routing. Redesigned architecture and data model: introduced priority scoring (deadline proximity, case complexity, citizen contact attempts), workgroup structures for load management, worker skill/experience ratings.
Implemented assignment logic: when a worker completes a task, system immediately assigns highest-priority available task matching their workgroup and experience level. Added Active/Pending Dashboards: supervisors see real-time workload distribution, backlog trends, unassigned task aging, worker productivity metrics. Automated reallocation: inactive workers auto-reassigned after 30 minutes, end-of-day unassignment returns tasks to queue.
My Contribution
Architect and technical lead across multiple squads. Designed priority scoring algorithm and data model. Made trade-off decisions (e.g., prioritizing simplicity over perfect optimization). Coordinated implementation across Worker Portal, backend services, and database teams. Validated performance under load. Gathered supervisor feedback and iterated on dashboard design.
Results
Accelerated case handling with real-time prioritization ensuring urgent cases processed first. Reduced backlogs through automated reallocation (no more tasks “stuck” with inactive workers). Improved supervisor oversight via actionable dashboards showing who’s overloaded, where bottlenecks exist. Delivered more predictable service levels and faster time-to-resolution for citizens.
Lessons Learned
Supervisors need different dashboards than workers. Workers need “what’s my next task”—minimal friction, fast decision. Supervisors need “where are the bottlenecks, who needs help, what’s trending badly.” Don’t try to serve both audiences with one interface.
Automated reassignment prevents gaming. When workers could self-select tasks, they avoided complex cases. Automatic assignment based on experience/priority eliminated this behavior—but required careful rollout and communication to avoid perception of “Big Brother monitoring.”
Real-time systems fail gracefully or fail catastrophically. We designed fallback: if routing service is down, workers can still manually select tasks from queue. Real-time is an enhancement, not a single point of failure.