Back to portfolio
detail
00 Problem · goal · constraints

Intuit connects millions of customers with thousands of experts.

Those support paths vary widely. An expert might help someone reset a password, or they might be a CPA with 20 years of real-estate tax experience. This project focused on scaling a proven optimization: use contact attributes to route customers to more suitable experts across many more expert collections.

Scale
Millions of customers needed live help across Intuit products.
Variation
Experts ranged from product-support agents to highly specialized tax professionals.
Bottleneck
The pilot worked, but each new expert collection needed routing logic humans had to maintain.
Result
The rollout saved $10M+ by expanding the optimization to more traffic.
Framing · goals and non-goals
The goal was to scale a proven routing optimization inside a large, already-running contact center.
problem
Matching is high variance
support to specialized tax

The right expert depends on the customer's issue, the product context, and the expertise available at that moment.

goal
Scale contact-attribute routing
resolution and handle time

Apply the proven routing approach to more expert collections to improve resolution rate, reduce transfers, and lower average handle time.

constraint
Improve the local maximum
existing routing system in production

A clean-sheet matching system was not the project. The goal was to scale an existing solution that worked for a small subset of traffic.

detail
01 Why scaling was hard

Contact-attribute routing worked wonderfully in a pilot launch.

Scaling it meant asking humans to author thousands of routing plans.

Every expert collection needed a plan. Each plan had to account for the customers coming in, the experts available in that collection, and the attributes that could predict a better match.

The scaling problem This was not a one-time configuration task. Expert supply changed as people joined, left, trained, or moved between collections. But plans were authored as a snapshot in time and rarely revised.
what one plan had to account for
collection
one expert collectionthen repeat this across thousands more
experts
5 to 500each with different availability, skills, and outcomes
attributes
hundredschoose the few that predict a better match for this collection
crypto taxreal estatepayrollproduct setupbilling
plan
specific → broader → round robinbalance match quality against wait time and service level
Routing plan shape
What is a routing plan? A routing plan is a sequence of matching rules: start specific, wait briefly, then relax.
step 1
crypto tax specialist

Best match if supply exists.

wait 30s
step 2
tax specialist

Broaden to adjacent tax expertise.

wait 30s
step 3
product specialist

Prefer product fluency when domain supply is constrained.

wait 30s
fallback
round robin

Stop filtering by specialist attributes and use the collection's default routing behavior.

no attribute filter
supply-aware degradation
18%
step 1
crypto tax specialist
43%
step 2
tax specialist
69%
step 3
product specialist
100%
fallback
round robin
detail
02 2024 LLM environment (top models: OpenAI 4o + Anthropic Claude Sonnet 3.5, pre Claude Code)

The AI product shape matched the trust level of the time.

The first version was built in a 2024 AI environment: useful LLM classification, limited trust, smaller context windows, and much less appetite for fully dynamic production decisions. The right first product shape was a copilot, not an autonomous router.

Models

Cheap transcript classification

Use lower-cost LLM passes over completed interactions to extract demonstrated skills and problem themes.

Trust

Human approval path

Generate routing plans offline, send them to operators for review, then publish approved versions.

Architecture

Built for later dynamism

The same evidence pipeline could later feed runtime matching once the business trusted AI-generated decisions.

Design bet
Kept the high-risk AI decision outside the live call path until the evidence base was strong enough.

That made the first release easier to ship: the system could process transcripts asynchronously, generate candidate plans, and let humans decide whether the plan looked credible. The tradeoff was speed: the copilot still depended on operators engaging with the workflow.

Future-proofing The pipeline captured reusable evidence: customer question embeddings, expert collection context, resolution quality, transfers, and inferred expert skills. That data later became the foundation for dynamic plans.
detail
03 Evidence pipeline

We used call transcripts to infer what experts had actually demonstrated.

Transcript completed
event
LLM extracts
problem + skills
Outcome signals
satisfaction, transfer
Expert collection
history
Skill evidence
by expert
Candidate routing
plan
Key move Instead of asking someone to enumerate every expert skill manually, we mined interactions where the expert had already solved the kind of problem we wanted to route.
Why transcripts mattered
Transcripts showed what customers actually needed and what experts actually handled.

The old inputs were incomplete. Expert attributes could be missing, stale, or too coarse. Transcripts gave us observed evidence: the customer's real intent, the skills demonstrated during the interaction, and whether the conversation resolved cleanly.

observed demand
True customer intent
not just entry-point metadata

What the customer actually asked for inside the conversation.

observed supply
Demonstrated expert skill
not just self-reported labels

Which kinds of issues the expert had already handled in real interactions.

observed quality
Clean resolution
transfer and satisfaction signals

Whether similar pairings ended well or needed another expert.

detail
04 Product evolution

The system moved from AI-generated plans to runtime matching.

v1 · copilot
Generate, review, publish

For each expert collection, generate a routing plan from historical transcript evidence. Operators review the plan, then publish it to production.

v2 · dynamic
Customer-specific plan at runtime

When a customer arrives, use customer context, semantic retrieval, and expert collection constraints to construct a plan suited to that request.

Input

Customer context

Product, profile, and the question or issue the customer is asking about.

Retrieval

Similar successes

Prior interactions that look like this problem and ended well.

Plan

Calibrate supply

Prefer the best expert attributes first, then degrade without starving service levels.

Public architecture view
Analyze past interactions offline. Keep live routing fast and predictable.

The detailed production architecture is private to Intuit. At a public level, the design separated historical analysis from the time-sensitive routing experience and turned learned evidence into controlled routing behavior.

historical learning · customer not waiting
Completed
interactions
Customer + expert
evidence
Routing
guidance
live routing · customer waiting
Customer context +
routing guidance
Prioritized
match
Available
expert
detail
05 Intent taxonomy · semantic cache

A semantic cache kept the intent taxonomy useful without freezing it in place.

Completed
transcript
LLM extracts
customer intent
Generate intent
embedding
Search OpenSearch
intent taxonomy
Compare top score
with threshold
Hit: reuse label
Miss: new candidate
Decision rule If the nearest intent met or exceeded the score threshold, it was a cache hit and we reused the existing taxonomy entry. A score below the threshold was a cache miss, so the intent became a candidate for the taxonomy.
Vector search design
The threshold turned nearest-neighbor retrieval into an explicit taxonomy decision.

We stored intent embeddings in an OpenSearch table and searched it as a semantic cache. This reduced duplicate labels while still surfacing genuinely different customer needs.

engine
Faiss
approximate k-nearest neighbors

The vector-search library behind the index.

algorithm
HNSW
hierarchical graph search

The index method used to retrieve the nearest intent efficiently.

space
L2
squared Euclidean distance

OpenSearch converts distance into a higher-is-better score: 1 / (1 + distance).

Implementation reference OpenSearch documents the Faiss, HNSW, and L2 method configuration and its distance-to-score conversion.
detail
06 Rollout and outcome

The rollout expanded contact-attribute routing from a small set of expert collections to broad production use.

The project succeeded by turning a high-touch operational workflow into a repeatable system. It did not need every expert collection owner to understand every attribute. It needed evidence, plan generation, review controls, and a path to runtime decisions.

  • Traffic coverage grew from 0.5% to 40%. Contact-attribute routing became a real production path, not a prototype.
  • Plan generation dropped from 3-6 months to under 4 hours. Authoring stopped being the bottleneck for expanding coverage.
  • $10M+ saved. The business outcome came from better matching and broader routing-plan coverage.
  • Expert collection observability improved. Transcript analysis also explained what opaque expert collections were actually handling.
contact-attribute routing coverage
before
0.5%
after
40%
author
3-6mo → <4h
impact
$10M+
Outcome The important metric was not that AI wrote a plan. It was that more customers reached a better-matched expert without requiring operators to hand-author every expert collection.
My role
I worked across product constraints, AI pipeline design, and production rollout.
analysis
Modeled the routing problem
expert collections, attributes, plans

Translated a messy operational model into concrete plan-generation inputs and constraints.

implementation
Transcript intelligence
LLM extraction and retrieval

Used completed interactions and outcome signals to infer skills and expert collection semantics.

delivery
Path to production
human-in-loop to dynamic

Started with reviewable plans, then evolved toward customer-specific runtime routing.

detail
07 What I would do differently

I would invest earlier in observability and reduce the dependency on human review.

1

Measure expert collection meaning first

Create a clearer readout of each collection: customer intent, transfer patterns, resolution quality, and how that mix changed over time.

2

Reduce dependency on human review

The copilot was the right trust bridge, but the business did not want to keep approving plans forever.

3

Make live evals scalable

Ironically, we ran rigorous evals for a specific rollout cohort, but the evaluation system itself should have scaled with every new collection.

Reflection The strongest technical work was not enough by itself. The system also needed a sharper operating model for who owned expert collection definitions, plan quality, and ongoing calibration.
Current frontier
The next unlock was availability-aware matching.

Expert collection membership does not mean an expert can take a call now. They may be offline, already helping someone, or temporarily unavailable. Folding real-time availability into plan generation was the step that made routing less theoretical and more operationally correct.

Why it matters The best plan on paper can still perform poorly if the preferred experts are not available. Supply-aware routing makes the matching objective honest.
detail
Recap matching · evidence · rollout

The project turned routing plans from manual artifacts into a data product.

Problem

Static plans could not scale

Thousands of expert collections and opaque expertise made hand-authored plans a bottleneck.

Approach

Mine interaction evidence

Use transcripts, outcomes, embeddings, and filters to infer what expertise actually solved problems.

Outcome

40% traffic and $10M+ saved

Plan generation dropped from 3-6 months to under 4 hours.

Through-line I worked inside a constrained enterprise system, used AI where it fit the trust boundary, and evolved the design as the evidence and business appetite improved.
Public context
Amazon Connect provided the contact-center flows and customer-agent connections underneath the routing work.

The implementation details are private to Intuit, but the public AWS materials explain the platform context: Intuit's contact-center scale, Amazon Connect, and contact attributes as routing inputs in contact flows.

public context
Intuit contact center on Amazon Connect
AWS customer story

AWS case study on Intuit's contact-center migration and scale.

platform primitive
Amazon Connect contact attributes
AWS documentation

AWS docs for the contact-attribute concept behind routing inputs in Amazon Connect flows.

← → advance · detail toggle / space flips detail
1/8