Search

Campaign Intel

Semantic search for political consulting focus groups. Surface institutional knowledge without pulling in senior staff.

The Problem

Political consulting firms face a persistent challenge with institutional memory, one that directly impacts organizational capacity. When junior staff can surface relevant focus group research without pulling in senior colleagues, they operate at roughly 70% of senior capacity for research tasks. That shift frees experienced consultants for higher-value strategic work and compounds institutional knowledge rather than letting it walk out the door when people leave.

The problem is that this leverage does not exist today. Every election cycle, firms conduct dozens of focus groups across multiple races, generating rich qualitative data about voter sentiment, messaging effectiveness, and strategic positioning. These transcripts accumulate in shared drives, but the insights they contain remain largely inaccessible. The practical knowledge of what worked, what failed, and why lives primarily in the heads of senior staff who were present for the original research.

When a junior associate needs context before a strategy call, they face a difficult choice: spend hours searching through hundreds of documents with no reliable way to surface relevant material, or interrupt a senior colleague who might remember something useful from a similar race. Neither approach scales effectively, and when experienced staff eventually leave the firm, their accumulated pattern recognition leaves with them. The opportunity is to make institutional knowledge compounding rather than perishable, allowing firms to build on their research investments across cycles rather than starting fresh each time.

Discovery

Before building anything, I ran a simulated client engagement with an SVP at a mid-sized Democratic political consulting firm to pressure-test the concept and surface real requirements.

Several pain points emerged through conversation. Focus group transcripts are effectively inaccessible because there is no way to search them by meaning rather than keywords. Cross-race learning rarely happens because teams running multiple races simultaneously have no capacity to synthesize insights across them. Senior partners hold valuable pattern recognition that they cannot easily transfer, often expressing intuitions like “this feels like a race we ran in 2018” without documentation to support the comparison. The August-through-November cycle crunch compounds all of these problems by eliminating any capacity for onboarding or knowledge transfer during the period when it matters most.

The insight that emerged from discovery centered on leverage rather than efficiency. Junior staff spend hours preparing for strategy calls, often unsure what questions to ask or where to look. Framing the tool as “faster document search” would position it as a commodity. Framing it as “junior staff operating at senior capacity for research tasks” reframes the conversation around margin and organizational capacity, which is where the actual business value lies.

Architecture Decisions

Per-focus-group retrieval

Standard retrieval systems return the top results globally across the entire corpus. When multiple focus groups discuss similar themes, this approach causes one group to dominate the results while obscuring the cross-group perspective that makes comparative analysis valuable.

The solution is to query each focus group independently and return results grouped by source. This matches how analysts actually think about the data: they want to know what each demographic segment said about a topic, not just the most semantically similar passages regardless of context. The tradeoff is that the routing layer becomes more critical since it determines which focus groups get queried, but this approach preserves the diversity that makes cross-race analysis useful.

Grouped output with moderator context

The client was specific about output format requirements: results should be grouped by focus group, with the moderator’s summary displayed as a header and relevant quotes shown underneath with citations.

The reasoning behind this requirement is that demographic context fundamentally changes how a quote should be interpreted. A statement from a working-class focus group in Youngstown carries different strategic weight than the same sentiment expressed by suburban voters in Columbus. Presenting quotes without their demographic and geographic context makes them difficult to interpret correctly. Moderator notes provide this framing context but are not themselves searchable; they exist to contextualize the quotes that are.

Recall over precision

The trust requirement from discovery was explicit: a single hallucination would destroy the tool’s credibility with users. This constraint shaped the entire approach to result filtering.

The system defaults to surfacing more potential matches rather than aggressively filtering for only the highest-confidence results. Users can adjust the relevance threshold themselves, casting a wider net for exploratory queries or tightening criteria for precise lookups. The rationale is that false positives are recoverable because the user can simply skip irrelevant results, while false negatives are invisible because the user never knows what relevant material the system failed to surface.

The Corpus

For readers outside political consulting, a focus group is a moderated conversation with eight to twelve voters, typically segmented by demographics such as suburban women, working-class men, or swing voters in a particular county. A professional moderator asks structured questions about issues, candidates, and messaging while participants discuss their views. Sessions typically run ninety minutes and produce thirty to fifty pages of transcript.

Each transcript contains two layers of content. The raw dialogue captures what participants actually said, with speaker identifiers and demographic tags allowing analysts to track individual perspectives. The moderator notes at the end of each transcript provide a human-written summary capturing key themes, notable moments, and strategic implications that emerged during the session.

The demo corpus includes 37 focus groups across 12 races from the 2022 and 2024 election cycles, totaling approximately 37,000 transcript lines. The races span Senate, Governor, and House campaigns across Michigan, Ohio, Pennsylvania, Wisconsin, Arizona, Georgia, Montana, Nevada, and North Carolina. Importantly, the corpus includes both winning and losing races, which matters for understanding what approaches did not work.

Capabilities

The system supports several query types that reflect how analysts actually approach focus group research:

TypeExample
Topic + location”What did Ohio voters say about the economy?”
Thematic search”Show me quotes about working-class frustration”
Pattern search”Moments where voters expressed distrust in institutions they used to support”

The pattern search demonstrates the core value of semantic retrieval. A query about institutional distrust surfaces relevant sentiment about union disillusionment and political abandonment without requiring the user to guess the specific keywords that participants might have used. The system finds meaning rather than matching terms.

Synthesis Architecture

Most retrieval systems return relevant chunks and stop there, leaving the user to synthesize meaning from the raw material. This system adds three synthesis layers, each designed to serve a different analytical need.

Light synthesis surfaces moderator notes as headers when results are grouped by focus group. This provides immediate context about whether a quote represented a major theme or an offhand comment, and what the demographic composition of that session was. Light synthesis is pre-computed from the existing moderator notes and adds no latency to queries.

Deep synthesis can be generated on demand within a single focus group. This layer answers the question of what the overall sentiment in a particular session was regarding the searched topic. It aggregates across the quotes returned for one group, identifying patterns and contradictions within that demographic segment.

Macro synthesis works across focus groups through the executive synthesis layer. When a query returns results from Cleveland suburbs, Columbus metro, and Youngstown, macro synthesis identifies which themes are consistent across segments and where the segments diverge. This is where cross-race pattern recognition becomes possible, surfacing connections such as working-class frustration in Ohio that echoes similar sentiment from Pennsylvania two years earlier.

Each synthesis layer cites its underlying sources. No synthesis is presented without clear attribution to the quotes that support it.

Takeaways

The simulated client engagement surfaced requirements that would not have been obvious from technical intuition alone: the grouped output format, moderator context as section headers, and user-adjustable relevance thresholds all emerged from conversation rather than assumption.

Building the system required its own set of decisions: how to break transcripts into searchable excerpts without losing meaning, what context to preserve alongside each quote so results remain interpretable, and how to route queries to the right focus groups before combining results with clear attribution. Neither phase was straightforward, but both benefited from working through a realistic use case rather than building in the abstract.

Interested in learning more?

Check out my other projects or get in touch.