Inspiration

News and media teams often need to verify facts before publishing an article. This process is usually manual, slow, and hard to scale. I wanted to build a tool that helps editors quickly check whether the factual claims in an article are supported by real evidence.

The idea was to create a first version of a fact-checking assistant that fits naturally into an editorial workflow: extract the facts, verify them, show the evidence, and make it clear when a human should review the result.

What it does

Fact-Checking Agent lets users submit a single claim, a URL, or a PDF. The agent extracts relevant factual claims, searches the web for evidence, evaluates the sources, and generates a clear report for each claim.

Each report includes:

  • Verdict: supported, refuted, or insufficient
  • Confidence score
  • Evidence used
  • Related searches
  • Contradictions
  • Audit status
  • Source snippet
  • Claim metadata, such as entities and key terms
  • A real-time step trace of the workflow

The goal is not to replace human editors, but to help them make faster and better decisions before publishing.

How I built it

I built the frontend with Next.js and TypeScript, using a clean dark UI focused on transparency, readability, and real-time feedback.

The backend runs on Vercel Workflow. The workflow is split into durable steps: claim extraction, evidence search, evaluation, audit, and report generation. This was a good fit because the process is not a single AI call; it has multiple stages, external API calls, retries, and intermediate states.

The app uses the v0 API for AI reasoning and Tavily for web search. The frontend receives live status updates while the workflow runs, so users can see what the agent is doing in real time.

Challenges

One of the main challenges was making the output useful and understandable. A simple final answer is not enough for fact-checking. The app needed to explain why a claim was supported, what evidence was used, what searches were performed, and whether the conclusion should be trusted.

Another challenge was separating the factual verdict from the audit status. A claim can be supported by evidence while still needing review if the evidence quality is weak or incomplete. This distinction made the product more honest and transparent.

I also had to make the real-time workflow trace useful without overwhelming the user, so the interface shows the latest step first and lets users expand the full trace when needed.

What I learned

I learned how to structure an AI agent as a durable workflow, how to stream workflow progress to a frontend, and how important transparency is in AI tools for high-trust use cases.

I also learned that fact-checking is not only about saying “true” or “false.” It is about showing sources, confidence, contradictions, uncertainty, and when a human should still be involved.

What's next

Next, I would like to integrate the agent with a real publishing workflow. For example, a media company could connect it to its internal CMS and automatically run a fact-check before publishing an article.

If all claims pass, the article could move forward. If some claims need review, a human editor could approve, reject, or request more evidence before publication.

Future improvements could include human-in-the-loop review, source reputation scoring, team history, article auto-publishing after approval, and stronger support for longer documents.

Built With

Share this project:

Updates