Semantic Search — Filing Summaries
search_summary_embedsPure vector search over per-filing extraction-summary embeddings (one embedding per filing, ~59K rows total). Each hit is a filing whose extraction summary is semantically closest to your query, with the matching excerpt and lite filing metadata (state, year, company, product type, filing type, filing date).
Cost: one query-embedding call + one indexed Postgres lookup. Bounded, cheap, fast. No LLM planning, no LLM composition. Always reach for this before any LLM-driven alternative.
Right surface for what is this filing about questions:
"Show me filings discussing X" — content questions where X is not a concrete filter (wildfire scoring, telematics programmes, autonomous-vehicle exposure, ESG factors, parametric triggers, etc.).
"Find filings that mention " — when you need to discover filings by content rather than by structured metadata.
"Filings citing trend data on " — when the question is content-shaped, not numerics-shaped.
Wrong surface for:
Actuarial-shape questions like "filings with credibility under 50%", "filings whose indicated and selected rate diverge sharply", "rate filings where frequency trend is negative". Use
search_actuarial_embeds— those numerics live in the actuarial memo, not the summary.Concrete-filter questions like "Filings from carrier NAIC 12345 in 2024" or "ISOF-rooted filings carriers adopted". Use
search_filingswith the typed filters — much faster, no embedding cost at all.Anything with a SERFF id already in hand — use the
get_filing_*tools.
How to combine:
For "recent auto programmes in California with novel rating factors": first
search_filings(state=CA, product_type="Auto", year_from=…) to get a candidate set, then call this tool over those candidates' descriptions implied by the question.For "filings whose summary mentions X": this tool alone, then
get_filing_summaryon the top hits to read in full.
Returns top-K hits, each with {serff, similarity, excerpt, meta}. Default topK=10, max 50. Excerpt is the first 800 chars of the matching summary.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| naic | No | Exact NAIC carrier identifier (5-digit string). Restricts the cosine search to that carrier. | |
| topK | No | Number of top filings to return. Defaults to 10; capped at 50. The result will contain at most this many rows; if filters narrow the candidate set below topK you get what's there, no silent fallback. | |
| year | No | Exact filing year. Mutually exclusive with year_from/year_to. | |
| query | Yes | Natural-language query. Pass the user's question verbatim when you can — short, specific queries (5-30 words) match best. The query is embedded and cosine-compared against per-filing summary embeddings. | |
| serff | No | Optional SERFF id to scope the search to a single filing's summary embedding (shape PREFIX-IDENTIFIER). Each filing has at most one summary embedding, so topK is effectively 1 when serff is set. | |
| state | No | Two-letter US state code, uppercase. Corpus currently covers CA only. | |
| date_to | No | Upper bound on filing date (ISO YYYY-MM-DD). | |
| year_to | No | Upper bound on filing year, inclusive. | |
| date_from | No | Lower bound on filing date (ISO YYYY-MM-DD). | |
| year_from | No | Lower bound on filing year, inclusive. | |
| filing_type | No | Wildcard match on filing type ("Rate", "Rule", "Form", "Withdrawal", etc.). Substring match. | |
| product_type | No | Wildcard match on product type ("Personal Auto", "Homeowners", "Commercial Auto", "Workers Compensation", etc.). Substring match — "Auto" matches both Personal and Commercial Auto. | |
| predecessor_prefix | No | Bureau / org SERFF prefix ("ISOF", "NCCI", "AAIS", "MSO"). Restricts to filings carriers actually adopted into a programme. |