Inspiration

The internet has become a largely unregulated space where anyone can publish content, regardless of whether the information is true. Personally, I grew tired of constantly having to hop back and forth, fact checking every single claim that came up on my for-you-page or dispelling misinformation that my friends and relatives had heard from someone else. So, inspired by the muckraking journalists of the 1890s and 1920s, I wished to be able to create a product that would do the same in the modern era, verifying the truth in real time.

What it does

Muckrake is an AI-powered Chrome extension that fact-checks audio content in real-time. When you're watching a video, listening to a podcast, or streaming content, Muckrake captures the audio, transcribes it using AssemblyAI, extracts verifiable claims using GPT-4, and searches trusted news sources via Google Custom Search API. Within seconds, it displays a vintage newspaper-styled report showing which claims are verified, false, uncertain, or need additional context complete with clickable sources so you can investigate further. Users can also manually fact-check specific claims through a quick search feature.

How we built it

Muckrake is built as a Chrome Manifest V3 extension using vanilla JavaScript. The frontend consists of two main components: popup.js (handles user interactions and API orchestration) and content.js (displays results in a newspaper-themed overlay). The extension uses Chrome's tabCapture API to record audio, which is then sent to AssemblyAI for transcription. OpenAI's GPT-4o-mini extracts factual claims from the transcript and generates optimized search queries. Google Custom Search API retrieves results from a curated list of trusted news sources (BBC, Reuters, AP, etc.). A second GPT-4o-mini call evaluates whether sources actually support, refute, or are neutral toward each claim, returning a relevance score and stance. The UI is styled with custom CSS to replicate a 1930s newspaper aesthetic, complete with spinning entrance animations, a completion voice line generated by ElevenLabs, vintage typography (Times New Roman, Georgia), and aged paper textures.

Challenges we ran into

A main challenge for me was ensuring the proper results would be reflecting depending on which information was given. I initially had states reflecting Mostly Verified, Partially Verified, and Mostly Unverified, but knew that there was a need to demonstrate scenerios where there was clearly a false statement or when more context might have been needed. Additionally, I ran into a couple problems of having the program marking incorrect statements as incorrect simply because there was a source behind them (i.e Flat Earth has a Wiki page, but the information on that page is what matters more)

Accomplishments that we're proud of

I'm incredibly proud of how the CSS and layout turned out. Aesthetically, it perfectly captures the 1900s newspaper vibe I was aiming for complete with spinning entrance animations, vintage typography, aged paper textures, and a "stamped" verdict banner.

What we learned

This was my first time creating a Chrome extension, so I learned a lot about the Manifest V3 architecture, content scripts, service workers, and Chrome's permission system. I gained hands-on experience with multiple APIs and discovered the real costs of API usage at scale. I learned that fact-checking isn't just about finding sources; it's about evaluating relevance and stance, which required creative prompt engineering to get AI to think critically about source quality. On the frontend, I deepened my CSS skills by recreating vintage newspaper aesthetics purely with code, including animations and typography that evoke a specific era. Most importantly, I learned how to balance user experience with technical complexity making a powerful tool feel simple and delightful to use.

What's next for Muckrake

The next steps include isolating the backend by moving API calls to a secure server, properly hiding API keys, and removing the settings tab entirely for a production-ready version. I plan to add visual fact-checking capabilities using computer vision to detect deepfakes, AI-generated images, and manipulated media. Expanding beyond Chrome to Firefox, Edge, and potentially a mobile app would increase accessibility. I'd also like to implement local caching to reduce API costs, add support for multiple languages, and create a community-driven system where users can submit corrections or additional sources. Long-term, I envision Muckrake becoming a comprehensive media literacy tool that helps users navigate misinformation across all forms of digital content.

Built With

Share this project:

Updates