Inspiration
Over the past few years I have lived in three countries: I moved from Russia to Israel in 2018, and from Israel to the United States in 2022. Each move taught me the same lesson. Every place has its own bubble of opinions, and inside the bubble those opinions feel obviously right. Step outside, and some of them turn out to be half true, one-sided, or simply wrong.
Social media makes those bubbles tighter. Facebook shows me what it thinks I will like, not what is accurate. Too often I have read a post, shared the feeling behind it, and only later found out it was fake, missing context, driven by emotion, or shaped by a left or right framing that itself keeps shifting.
I did not want another app telling me what to think. I wanted a tool that checks what I am reading, right when I am reading it, and shows me the evidence so I can decide for myself.
What it does
Info Checker is a Chrome extension. Select any text on a news site or a Facebook post, right-click, and choose Fact-check this. Within seconds:
- The text is split into individual claims, and each one gets a verdict: supported, contradicted, misleading, outdated, or unverifiable.
- Checked claims are highlighted directly on the page, with colors and underline styles for each verdict. Hovering shows a short explanation.
- A side panel lists every claim with its explanation, confidence level, and links to the sources behind it.
- Opinions and predictions are recognized and marked "not checkable" instead of being flagged as false.
Every verdict must cite evidence. If the tool can't find any, it says "unverifiable" rather than guessing.
How I built it
- Claim extraction: NVIDIA Nemotron-3 Super on Nebius Token Factory splits the text into self-contained claims, labels each as a fact, quote, opinion or prediction, and writes search queries in English and in the text's own language.
- Evidence gathering: each factual claim is searched with Tavily, restricted to a public, editable list of about 70 trusted domains: wire services, fact-checkers, major outlets, and official sources. Google's Fact Check Tools API adds existing reviews from professional fact-checkers.
- Verification: NVIDIA Nemotron-3 Ultra compares each claim with the retrieved evidence and checks for misleading framing. Every citation must include an exact quote from its source, and the code verifies that quote, so a citation can't point to a source that doesn't say what's claimed.
- Backend: Python and FastAPI, with a SQLite cache, per-claim timeouts, and 95 automated tests.
- Extension: plain JavaScript, Manifest V3. It only runs on pages where the user asks for a check.
I built it with Claude Code as my coding partner, working in phases and testing each one before moving to the next.
Challenges
- Keeping the AI honest. Language models can confidently cite sources that don't exist. The backend therefore checks every citation against the evidence it actually retrieved. Any verdict left without a real source is automatically downgraded to "unverifiable."
- Open models and strict formats. Some models wrap their answers in reasoning tags or code fences. I built a parser that handles those and retries with the error message when the output doesn't match the expected structure.
- Highlighting on Facebook. Facebook constantly rebuilds its feed, which breaks the usual way of highlighting text. I used Chrome's CSS Custom Highlight API instead, which colors text without changing the page at all, and the extension quietly drops highlights when the page removes that text.
- Time. A claim can be true last year and false today, and a model's training data is always behind. Today's date goes into every prompt, and claims about recent events get an extra news search.
- Consistency. The same claim sometimes received different verdicts on different runs. This is still open, and the next step is a proper evaluation set to measure it.
What I learned
- Fact-checking is mostly about retrieval. The quality of a verdict depends far more on the evidence the model sees than on the model itself.
- "Unverifiable" is an honest and useful answer. A tool that admits uncertainty earns more trust than one that always has a verdict.
- Choosing which sources count as "reliable" is itself a judgment. That's why the source list is public and easy to edit.
- Open models on Nebius are fast and capable enough for this job: each claim takes a few seconds.
What's next
- Measure accuracy against claims already rated by professional fact-checkers.
- Stream results as each claim finishes, and add feedback buttons so wrong verdicts become new test cases.
- Check images, since many false posts use real photos with false captions.
- Support other languages and trusted sources, because misinformation doesn't stay in one bubble or one language.