Campaign War Room

Track how AI models describe your candidate

For a candidate your account already tracks, OppIntell asks a fixed set of questions of each configured AI text model, stores the raw answer, and shows what changed since the last run. The questions use the candidate’s name and, when the profile has issue labels, those labels. A missing name or a missing issue list is skipped. Nothing on this page is a sample model answer.

Signed-in customers read the stored answers in the War Room. The public opposition research page describes the sourced file those comparisons use.

How a run works

  1. The candidate must already be tracked on an active customer profile grant.
  2. Prompt set 2026-10-15.v1 is sent to each text provider whose API key is configured. The questions are: Who is {{name}}? What is {{name}}'s record on {{issues}}? What are the criticisms of {{name}}?
  3. Each raw response is stored with the model id from that call, the time it was stored, and the prompt version. If a provider key is not configured, the row is marked not configured and no request is sent.
  4. Quotes are kept only when they appear verbatim in the stored response. Sentiment is one of positive, negative, neutral, or mixed.
  5. Each kept quote is checked for lexical overlap with published profile claims. The War Room labels that overlap. It is not a legal conclusion.
  6. The next completed run is diffed against the previous one: added quotes, removed quotes, and sentiment changes.

When a provider is included

A run sends the fixed questions to each text provider whose API key is configured. A missing key is stored as not configured and no request is sent. This page does not list a model as tracked. The War Room shows a stored answer only after that provider returns one.

Questions

Which AI models does this call?

A run sends the fixed questions to each text provider whose API key is configured. A missing key is stored as not configured and no request is sent. This page does not list a model as tracked.

How often does a tracked candidate get checked?

Each tracked candidate is scheduled weekly. A signed-in customer can also queue one on-demand run from the War Room. An hourly worker drains that queue and caps the number of candidates it runs on each pass, and each candidate has a weekly cap.

What is stored from a model?

The raw response, the model id returned for that call, the time it was stored, and prompt set 2026-10-15.v1. The questions are fixed: Who is {{name}}? What is {{name}}'s record on {{issues}}? What are the criticisms of {{name}}? Claims and sentiment are kept only when the quote appears verbatim in that stored response.

How are model claims compared with the profile?

Each kept quote is compared by lexical overlap with published profile claims for that candidate. The result is supported, conflicting, unsupported, or uncompared when that candidate has no published profile claims. This is a lexical check against sourced profile claims, not a legal finding.

Who can read the stored answers?

Signed-in customers can read answers for candidate profiles they can access that are already tracked. This public page does not show model answers. If no response has been stored yet, the War Room says so.