SaaSScout: A Grounded RAG Copilot for SaaS Evaluation.
A software comparison tool that helps analysts turn product, pricing, and review evidence into a shortlist. Built with React, FastAPI, and retrieval-augmented generation (RAG), it shows sources, flags missing information, and produces comparison scorecards and next checks.

335
products indexed
4,899
review chunks in Chroma
Source-aware
retrieval and ranking
3-tier
LLM fallback chain
Skills used
chapter 01 —
From a software question to a sourced comparison.
SaaSScout combines structured product metadata, pricing, feature flags, and review evidence. A Python pipeline normalizes and joins the data; Chroma retrieval and TF-IDF fallback surface relevant material; scoring ranks candidates before answer generation. A React dashboard presents comparisons, evidence snippets, recommendation memos, and follow-up checks through a FastAPI backend.
chapter 02 —
Make software research easier to review.
Software evaluation means comparing vendor pages, pricing sheets, reviews, and incomplete feature claims. SaaSScout brings that evidence into one workflow so an analyst can build a shortlist and see what still needs verification. The product separates retrieved evidence from generated summaries and labels missing or lower-confidence information. Retrieval grounding reduces reliance on model recall, but it does not guarantee a correct answer.
chapter 03 —
Product decisions.
The decisions behind the work and the reasoning for each.
Retrieval-Augmented Generation (RAG) —
Retrieve evidence before generating a recommendation.
The pipeline retrieves product records, review snippets, and enrichment evidence before generating an answer. That gives users source material to inspect and constrains the summary to a relevant context. Generated claims still need review, especially when pricing or feature coverage is incomplete.
Evidence lane architecture —
Keep source provenance visible.
Product metadata, user reviews, and vendor enrichment answer different questions and have different limitations. Separate Chroma retrieval collections and source-aware evidence displays preserve those distinctions. TF-IDF fallback supports retrieval when the vector store is unavailable.
Multi-signal pre-generation ranking —
Rank candidates before generating the summary.
Candidate scoring combines feature fit, pricing, review evidence, category relevance, and evidence quality before generation. Keeping ranking separate from the prose makes a recommendation easier to inspect and gives the user a clearer basis for comparing tools.
Epistemic honesty in output design —
Treat missing evidence as a procurement finding, not a model failure.
When the retrieval layer returns no Wikidata record for a vendor, or no pricing data for an enterprise tier, the typical AI response is to either hallucinate a placeholder or silently omit the row. Both are wrong for procurement. SaaSScout renders missing evidence as an explicit cell in the evidence table, tagged with the lane it came from. A blank pricing cell is a procurement red flag — it usually signals "contact sales" or a non-public tier — and surfacing it as a gap gives the analyst the right signal: this is something you must verify before buying. The design rule is that absence of evidence is itself evidence, and the product makes it visible rather than papering over it.
Keep a useful fallback when an LLM is unavailable.
A provider-neutral generation layer supports Groq online, Ollama locally, and a deterministic template fallback. The fallback uses the same retrieved evidence and scoring to produce a comparison without an LLM call. This keeps the workflow usable during provider failures while leaving source quality and coverage visible.
Packaged artifact, same-origin proxy, and scheduled smoke monitor for zero-dollar reliability.
Three infrastructure decisions compound into production reliability on a free-tier stack. The processed Chroma index and normalized data are packaged as a versioned zip in a GitHub Release and pulled at backend startup via DATA_ARTIFACT_URL — dropping cold-start rebuild time from 5 minutes (Kaggle re-download plus Chroma rebuild) to roughly 30 seconds. Frontend API calls route through a Netlify /api/* edge proxy instead of cross-origin requests, collapsing CORS preflight latency and enabling same-origin caching. A scheduled GitHub Actions workflow hits /health, /api/status, and a low-cost template /api/analyze to keep the Render dyno warm during business hours and reports the first failing layer — Netlify, Render, Chroma, enrichment, or analyze — on failure. The combination delivers observable, warm, reproducible infrastructure at $0.
chapter 04 —
Key findings.
Ranked evidence
Pre-generation ranking
Feature fit, pricing, reviews, category relevance, and evidence quality contribute to ranking before the answer is generated. The scorecard makes the comparison more inspectable than a recommendation alone.
Source-aware
Partitioned vector indexing
Product records, review snippets, vendor metadata, and open-source alternatives remain labeled by source. This helps users distinguish structured facts from review-derived signals and spot missing evidence.
3 tiers
LLM fallback chain
Groq online, Ollama locally, and a deterministic template fallback support the same comparison workflow. When generation is unavailable, the template can still present retrieved evidence and scores.
Reviewable
Evidence and gaps alongside the answer
Evidence snippets and source labels help users check recommendations. Missing or lower-confidence information is surfaced for follow-up; retrieval and prompting do not eliminate the risk of model errors.
chapter 05 —
Key features.
The signature product moments. Each one is a complete scenario the prototype demonstrates end to end.

feature 01 —
Configure-then-run dashboard.
The single-pane workspace where evaluations happen. Pick a scenario (Support desk review risk, CRM under $30, PM automation shortlist, CRM vendor comparison), set required features and pricing constraints, choose tools to compare, and run. Demo presets seed reasonable defaults so a first-time user can fire a useful query in three clicks.

feature 02 —
Side-by-side comparison + scorecard.
The output surface for a compare-three-tools query: confidence rating (Low / Medium / High), aligned-features count, feature scorecard per tool, pricing summary, review-derived pain points, recommendation memo, and a list of follow-up procurement checks. Everything grouped so the user can scan one tool top-to-bottom or compare across tools.

feature 03 —
Evidence lanes panel.
The Evidence panel exposes the FactGrid Enterprise Metadata table (vendor verification, pricing cross-checks, SLA notes, audit dates), Wikidata Vendor Facts (entity type, official website, country, parent organization, stock ticker), and the underlying review snippets. "Missing" cells are rendered as cells, not hidden, so absent evidence reads as a real finding.

feature 04 —
Mobile responsive workspace.
The full evaluation flow stacks cleanly on phones: data status header, query box, scenario controls, feature checklist, comparison set, and run settings. Same components, same evidence lanes, same template fallback path; just laid out vertically with touch-sized targets.
chapter 06 —
Tools & technologies.
React + TypeScript + Vite + Tailwind
Frontend dashboard, scenario presets, evidence tabs, loading states, template-mode retry, responsive grid. Same component library across desktop and mobile.
FastAPI
Backend service with routes for health, status, options, and analysis. Bootstraps the production artifact on startup and caches expensive status checks.
Chroma
Vector retrieval over product, review, and open-source alternative collections, with TF-IDF fallback and source-aware retrieval metadata.
Groq + Ollama
Provider-neutral generation using Groq online, Ollama locally, and a deterministic template fallback. The template presents retrieved evidence and scores without an LLM call.
Netlify + Render
Frontend deploy with same-origin /api/* proxy to the Render-hosted FastAPI backend. Both free-tier; cold-start handling lives in the monitor and the packaged artifact.
GitHub Actions
Scheduled production monitor that hits /health, /api/status, and a low-cost template /api/analyze. Reports the first failing layer (Netlify, Render, Chroma, enrichment, or analyze) on failure.
Multi-source data ingest
CompareEdge SaaS Market Data (Kaggle), Capterra Ticketsystem reviews, FactGrid enterprise metadata (CC BY 4.0), Wikidata vendor facts (CC0), and OpenAlternative open-source discovery (CC0).
Python data pipeline
Schema discovery, canonical product-name normalization, product / pricing / feature / review joins, unmatched-record QA, and evidence enrichment.
chapter 07 —
A comparison workflow people can inspect.
SaaSScout brings fragmented software research into a reviewable comparison workflow: a shortlist, a scorecard, source evidence, and questions to take back to vendors. The technical work supports those product decisions through data normalization, retrieval, ranking, and fallback generation.
The project sharpened my focus on making AI output useful to someone making a decision. A fluent recommendation is only one part of that experience; visible evidence, honest gaps, and a clear next step matter just as much.
chapter 08 —
Honest caveats.
the honest caveats —
- RAG reduces reliance on model recall but does not guarantee factual accuracy. Verify generated claims and current pricing against the source before a purchase.
- Demo data is Kaggle's CompareEdge 2026 SaaS market snapshot, not live vendor pricing. Real procurement use would need a refresh cadence and pricing-API hooks.
- Many enterprise tools list pricing as "contact sales" rather than a number. Those quotes appear as gaps in the pricing table, which is honest but means budget-aware ranking is limited for higher tiers.
- Render's free tier has cold starts. The scheduled monitor mitigates but does not eliminate the first-of-day delay.
- LLM rate limits during demo spikes fall back to the deterministic template, which is grounded but reads less naturally than the LLM output.
- No user accounts, saved evaluations, or team sharing yet. Each session is stateless.
- The current evidence sources are the curated v1 set. Adding G2, TrustRadius, and vendor-direct feature pages is the obvious v2 priority.