Zhen Yang Soh — AI Engineer

Projects · Insurance

Today I build AI agents in insurance.

Four problems I have worked on, and what I built for each.

01 For insurance agents

Problem

Agents have to keep track of every customer, and work out on their own what each one is missing.

  • Remembering who holds what, across a whole book of customers
  • Spotting each customer's coverage gaps by hand
  • Comparing policies from other insurers page by page
  • No set way to go from a gap to a conversation to a sale

Solution

One view of an agent's whole book: every customer's gaps against their segment, the products that close them, and a sales approach they can repeat at scale.

  • Workshops with agents to find out what they actually needed, before building anythingI built a working prototype of the whole platform end to end and put it in front of agents. The features we assumed mattered mostly didn’t; the roadmap followed what agents asked for.
  • Product recommendations for each gap, benchmarked against similar customersSegment benchmarks and rules, not a trained model, so every suggestion can be explained to the agent and the customer.
  • Policy summaries: upload a policy from another insurer, get a plain side-by-side comparisonOCR (Azure Document Intelligence) pulls the policy schedule out of the upload; an LLM summarises it and lines it up against our products.
  • A sales summary written for the customer, automaticallyBuilt from the gap, recommendation and comparison outputs, so every line traces back to something the agent saw.

Built around what agents asked for, not what we assumed.

Awarded for this project · see the announcement ↗

  • Best Use of AI for Customer Experience in Insurance

    The Digital Banker

  • Outstanding Digital CX Transformation in Insurance, Southeast Asia

    The Digital Banker

Stack

  • OpenAI
  • Azure Document Intelligence · Functions · Queue Storage
02 For claims handlers

Problem

Every claim meant reading long, messy documents by hand before anyone got paid.

  • Documents that often run to hundreds of pages
  • Customer submissions that are handwritten, scanned and unstructured
  • Every item checked against the policy wording, by hand
  • Customers waiting weeks for a payout

Solution

AI agents that assess an insurance claim, then pay the customer or hand it to a human for manual review.

  • Reads every document, handwriting and scans includedOCR (Azure Document Intelligence) first, backed by a vision LLM for the pages OCR can’t read cleanly.
  • Checks each item against the policy and works out the payoutA LangChain ReAct loop, steered by a guideline for each claim type, checks the claim against the policy terms and calls tools as it goes.
  • Simple claims go straight through; the rest reach a claims handler with the reasoning already laid outRuns asynchronously on Azure Functions and Queue Storage, from submission through to settlement.
  • A review site I built, where handlers can open any past AI decision and see exactly whyThe payout per item, the full chain of reasoning and every tool call, and a table of each policy term and exclusion with why it passed. Traced in Langfuse underneath.
  • Tested against past claims, then tuned with the people who would use itA claim only counts as correct if the payout lands within a small tolerance of what was actually settled. In UAT, reviewers marked every AI decision on the review site and wrote down why they disagreed; each round of fixes came from those notes.

Payouts that took weeks now take days, and new claim types reuse the same design.

Stack

  • LangChain
  • OpenAI
  • Langfuse
  • Azure Document Intelligence · Functions · Queue Storage
03 For claims recovery teams

Problem

Recovering money from other insurers meant pulling data from several places by hand, one case at a time.

  • Data spread across internal systems, external platforms and spreadsheets
  • Every case checked by hand
  • The same steps repeated in two systems for every case
  • More recoveries coming in than the team had hands to process

Solution

An automated recovery pipeline that gathers the data, does the paperwork, and flags what it can't handle.

  • Brings every source into one placeETL pipelines in Databricks bring the data together.
  • Checks each case, then works through every step in both systemsLogic Apps run the flow; Selenium RPA handles the steps in each system.
  • Never does the same step twiceIdempotency checks before every action, so a rerun is always safe.
  • Hands anything unusual to a personStructured exception logs that claim handlers can review and retry from.
  • Fixes the input, not just the processWorked with the business on upstream data extraction, since clean data decides how many cases run straight through.

Recoveries that sat waiting for people now move on their own. I led the project.

Awarded for this project · see the announcement ↗

  • Process Automation

    Insurance Asia Awards

Stack

  • Databricks
  • Selenium
  • Azure Logic Apps
04 For contact centre staff

Problem

Staff get asked about every product the company has ever sold, and nobody can remember them all.

  • Questions on products, eligibility, coverage and how to make a claim, all day
  • Legacy products still in force, not just the ones on sale today
  • Answers buried in product documents full of tables
  • New joiners have to learn all of it before they can answer with confidence

Solution

An assistant in Microsoft Teams that answers product questions and cites the page it found the answer on.

  • Reads the tables in product documents, not just the textAzure Document Intelligence extracts the layout, so benefit tables survive ingestion intact.
  • Works out which product and plan a question is aboutAn LLM step reads the question for the product and plan code, and those become filters on the search.
  • Splits a question that asks several things into partsQuery decomposition, so each part gets its own search before the answer is put together.
  • Asks each part several ways, so a wording mismatch doesn't miss the answerMulti-query retrieval: an LLM rewrites each part into alternate queries, each one is searched separately, and the results are merged into one context for the answer.
  • Finds the right passage by meaning and by exact termHybrid retrieval on Azure AI Search: vector and keyword search together, then reranked.
  • Cites the page every answer came fromDocument and page are stored as metadata at ingestion, so the citation points to the source, not a guess.
  • Lives where staff already workDelivered into Microsoft Teams through Copilot Studio. I built it end to end on my own.

Staff can check a product in the middle of a conversation, and follow the citation back to the page.

Stack

  • Azure AI Search · Document Intelligence
  • OpenAI embeddings · LLM
  • Copilot Studio Microsoft Teams