Does AI pick you? We ask ChatGPT, Claude, Gemini and Perplexity the questions your buyers actually ask, like "best form builder for a solo founder" and "alternatives to Mailchimp", and track which products they recommend. Public monthly leaderboards of AI visibility for indie SaaS.
→ See the live leaderboards at doesaipickyou.com
- Prompts: six fixed templates (src/data/templates.ts) applied identically to every category, so scores are comparable across categories.
- Runs: each prompt runs 3× per model per monthly snapshot to smooth out nondeterminism.
- Parsing: answers are matched against a hand-curated alias table per category (src/data/categories.ts). Exact word-boundary matches only, no fuzzy matching. Common-word product names ("Later", "Linear", "Wave") match case-sensitively. On prompts that name the category leader ("alternatives to X"), the leader itself is excluded from both counting and its own denominator: an answer echoing the question is not a recommendation.
- Scoring: a mention is weighted by its position in the answer (1st = 1.0 down to 0.4 for 6th and later), averaged over all runs, ×100. See src/lib/scoring.ts.
- Snapshots: one dated JSON per month in
data/snapshots/, committed to the repo, never overwritten. The history is the asset.
npm install
npm run snapshot:mock # generate deterministic sample data (labeled as mock in the UI)
npm run devThe site is fully static: pages read the latest snapshot from data/snapshots/ at build time.
Accounts are optional for browsing; the leaderboards are public. Sign-in exists for the account features (rank alerts, admin).
- Create a Firebase project, add a Web app, and copy its config.
cp .env.example .env.localand paste the values in. Restart the dev server:NEXT_PUBLIC_vars are inlined at build time.- In the console, enable Authentication → Sign-in method → Google and Email/Password.
- Create a Firestore database, then deploy the rules:
firebase deploy --only firestore:rules
New accounts get role: "user" in the users collection. To grant admin, edit that
user's document in the Firestore console and set role: "admin" — firestore.rules
blocks clients from writing their own role, so this is deliberately a console-only
action.
With no Firebase config present the site still builds and runs; the sign-in UI just stays hidden.
Want your tool on the leaderboards? Add it to src/data/categories.ts in a PR, or open an Add a tool issue if PRs aren't your thing. Full instructions, including the alias rules that decide your score, are in CONTRIBUTING.md.
The highest-value contributions are data fixes, not features: missing aliases, missing products, new categories. Prompt templates and position weights are published methodology; changing them invalidates historical comparisons, so they only change with a very good reason.
- Real model runner (OpenAI + Anthropic; run from /admin per category, per tool, or globally)
- Product pages with month-over-month trend
-
/invisible: products never mentioned in their own category -
/movers: biggest monthly gains and drops - "Check my product" live URL checker
- Embeddable rank badge
MIT