Skip to content
All work

Case study

Underwriter's Assistant Chatbot

In plain English

Underwriters ask a claim a question in plain language instead of jumping between tools.

Work that took minutes now completes in under 30 seconds.

Who it is for

  • Underwriters who need future-risk facts from a case file without writing queries.
  • Claims assessors who need post-issue file facts, not a bind decision.
Underwriter's Assistant Chatbot screenshot
Underwriter's Assistant Chatbot screenshot

Problem

Underwriters and claims staff jumped between tools for every question. Keyword search could not join cases, policies, labs, and timelines. Semantic search alone missed “what happened before the application was signed.”

They needed one conversation on a claim that classifies the query, picks cards and keywords, and refuses to invent a missing fact.

Solution

A LangGraph classifies the query, picks a retrieval strategy, and recommends card types and search keywords. Retrieval is hybrid: SQL full-text plus date filters, or SQL in parallel with Milvus, then merged. Incomplete answers loop to targeted retrieval or query refinement instead of hallucinating.

Role prompts cover underwriter, claims assessor, and a general assistant. Completion is Azure OpenAI. This is not a bind engine and does not call the extraction GPU pool.

Outcomes

One natural-language turn covers classification, card routing, keyword search, vectors, and answer validation.

Multi-tool work that once took minutes now completes in under 30 seconds when the cards are ingested.

LangGraphMilvusSQLAzure OpenAIRAGAWSDocker

How it works

A claim chat session, a LangGraph that classifies and validates, and hybrid retrieval over SQL keywords plus Milvus.
A claim chat session, a LangGraph that classifies and validates, and hybrid retrieval over SQL keywords plus Milvus.

Classify, retrieve, validate

A question is classified, retrieved from SQL or hybrid search, generated, then validated with loops for missing cards or a better query.
A question is classified, retrieved from SQL or hybrid search, generated, then validated with loops for missing cards or a better query.

What we built

LangGraph nodes

  • Classify the query

    Type, complexity, domain, entities, and a retrieval strategy, not a keyword if-statement.

  • Hybrid retrieve

    SQL full-text and dates, or SQL plus Milvus in parallel. Temporal and keyword queries skip vectors on purpose.

  • Generate by role

    Underwriter, claims assessor, or assistant system prompts.

  • Validate, then loop

    Completeness, evidence, and temporal accuracy. Incomplete answers go to targeted retrieval or query refine.

How it works

The client opens a claim session and asks in plain language. The graph analyzes the query, retrieves from SQL and optionally Milvus, generates with a role prompt, then validates before END.

Chat completion is Azure OpenAI. Extraction’s self-hosted GPU pool is a different product.

Integrations

  • LangGraph

    Classify, retrieve, generate, validate, and loop in one turn.

  • SQL and Milvus

    Keyword and date filters on cards, plus semantic overlap when the query needs it.

  • Azure OpenAI

    Classification, answer, and validation. Chat does not call the local serving URL.

Have a similar challenge?

Start a project