StockGenie

StockGenie App Icon

Your Daily AI Market Whisper

Download on the App Store Terms of Service Privacy Policy
Learn more
StockGenie Home Screen
Home Screen

Daily Market Analysis

Every weekday morning, our advanced AI analyzes thousands of data points to identify stocks with the highest potential for growth. Get actionable insights delivered straight to your device before the market opens.

Daily Pick Screen
Daily Pick

Your Free Daily Pick

Get instant access to our top AI-selected stock every trading day, completely free. No required subscriptions, no hidden fees. Just pure market intelligence delivered with precision and clarity.

Premium Features
Premium Features

Premium Picks

Unlock the full power of StockGenie. Get the top five picks on each trading day, track AI performance over the last 7 days, and make smarter investment decisions.

How Does It Work?

Every trading day, our AI-powered system processes vast amounts of market data from multiple sources and distills it into a single, actionable recommendation.

1

Data Sources

We aggregate market signals from financial newspapers, analyst reports, and financial article feeds across multiple providers.

2

Semantic Embeddings

Every article is embedded into a 384-dimensional vector. Near-identical syndicated reposts collapse into a single story, and articles are ranked by relevance to each company's thesis — no keyword matching, no random sampling.

3

Narrative Concentration

We cluster the day's coverage and measure how tightly it focuses on a single story. One tight cluster across many sources is the real "strong narrative" signal — scattered chatter is noise.

4

Intelligent Ranking

We weight quality signals over raw volume, penalize mega-caps to surface hidden gems, and boost stocks with focused, high-concentration narratives.

5

Single Output

The top-ranked stock is delivered to your phone at 9AM EST on trading days. Premium subscribers get the full top-5 list at the same time.

The Semantic Sorting Algorithm
// 1. Embed every article once (Cloudflare Workers AI, bge-small-en-v1.5)
const vectors = await embed(articles.map(a => a.title + a.summary));

// 2. Collapse syndicated reposts (cosine ≥ 0.88 = same story)
const unique = dedupByCosine(articles, vectors, 0.88);

// 3. Cluster what's left → narrative concentration (0..1)
const clusters = clusterByCosine(unique, 0.78);
const narrativeConc = 1 - (clusters.length - 1) / (unique.length - 1);

// 4. Rank "top reasons" by relevance to the ticker thesis,
//    not by random sampling
const anchor = await embed([ticker + " " + sector + " outlook"]);
const topReasons = unique
  .map(a => ({ a, sim: cosine(a.vec, anchor) }))
  .sort((x, y) => y.sim - x.sim)
  .slice(0, 3);

// 5. Combined score uses the measured narrative signal
let score = (confidence × 0.45)
          + (sentiment × 0.20)
          + (narrativeConc × 0.20)
          + (qualitySources × 0.05);

if (isMegaCap) score *= 0.75;   // -25%: deprioritize obvious picks
if (isSmallCap) score *= 1.35;  // +35%: surface hidden gems
if (isPurePlay) score *= 1.30; // +30%: focused exposure

Build with the StockGenie API

The same engine that powers the app, available as a clean JSON API. Free tier gives you today's pick. Premium unlocks history and the full ranked list.

Base URL https://api.stockgenie.app
Quickstart — today's pick
# One stock per day, no auth, rate-limited per IP
curl https://api.stockgenie.app/api/daily-stock

# =>
{
  "date": "2026-05-09",
  "ticker": "NVDA",
  "confidence": 0.87,
  "reasons": [
    "Strong premarket volume up 3.2%",
    "Positive sentiment from recent AI chip demand",
    "Analyst upgrades following strong guidance"
  ],
  "articles": [
    {
      "title": "Nvidia's AI Chips Continue to Drive Market Leadership",
      "url": "https://finance.yahoo.com/news/...",
      "source": "Yahoo Finance"
    }
  ]
}
GET

/api/daily-stock

Today's AI-selected stock pick with confidence, reasons, and source articles.

Free · 1 req/day per IP
GET

/api/historical-stocks

Past 7 days of picks. Pass Authorization: Bearer … with a Premium token.

Premium · Bearer token
GET

/api/mcp-schema

Model Context Protocol tool schema — drop our picker straight into your MCP-aware agent.

Free · No rate limit
GET

/api/health

Liveness probe. Returns service name, version, and timestamp.

Free · No rate limit
Premium request — last 7 days
curl "https://api.stockgenie.app/api/historical-stocks" \
  -H "Authorization: Bearer YOUR_PREMIUM_TOKEN"
Use it from Swift
struct DailyStock: Decodable {
  let ticker: String
  let confidence: Double
  let reasons: [String]
}

let url = URL(string: "https://api.stockgenie.app/api/daily-stock")!
let (data, _) = try await URLSession.shared.data(from: url)
let pick = try JSONDecoder().decode(DailyStock.self, from: data)