Labs / Live demo

CA Workers’ Comp pre-clearance,
in under two minutes.

A broker emails an inquiry. The system pre-fills from CSLB, BuildZoom, and CA SOS, runs a set of opinionated rules, and replies with three answers: will we quote, is this worth the broker’s time, and what documentation is needed to move forward. Proof of concept for the fuller underwriting workstation.

Password available on request. Email hello@insure-thing.com.

400+
Construction companies in the test bed
30+
Derived facts per insured
11
Production rules
<$0.01
Full pipeline cost per insured
~60s
First reply latency, broker email to drafted answer
Inside the pre-clearance loop

Six pieces that turn a broker email into a structured answer.

Email-driven inquiry loop

Brokers email hello@insure-thing.com with "Submission" in the subject. The agent extracts structured fields with an LLM, resolves the contractor against the CSLB record, runs pre-clearance rules, and drafts a reply with the matched identity echoed back plus the documentation needed to advance the file. Drafts sit in Gmail for human review before send.

Agentic intake from a broker name

Operators type a business name and city. The agent searches CSLB by name, auto-chains to a full lookup on a single match, scrapes the web for operations evidence, drafts a one or two sentence description, and proposes a governing WCIRB class code. The chat shows a single friendly summary; the raw tool trace stays in state for audit but doesn't pollute the operator's view.

Pre-fill from public data with provenance

Per-source pulls from CSLB (license detail, WC carrier history, bond history, personnel), BuildZoom (permit volume, contractor score), and CA Secretary of State (entity registration, year started, standing) produce 30+ derived facts on every insured. Provenance pills on every value let an operator click to the source row in one step.

Rules engine with empirical anchors

Eleven production underwriting rules, each generating a NAIC-compliant plain-English reason on firing. Includes misclassification fingerprinting, shell-company reformation detection via fuzzy surname match, and a lost-carrier-listing rule discovered empirically: one carrier in the test bed shows the pattern at 45%, others at 0%. Empirical-finding to production rule was about three hours.

Rules curation with backtest preview

Underwriters describe a rule in plain English. The composer turns it into a JSON predicate, runs it as a backtest against the seeded book, and shows precision and recall before the rule is saved. The same empirical pipeline that produced the lost-listing rule is the one operators run on rules of their own design.

Same substrate for humans and agents

Every data source is an MCP server. External MCP clients (Claude Desktop, Cursor, ChatGPT Developer Mode) can probe /.well-known/mcp.json and invoke the same tools the pre-clearance console itself uses. No two-tier architecture.

How to navigate

Suggested click path.

  1. 1

    Open the pre-clearance queue

    Log in with the demo password (email hello@insure-thing.com). 400+ construction companies across a diversity of CA WC carriers load into the grid. Rows sort by triage severity first; declines and referrals float to the top. Confidence-coloured chips on every value.

  2. 2

    Click any insured

    The agent timeline animates the steps it took to assemble the record: fetch CSLB, cross-reference SOS, derive 30+ facts, run 11 rules. Each step is click-expandable. Every fact has a [?] button that opens its source and reasoning.

  3. 3

    Look at SILVER LAKE BUILDER INC

    Pinned to the top of the queue. CSLB classifies them as a B (General Building) general contractor; they’re rated under a single narrow WC class (5474, Painting). BuildZoom permits show painting work in LA. The misclass-fingerprint rule fires REFER with a plain-English reason citing every source row used. Click the [?] on the rule firing to see the audit JSON the regulator would get.

  4. 4

    Try the agentic intake

    Open Guided intake from the sidebar. Type a business name and city (e.g. “Rafael’s Tree Services in Oakley, CA”) and watch the agent search CSLB by name, auto-chain to a full lookup on a single match, scrape the web for operations evidence, then draft an operations description and propose a governing WCIRB class code in one chat turn. One friendly summary; the raw tool trace is preserved in state for audit but doesn’t pollute the chat.

  5. 5

    Send a real inquiry email

    Email hello@insure-thing.com with “Submission” in the subject and a one-paragraph quote request. Within about a minute the agent reads the inbox, runs the full pipeline, and drafts a reply in the same Gmail thread: clear / refer / decline / clarify, with the matched identity echoed back, override documentation when applicable, and a workstation link for next-stage materials. Drafts wait for human review before they actually send.

  6. 6

    Probe the MCP servers

    Fetch /.well-known/mcp.json to enumerate the four MCP servers this origin exposes. From Claude Desktop, add the CSLB endpoint and run a tool call. Same code path the pre-clearance console itself uses. No agent-only tier, no UI-only tier.

Under the hood

Built on small, opinionated choices.

Frontend

  • Next.js 14 App Router
  • Tailwind utility classes (no shadcn)
  • TanStack Table v8 for the queue grid
  • framer-motion for the agent timeline

Backend

  • Supabase Postgres with per-source typed tables
  • pg_trgm for cross-license fuzzy match
  • Vercel Python serverless for the scrapers / MCP servers
  • Tavily for web research, OpenRouter for LLM routing

LLM strategy

  • Live mode: Gemini 3 Flash Preview
  • Batch mode: DeepSeek V4 Pro
  • High-stakes override: Claude Sonnet 4.6
  • Empirical comparison of eight models in repo
Where this goes

Pre-clearance is the first stage. The substrate carries further.

Next

Rules curation as a real product surface

A lifecycle for proposed rules (draft, in review, approved, live), an escalation chain so underwriting managers approve any Decline-severity rule before it goes live, and an agentic refinement loop where the composer narrows a rule that’s firing too often on a specific segment and previews the new backtest before save.

Next

Multi-channel communications

Email is the first channel because brokers default to it. The substrate is channel-agnostic; the Gmail integration is one adapter. Slack and Microsoft Teams for embedded carrier deployments, WhatsApp and iMessage for high-volume small-account broker channels, Telegram for international and outside-CA pilots. Same agent, same rules, same templates.

Next

Pricing guidance, not just triage

Today the answer is categorical (clear, refer, decline, clarify). The next layer suggests pricing posture: “this risk may qualify for our best tier if claims history is clean,” “we’d want a loss-control consultation,” “borderline appetite, we’d sharpen with this documentation.” Anchored on WCIRB pure premium rates and the empirical patterns from the sample.

Honestly

What the proof of concept doesn’t do yet.

This is pre-clearance, not quote-to-bind. The system stops at “will we quote, refer, or decline, plus what documentation we need.” The pre-filled application page brokers continue from is the next build after the three pillars above. Policy admin, billing, and claims are out of scope for the proof of concept.

Single-tenant demo, gated by one shared password. Multi-tenant and per-user auth is a v1.0 concern; the substrate supports it but the demo doesn’t expose it.

Best understood by clicking around.

The demo is live, the password is one email away, and 400+ construction companies across a diversity of carriers are waiting in the queue.