All Docs
FeaturesAgentOS Scope OutUpdated March 12, 2026

AI Scoring Engine & Composite Opportunity Score

AI Scoring Engine & Composite Opportunity Score

Available from v0.1.14

The AI Scoring Engine is an Inngest background function that takes scraped product data and passes it to an OpenAI LLM to compute four scored dimensions. The results — individual dimension scores plus a weighted composite score — are stored in the product_scores table and power the ranked dashboard.


How It Works

  1. A product scrape completes and its raw data (description, features, pricing signals, reviews) is available in the database.
  2. The Inngest function is triggered automatically.
  3. The function sends the scraped data to OpenAI for analysis.
  4. Four dimension scores (1–10 each) are computed and a weighted composite score is derived.
  5. All five values are written to the product_scores table.
  6. The dashboard ranking updates to reflect the new scores.

Scored Dimensions

Each dimension is scored on a 1–10 scale.

Replicability

Measures how feasible it would be to rebuild the product using our internal stack. A higher score means the product is a strong candidate for replication — relatively straightforward architecture, no exotic dependencies, well-understood domain.

Market Demand

Combines two signals:

  • Review volume — how many reviews exist across scraped sources
  • Sentiment — overall tone of those reviews (positive, neutral, negative)

A high score indicates strong, positively-skewed user interest.

Revenue Potential

Derived from:

  • Pricing tier — inferred from scraped pricing signals (free, freemium, paid, enterprise)
  • Estimated market size — LLM-assessed scale of the addressable market for this product category

A high score suggests a paid product in a sizeable market.

Competitive Gaps

Analyses the themes in negative reviews to surface unmet user needs and competitor weaknesses. A high score means reviewers are consistently frustrated with things that are fixable — representing a clear opening for a better product.


Composite Score

The four dimension scores are combined using a weighted formula into a single composite opportunity score, also stored in product_scores. This is the primary sort key on the ranked dashboard.

Composite Score = f(replicability, market_demand, revenue_potential, competitive_gaps)

The exact weights are applied inside the Inngest function and can be tuned as the model matures.


Data Storage

All scores are written to the product_scores table:

ColumnTypeDescription
product_idFKReference to the scored product
replicabilityinteger (1–10)Replicability dimension score
market_demandinteger (1–10)Market demand dimension score
revenue_potentialinteger (1–10)Revenue potential dimension score
competitive_gapsinteger (1–10)Competitive gaps dimension score
composite_scorenumericWeighted composite opportunity score

Triggering

Scoring runs automatically via Inngest — there is no manual step required. Once a product's scrape data is committed, the scoring function fires in the background. This keeps the UI responsive: the dashboard will surface scored results as they complete.


Notes

  • Scoring requires a valid OpenAI API key configured in the environment.
  • Products with insufficient scraped data (e.g. no reviews) will still receive scores, but dimension accuracy may be lower — review volume will be reflected in a reduced Market Demand score.
  • Scores can be recomputed by re-triggering the Inngest function for a given product if new scrape data is available.