Inspiration
Information overload and rising online scams make it hard for everyday readers to separate facts from fiction and spot phishing before it’s too late. We wanted a tool that lives where people browse and delivers instant, trustworthy feedback without disrupting their experience.
What it does
KnowIt is a Chrome extension backed by an AI service. On any article page, one click returns a reliability score, key warning signs, and links to more credible sources. In Gmail, the extension scans the open message and flags phishing risk with a color-coded badge and a concise explanation.
How we built it
- Frontend: Manifest V3 extension written in vanilla JS/CSS. Content scripts data extraction article text or email HTML and display results in a popup UI.
- Backend: Flask service on Python 3.12 with two endpoints (
/evaluate,/phishing). Usesnewspaper3kfor data extraction, caches requests, then calls OpenAI Chat Completion to rate reliability or phishing risk. - Glue: Fetch API connects the extension to the backend; Flask-CORS keeps things simple during local development.
Challenges we ran into
- Cleaning diverse article HTML into something LLM-friendly without hammering token limits.
- Crafting prompts that yield consistent JSON so the frontend can trust the schema.
- Handling Gmail’s heavily nested DOM and avoiding Google’s CSP blocks.
Accomplishments that we’re proud of
- End-to-end demo: click a button, get an AI score in under two seconds.
- Prompt engineering that keeps accuracy high while staying within free-tier token budgets.
- A reusable cache layer that slashes repeat LLM calls by ≈60%.
What we learned
- Small prompt tweaks can swing LLM output format drastically; unit tests for prompts save sanity.
- Chrome’s Manifest V3 messaging pipeline is stricter than V2 — background/service-worker patterns matter.
- Real-world reliability scoring needs transparency; users trust clear explanations over raw numbers.
What’s next for KnowIt
- Edge & Firefox ports via WebExtension API.
- Persisting the cache in Redis and adding rate-limits for production.
- Community-driven false-positive reporting to refine our prompts over time.
Built With
- css3
- flask
- html5
- javascript
- manifestv3
- python
Log in or sign up for Devpost to join the conversation.