Project case study

FixoraAI

Dual-lane LangGraph orchestration for maintenance operations. Separates execution work from informational queries, routes ~94% correctly, and escalates ambiguity instead of guessing.

Private implementation; details are shared at an architectural level.

FixoraAI project

Problem

  • Execution work and general questions were landing in the same queue
  • Wrong routing cost real operational time, like the wrong technician being dispatched
  • Rule-based keyword matching was not accurate enough for the actual query distribution

Constraints

  • Classification latency under 2 seconds
  • Wrong routing has direct operational cost
  • Ambiguous requests must escalate, not produce a confident-sounding wrong answer

Architecture

  • Two-lane state graph: one lane for execution work, one for informational queries
  • Shared state with confidence checks at each decision node
  • Persistent store holds conversation history and context

Tradeoffs

  • State graph over a single prompt chain. Routing needed explicit branching and state, not one LLM call and a prayer
  • Rapid-prototyping UI over a polished frontend. Validation mattered more than production polish at this stage
  • Multi-step classification over single-call. Noticeably better on edge cases

Outcome

  • ~94% correct routing without human intervention
  • Escalation path catches ambiguous requests instead of forcing a classification

Tools and technologies

LangGraph · Streamlit · PostgreSQL · AWS Bedrock