LangGraph · Langfuse · Multi-Agent · LLM Observability

Multi-Agent CV Screener
with trace-driven optimization

A three-agent router → retriever → scorer pipeline in LangGraph, fully instrumented with Langfuse. I read the traces, found the failure modes, and fixed them — with measured before/after results.

+7%
decision accuracy
−37%
latency / screen
−95%
cost per 1k screens
100→0%
scorer parse failures

How it works

Every node is a Langfuse span; every model call a captured generation with token usage and cost.

Architecture

Live demo

Paste a CV, pick a profile, and watch each agent decide — with a per-node cost breakdown and a link to the Langfuse trace.

The optimization, measured

Same pipeline, two profiles (gpt-4o → gpt-4o-mini + structured outputs). Numbers measured live through Langfuse over 18 labeled candidates.

Before / after metrics

Unparseable scorer output

The free-text scorer never emitted a parseable score (100% fallback). Fixed with schema-constrained JSON — 100% → 0%.

Over-powered model

gpt-4o on bounded tasks drove cost and latency. Moving to gpt-4o-mini cut cost ~95% with no accuracy loss.

Protected routing

Routing was already 100%; explicit prompts kept it there on the cheaper model — no regression.

Found in the traces

Each fix traces back to a specific Langfuse observation — not guesswork.

Stack

LangGraph Langfuse Python OpenAI Gradio