VERIFLOW — From Web Research to Evidence-Backed Decisions

Inspiration

Researching a question online often means opening multiple tabs, scanning long articles, comparing conflicting claims, and trying to figure out what information is actually useful. AI can make this process faster, but an answer without accessible evidence can be difficult to verify.

I wanted to build a tool that brings these two parts together: the speed of AI-assisted research and the transparency of source-based investigation.

That idea became VERIFLOW, an AI-assisted research application designed to turn a research question into a structured report with a synthesized answer, source links, practical next steps, and clear limitations.

What It Does

VERIFLOW combines web search with AI-powered synthesis to help users move from a question to a more informed understanding of a topic.

Users submit a research question through the web interface. The backend searches the web using Tavily, collects relevant source titles, URLs, and excerpts, and passes the available evidence to Google Gemini for synthesis. The resulting report includes an answer, linked sources, suggested next steps, and a reminder to verify important claims against the original material.

The application also includes a fallback path: if Gemini cannot generate a usable response, VERIFLOW can fall back to the Tavily answer or provide a message based on the available results.

How I Built It

I built VERIFLOW with a Next.js frontend and a Python FastAPI backend.

The backend validates incoming research questions, calls the Tavily API to retrieve web results, prepares source records, and calls the Gemini API to synthesize an answer from the retrieved evidence. It then returns a structured JSON report to the frontend.

The main technologies are:

  • Next.js for the web interface
  • FastAPI and Python for backend logic and API endpoints
  • Tavily for web research and source retrieval
  • Google Gemini for answer synthesis
  • Vercel for frontend deployment
  • Render for backend deployment

I also configured cross-origin access between the deployed frontend and backend, managed API credentials through server-side environment variables, and added health checks to inspect service and provider configuration.

Challenges I Faced

One of the main challenges was connecting the frontend, backend, and external APIs into one working application. A research interface is only useful when the complete flow works: the question must reach the backend, search results must be retrieved, synthesis must run, and the final report must return successfully.

Deployment introduced additional configuration work, particularly around CORS, environment variables, and keeping the frontend's API URL aligned with the deployed backend.

Another challenge was handling failures gracefully. Rather than making the entire research flow depend on a successful Gemini response, I implemented a fallback to the existing search answer when synthesis is unavailable.

I also wanted the application to be more transparent than a simple chatbot. Returning source URLs and excerpts gives users a way to inspect the evidence themselves instead of relying entirely on a generated summary.

What I Learned

Building VERIFLOW strengthened my understanding of API integration, backend validation, environment-based configuration, deployment, and debugging across a frontend/backend boundary.

It also reinforced an important lesson about AI applications: generating an answer is only one part of the problem. The application should make its supporting evidence accessible, communicate its limitations, and encourage users to verify important claims.

What's Next

I want to improve VERIFLOW's source comparison, evidence quality, and handling of conflicting information. Future improvements could include clearer claim-to-source mapping, more structured evidence assessments, and stronger ways to distinguish well-supported findings from uncertain conclusions.

My goal is to make research workflows faster without losing sight of where the information comes from or how confidently it should be interpreted.

Built With

  • ai-research
  • fastapi
  • generative-ai
  • google-gemini
  • next.js
  • python
  • render
  • rest-api
  • tavily
  • vercel
  • web-search
Share this project:

Updates

Submission history