← vote.help

AI Audit

vote.help uses AI to generate personalized voting guides. To prove our process is fair and nonpartisan, we publish our complete methodology and have submitted it to four independent AI systems for bias review.

View Primary Results

Official election results

Independent AI Audit Scores

We submitted our complete methodology to four independent AI systems. Each scored our process across five dimensions: partisan bias, factual accuracy, fairness of framing, balance of pros/cons, and transparency.

ChatGPT (OpenAI) Review

Pending

Audit not yet run. Results will be published here when complete.

Gemini (Google) Review

Pending

Audit not yet run. Results will be published here when complete.

Grok (xAI) Review

Pending

Audit not yet run. Results will be published here when complete.

Claude (Anthropic) Review

Pending

Audit not yet run. Results will be published here when complete.

Each AI was given the same prompt with our full methodology export embedded. Scores are extracted automatically from structured JSON responses. You can also view the raw results as JSON.

Download Full Methodology Export (JSON)

This JSON file contains every prompt, safeguard, and data pipeline used in the app. You can paste it into any AI system to verify our claims.

Run the Audit Yourself

Don't just take our word for it. Click a button below to copy the complete audit prompt (with our methodology export embedded) and open it in your AI of choice. Just paste and hit send.

How We Generate Recommendations

When a voter uses vote.help, the process works as follows:

  1. Interview: The voter answers questions about their top issues, political spectrum, policy stances, and what qualities they value in candidates. All questions are neutrally framed and answer options are shuffled.
  2. District lookup: Their address is sent to the U.S. Census Bureau Geocoder (a public government API) to determine their congressional, state house, and state senate districts. This filters the ballot to only races they can vote in.
  3. Guide generation: The voter's profile (issues, spectrum, stances) is sent along with the full candidate data for their ballot to Claude (by Anthropic) with strict nonpartisan instructions. The AI recommends one candidate per race and a stance on each proposition, with reasoning tied to the voter's stated values.
  4. Local storage: The generated guide is stored only on the voter's device. Nothing is saved on our servers.

Our Prompts

These are the exact AI prompts used in production. Nothing is paraphrased or summarized.

Guide Generation System Prompt
You are a non-partisan voting guide assistant for Texas elections. Your job is to make personalized recommendations based ONLY on the voter's stated values and the candidate data provided. You must NEVER recommend a candidate who is not listed in the provided ballot data. You must NEVER invent or hallucinate candidate information. VOICE: Always address the voter as "you" (second person). Never say "the voter" or use third person. For example, say "aligns with your values" not "aligns with the voter's values". NONPARTISAN RULES: - Base every recommendation on the voter's stated issues, values, and policy stances — never on party stereotypes or assumptions about what a voter 'should' want. - Use neutral, factual language in all reasoning. Avoid loaded terms, partisan framing, or editorial commentary. - Treat all candidates with equal analytical rigor regardless of their positions. - For propositions, connect recommendations to the voter's stated values without advocating for or against any ideology. Respond with ONLY valid JSON — no markdown, no explanation, no text outside the JSON object.
Guide Generation User Prompt (Template)
Recommend ONE candidate per race and a stance on each proposition. Be concise. NONPARTISAN: All reasoning must be factual and issue-based. Never use partisan framing, loaded terms, or assume what the voter should want based on their party. Treat every candidate and proposition with equal analytical rigor. Connect recommendations to the voter's specific stated values, not to party-line positions. IMPORTANT: For profileSummary, write 2 sentences in first person — conversational, specific, no generic labels. NEVER say "I'm a Democrat/Republican" — focus on values and priorities. VOTER: [Party] primary | Spectrum: [voter's spectrum] Issues: [voter's top issues] Values: [voter's candidate qualities] Stances: [voter's policy views] BALLOT: [Full candidate data for all races on their ballot, including name, incumbency, key positions, endorsements, pros, cons] VALID CANDIDATES (MUST only use these names): [List of all candidate names per race] Return ONLY this JSON: { "profileSummary": "2 sentences, first person, conversational", "races": [{ "office": "exact office name", "recommendedCandidate": "exact name from list", "reasoning": "1 sentence why this candidate fits the voter", "matchFactors": ["2-3 short phrases citing specific voter priorities that drove this match"], "confidence": "Strong Match|Good Match|Best Available|Symbolic Race" }], "propositions": [{ "number": 1, "recommendation": "Lean Yes|Lean No|Your Call", "reasoning": "1 sentence connecting to voter", "confidence": "Clear Call|Lean|Genuinely Contested" }] }
Profile Summary System Prompt
You are a concise, non-partisan political analyst. Return only plain text, no formatting. Describe the voter's views using neutral, respectful language. Never use partisan labels, stereotypes, or loaded terms. Focus on their actual stated values and priorities.
Candidate Research System Prompt (County Seeder)
You are a nonpartisan election data researcher for Texas. Use web_search to find verified, factual information about elections. Return ONLY valid JSON. Never fabricate information — if you cannot verify something, use null. SOURCE PRIORITY: When evaluating web_search results, prefer sources in this order: 1. Texas Secretary of State filings (sos.state.tx.us) 2. County election offices ({county}.tx.us) 3. Official campaign websites 4. Nonpartisan references (ballotpedia.org, votesmart.org) 5. Established Texas news outlets (texastribune.org, dallasnews.com) 6. National wire services (apnews.com, reuters.com) 7. AVOID: blogs, social media, opinion sites, unverified sources CONFLICT RESOLUTION: If sources disagree, trust official filings over campaign claims, and campaign claims over news reporting.
Daily Updater System Prompt
You are a nonpartisan election data researcher. Use web_search to find verified, factual updates about candidates. Return ONLY valid JSON. Never fabricate information — if you cannot verify something, use null. SOURCE PRIORITY: When evaluating web_search results, prefer sources in this order: 1. Texas Secretary of State filings (sos.state.tx.us) 2. County election offices ({county}.tx.us) 3. Official campaign websites 4. Nonpartisan references (ballotpedia.org, votesmart.org) 5. Established Texas news outlets (texastribune.org, dallasnews.com) 6. National wire services (apnews.com, reuters.com) 7. AVOID: blogs, social media, opinion sites, unverified sources CONFLICT RESOLUTION: If sources disagree, trust official filings over campaign claims, and campaign claims over news reporting.

Data Sources

All AI research prompts include a 7-tier source priority hierarchy: TX SOS filings > county offices > campaign sites > nonpartisan references > established news > wire services > avoid blogs/social. When sources conflict, official filings take precedence. See the methodology export for full details.

Bias Safeguards

Every layer of the system includes explicit nonpartisan constraints:

Sample Data Structure

Every candidate in our database has this structure (equal depth for all candidates):

{ "name": "Candidate Name", "isIncumbent": true, "summary": "1-2 sentence neutral summary", "background": "Professional background", "education": "Educational background", "keyPositions": ["Position 1", "Position 2", "Position 3"], "endorsements": [{"name": "Endorser 1", "type": "labor union"}, {"name": "Endorser 2", "type": "editorial board"}], "pros": ["Strength 1", "Strength 2"], "cons": ["Concern 1", "Concern 2"], "polling": "Latest polling data or null", "fundraising": "Fundraising totals or null", "sources": [{"url": "https://...", "title": "Source Title", "accessDate": "2026-02-22"}], "sourcesUpdatedAt": "2026-02-22T14:30:00Z" }

Why Four Different AIs?

vote.help uses Claude (by Anthropic) to generate recommendations. By asking four AI systems — ChatGPT, Gemini, Grok, and Claude itself — to review our methodology, we get a range of independent assessments. Each has different training data, different biases, and different incentives. Including Claude as an auditor of its own system adds a self-review dimension — it knows its own capabilities and limitations better than anyone, but may also have blind spots about its own biases. If all four find our process fair, that's meaningful. If any identifies bias, we'll address it and publish the fix.

Changes Made from Audit Findings

Ongoing Commitment

This audit is not a one-time event. We will re-run it whenever we make significant changes to our prompts, data pipeline, or recommendation logic. The methodology export at /api/audit/export always reflects the current production code.

Related