PRODUCT MANAGEMENT · FULL CASE STUDY · 2026

ReviewIQ

Paste in a pile of competitor reviews and get back the part a PM actually needs - in about 30 seconds.

TIMELINE
April 2026 – Present
ROLE
PM & Founder
STACK
Claude API · React · Supabase · Vercel
METHOD
CIRCLES

LONG STORY SHORT

I built the thing I kept wishing existed every time I opened G2

Every PM I know has lost a Friday afternoon to G2 reviews and Reddit threads, trying to find what users actually hate about the competition. So I built the tool I kept wishing someone else had already made.

  • • Paste in a pile of reviews from anywhere - G2, Reddit, the App Store.
  • • Get back unmet needs, recurring complaints, and feature gaps, structured.
  • • No login, no setup. The whole thing takes less time than making coffee.

2–4 HRS

Per competitor, done manually

<30 SEC

Paste to insight, with ReviewIQ

1

Weekend to build and ship

THE PROBLEM

Everyone agrees competitive research matters. Almost no one has the free afternoon to actually do it.

Thousands of users are already complaining about your competitors on G2, Reddit, the App Store. Nobody has time to read it, let alone turn it into a roadmap conversation.

  • • The signal is already public. It's just scattered across five different sites.
  • • Junior PMs skip competitive research entirely under deadline pressure.
  • • Senior PMs do a rushed version, usually biased toward whatever they read last.

"Competitive research typically takes 2–4 hours per competitor. It's inconsistent, skewed by recency bias, and rarely documented in any shareable format."

Old Way vs ReviewIQ - time comparison

THE USER

I built it for the PM who keeps meaning to do this and never quite finds the time

One person: a PM at a 40-person SaaS startup who knows competitive research matters, but keeps deprioritizing it.

  • • Owns the roadmap, but has no dedicated research or analyst support.
  • • Checks competitors reactively, usually right before a planning meeting.
  • • Would read a clean summary. Won't scrape and synthesize forty reviews by hand.
Alex - User Persona Card

Primary

Series A–C SaaS PMs

Primary

Indie hackers, pre-launch

Secondary

UX researchers

Secondary

Early-stage investors

THE DECISION

I had three real options, and most of the work was ruling two of them out

Decision Matrix - Option A / B / C

Chosen: a lightweight web tool with shareable output.

Paste reviews → structured card → shareable URL. No login, no scraping, one engineer, one weekend.

THE PRODUCT

Four things. I talked myself out of everything else.

Feature Breakdown - F1 F2 F3 F4
F1

Review Input

Any format. 200 char min, 5K char max.

F2

AI Analysis Engine

Needs, complaints, gaps, opportunity score.

F3

Shareable Output Card

One-click copy. PNG export. Unique URL.

F4

Report History

Persists anonymously. No login required.

What it actually looks like

ReviewIQ product screenshot

THE AI ENGINE

F2 isn't "use AI." Here's exactly what it does.

A single classification + extraction pass over whatever gets pasted in: unmet needs, recurring complaints, feature gaps, and an opportunity score. No fine-tuning, no agents - one well-tested prompt against Claude's API.

Prerequisites

This only works if these are true before a single review gets pasted:

  1. 1.At least 200 characters of pasted text. Below that, there isn't enough signal to classify anything reliably - this is why F1 enforces a 200 char minimum.
  2. 2.The text has to actually be review or feedback language. Marketing copy or a product description will get analyzed as if it were a review, which produces confident-sounding nonsense.
  3. 3.No live scraping, so the read is only as fresh as whatever the user pastes. A 2024 review pasted in 2026 gets treated as current signal unless the user says otherwise.

Sample AI prompt - review analysis

System

You are a competitive intelligence analyst for a product manager. Given a block of pasted customer reviews, extract: unmetNeeds (3-5 items), recurringComplaints (3-5 items), featureGaps (3-5 items), and an opportunityScore (1-10) reflecting how much unmet demand is visible. Output ONLY a JSON object with these fields, plus a confidence field (high/medium/low).

User

"Switched from [Competitor] after 8 months. Reporting is a joke - you can't export anything to CSV, just PDF. Mobile app is basically unusable, I just use the browser on my phone. Support takes 2+ days to respond. The core product does what it says, I just wanted more control over my own data."

Output

{ "unmetNeeds": ["CSV / raw data export", "Usable native mobile experience"], "recurringComplaints": ["Slow support response time (2+ days)", "PDF-only reporting"], "featureGaps": ["No CSV export", "No functional mobile app"], "opportunityScore": 7, "confidence": "medium" }

Error handling (add to system prompt)

If the pasted text is under 200 characters, or doesn't read as review/feedback language, return: { "error": "insufficient_signal", "message": "Paste at least 200 characters of review text for a reliable read." } Never fabricate an analysis from a thin or off-topic input.

How I tested this prompt before shipping it

TEST 1 - CLEAR CASE

"5 reviews all naming the same missing export feature"

Expected: Specific, repeated unmet need surfaced clearly; opportunity score reflects real, concentrated demand.

TEST 2 - THIN INPUT

"it's fine, does what it says"

Expected: Returns the insufficient_signal error, not a confident analysis invented from nothing.

TEST 3 - MIXED SENTIMENT

"Mostly glowing reviews with one buried complaint about pricing"

Expected: The real complaint still surfaces in recurringComplaints instead of getting diluted by positive noise.

TEST 4 - NON-ENGLISH

"A review pasted in Spanish"

Expected: Confidence drops to low rather than the model hallucinating a confident English-language read.

TRADEOFFS

None of these came for free, and I knew it going in

01

Manual input, not auto-scraping

Eliminated weeks of scraper risk. People pasted anyway.

02

Anonymous, not accounts

Removed the biggest conversion killer on day one.

03

5K character cap

Kept API cost and analysis time under control.

04

Speed over polish

Shipped in one weekend. The AI output was the value.

IMPACT

I wasn't sure anyone would use it. They did.

Impact Stats - 4 metric cards

LEARNINGS

A few things I'm taking into the next build

01

PRD first

Saved me from myself when tradeoffs came up mid-build.

02

The weekend limit helped

Forced the one thing that had to be true: useful AI output.

03

The share image was the growth engine

PNG exports on LinkedIn drove most of the traffic.

Thanks for reading. If you've ever lost a Friday afternoon to G2, this one was for you.