Inspiration

Brands waste millions on Instagram influencers with fake followers and inflated engagement. There's no quick, affordable way to verify if an influencer is legit before signing a deal. InfluCheck was born from this gap — a tool that gives brands instant, AI-powered clarity on influencer authenticity and value.

What it does

InfluCheck analyzes Instagram influencers across multiple dimensions. Enter a handle, and you get a full authenticity report — fake follower percentage, engagement quality score, comment analysis (real vs. spam), and an AI-written breakdown. Upload a stats screenshot and it reads the data via OCR. Drop a product photo and it identifies the category, matches it to the right influencers, and benchmarks pricing. The platform also assesses whether a quoted price is fair or overpriced based on the influencer's actual quality — not just category averages — and recommends better alternatives from a 200-influencer dataset.

How I built it

The frontend is Next.js 16 with React 19, TypeScript, Tailwind CSS, and shadcn/ui — designed with an Airbnb-inspired visual language (generous whitespace, pill-shaped CTAs, indigo accent). The backend is FastAPI with SQLAlchemy and SQLite, handling JWT auth, usage tracking, and async analysis pipelines. The AI layer uses Google Gemini for text generation, vision (screenshot OCR, product photo analysis), and explanation generation, combined with deterministic rule-based heuristics for fake follower detection, engagement scoring, and comment classification. The dataset covers 200 influencers, ~1,200 posts, 10K comments, and 4K followers — all preprocessed and loaded at startup for sub-3-second response times.

Challenges I ran into

  • Gemini quota exhaustion mid-build. Designed the scoring engine to be fully deterministic with Gemini as an optional enhancer — the system falls back to math-based scores seamlessly.
  • Form submission silently broken. Base-ui's useButton hardcoded type: "button", overriding type="submit". Diagnosed by inspecting the DOM and replaced with a native wrapped in forwardRef.
  • Usage limit race condition. The recommend endpoint was consuming from the same free-tier limit as analyze, so auto-recommendations always failed with 403. Decoupled the two endpoints.
  • Price assessment was category-only. Early version compared quoted price to raw category min/median/max, ignoring the influencer's actual quality. Rewrote it with a quality multiplier weighted across authenticity, fake followers, and engagement rate.

Accomplishments that I'm proud of

The unified analyze form — four inputs (handle, price, stats screenshot, product photo) on one page, with the backend intelligently routing each combination through the right AI pipeline. The quality-aware price assessment that adjusts fair ranges based on the influencer's actual metrics. The seamless Gemini fallback that keeps the product functional even when the API is down. And getting a full-stack AI product working end-to-end with sub-3-second response times across all endpoints.

What I learned

How to design AI systems with graceful degradation — never depend on an external API being available. How to handle multipart form data across a Next.js/FastAPI stack. The importance of reading component source code when something "just works" in documentation but fails in practice. And that a good hackathon MVP is about solving one problem well, not building every feature imaginable.

What's next for InfluCheck

Built With

Share this project:

Updates