Inspiration
Online dating scams cost victims over $1.3 billion in 2025, with many users not having the tools to identify red flags in real-time. We built CatFish to provide immediate AI and safety analysis within Tinder so people can be more confident in their conversations.
What it does
CatFish is a Chrome extension that analyzes Tinder conversations and profile images directly within the website. It detects romance scam patterns in text conversations and identifies AI-generated profile photos. It provides users with risk scores and actions they should take without leaving Tinder.
How we built it
Catfish is a Chrome Extension built with React 18 and TypeScript, bundled using Vite, that integrates with dating apps like Tinder to detect AI-generated profile photos and romance scams. The extension uses Chrome's Manifest V3 architecture with three main components: a content script that injects analysis buttons into Tinder's web interface and extracts profile images and conversation text directly from the DOM, a background service worker that handles cross-origin image fetching and data persistence via Chrome's storage API, and a side panel UI built in React that displays analysis results. The backend is a FastAPI Python server that exposes REST endpoints. Our image analysis is powered by the AI or Not API, a specialized machine learning service that detects AI-generated images (identifying generators like Nano Banana Pro, Midjourney, DALL-E, and Stable Diffusion) along with deepfakes and NSFW content, while text analysis use OpenAI's GPT-4o-mini to identify scam patterns and manipulation tactics common in romance fraud.
Challenges we ran into
Tinder's dynamic DOM structure made image extraction quite difficult and required a ridiculous amount of debugging. Another major challenge was OpenAI's safety refusals. When we initially tried using GPT-4 Vision to analyze profile photos, it refused to process images containing faces due to privacy policies, returning "I can't assist with that." We solved this by switching to the AI or Not API, a specialized ML model built specifically for AI image detection. The last challenge we had was our injected buttons kept disappearing during navigation so we had to implement MutationObserver polling to re-inject them.
Accomplishments that we're proud of
We finally after many hours managed to get everything up and running. We are most proud of getting the AI-image detector working for Google's Nano Banana Pro which came out in late 2025 and is very advanced.
What we learned
We learned the intricacies of Chrome's Manifest V3 architecture, particularly the limitations of service workers compared to the old persistent background pages. We gained hands-on experience with cross-origin security models and how extensions can bypass CORS through background scripts. We discovered that general-purpose LLMs have strict content policies that make them unsuitable for certain use cases (like face analysis), and that specialized ML APIs are often better suited for domain-specific tasks. We also learned how to work with SPA-heavy websites where traditional DOM manipulation doesn't persist, and the importance of letting browsers handle form encoding rather than manually setting headers.
What's next for CatFish
We plan to expand platform support beyond Tinder to include Bumble, Hinge, and other dating apps. We would also love to build it natively for iPhone and Android because this is where we would be able to scale it to detect AI scams with audio. Long-term, we'd like to build a community reporting database where anonymized scam patterns (including AI) can be shared across users to improve detection.
Built With
- aiornotapi
- chromemv3
- fastapi
- openaiapi
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.