I Asked Claude to Find the Next Generation of High-Growth Stocks
Originally published on medium.com

I didn’t ask Claude to pick stocks.
I asked it to look at eight companies I’d already filtered with real market data and tell me which ones were growing for real reasons, and which ones just looked exciting on a screen. That distinction turned out to matter more than the growth numbers themselves.
If you’re:
- tired of “next Nvidia” listicles with no methodology behind them,
- building a research workflow that combines live market data with an LLM,
- or just curious what a systematic, no-hype growth screen actually surfaces right now,
here’s the full pipeline, real tickers, and what came out the other end.
The problem with most high-growth stock lists
Search “high growth stocks 2026” and you’ll get dozens of listicles. Almost none of them show their work.
No stated criteria for what counts as “high growth.” No distinction between a company compounding revenue for five straight years and one that popped 40% because a hedge fund tweeted about it. No check on whether that growth is actually profitable, or funded by debt nobody mentions in the headline.
That’s not analysis. That’s content optimized for clicks, not signal.
The fix isn’t asking an LLM to somehow know which stocks will win. It’s giving the LLM real, current data and a narrow job: reason over what’s actually there, and flag what a headline number hides.
Claude doesn’t find stocks. It reasons over what you screen first.
Here’s the reframe that shaped this whole pipeline: an LLM has no live connection to the market. Ask Claude cold to “find high-growth stocks” and it’s either guessing from training data or hedging with a generic answer.
The useful version of this experiment isn’t a single prompt. It’s a two-stage pipeline.
Stage one screens for real, current signals using EODHD: price momentum first, since that’s what actually shows up in a screener, then a second pass to confirm the momentum is backed by real revenue growth, not just a headline or a short squeeze.
Stage two hands that shortlist to Claude, with real numbers attached, and asks it to reason about which companies look like durable growth stories and which look like the market is paying for a story that hasn’t shown up in the financials yet.
Python and EODHD do the filtering. Claude does the judgment call on data it can actually see.
Building the screen: momentum first, then confirm it with fundamentals
Price momentum alone is noisy. Plenty of stocks jump 15% in a week for reasons that have nothing to do with the underlying business, a short squeeze, an index rebalance, a rumor.
So the screen runs in two passes instead of one.
import requests
EODHD_API_KEY = "your_api_key"
BASE_URL = "https://eodhd.com/api"
def get_momentum_candidates(min_market_cap=5_000_000_000, min_5d_return=3, min_volume=2_000_000):
"""Pass 1: screen for liquid, large-enough stocks with real recent momentum."""
filters = [
["market_capitalization", ">", min_market_cap],
["exchange", "=", "us"],
["avgvol_200d", ">", min_volume],
["refund_5d_p", ">", min_5d_return],
]
params = {
"api_token": EODHD_API_KEY,
"fmt": "json",
"filters": str(filters),
"sort": "refund_5d_p.desc",
"limit": 40,
}
resp = requests.get(f"{BASE_URL}/screener", params=params, timeout=30)
resp.raise_for_status()
return resp.json()["data"]
The market cap and volume floors matter as much as the momentum filter. Without them, this screen returns illiquid OTC tickers where a single trade can move the price 40% and the “momentum” is meaningless.
Pass two confirms the story with fundamentals: is revenue actually growing, or is the stock just moving?
def confirm_revenue_growth(tickers: list[str], min_growth=0.20) -> list[dict]:
"""Pass 2: keep only candidates with real, confirmed YoY revenue growth."""
confirmed = []
for ticker in tickers:
url = f"{BASE_URL}/fundamentals/{ticker}.US"
params = {"api_token": EODHD_API_KEY, "fmt": "json"}
data = requests.get(url, params=params, timeout=30).json()
growth = data.get("Highlights", {}).get("QuarterlyRevenueGrowthYOY")
if growth is not None and growth >= min_growth:
confirmed.append({
"ticker": ticker,
"name": data["General"]["Name"],
"revenue_growth_yoy": growth,
"profit_margin": data["Highlights"].get("ProfitMargin"),
"market_cap": data["Highlights"].get("MarketCapitalization"),
"price_sales": data["Valuation"].get("PriceSalesTTM"),
"ebitda": data["Highlights"].get("EBITDA"),
})
return confirmed
Only stocks that clear both filters, real momentum and confirmed double-digit revenue growth, make the shortlist Claude actually sees.
Screen your own list
This pipeline runs on two EODHD endpoints: the screener for momentum, fundamentals for the revenue confirmation. Both are available on the free tier for testing.
→ Get an EODHD API key
Handing the shortlist to Claude
This is where the judgment call happens. Claude gets the confirmed shortlist as structured data, plus one instruction: don’t just describe the growth, tell me what it’s built on.
import anthropic
client = anthropic.Anthropic()
def rank_candidates(shortlist: list[dict]) -> str:
prompt = f"""
You are screening these companies for genuine, durable growth versus growth
that looks good on paper but is fragile, unprofitable, or priced for
perfection.
{shortlist}
For each company:
1. State whether the growth looks durable or fragile, and why
2. Flag anything the raw revenue growth number hides (small base effects,
heavy debt funding the growth, negative margins, extreme valuation)
3. One line: what would need to be true for this to keep working
Do not recommend buying anything. Rank by growth quality, not by upside.
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1200,
messages=[{"role": "user", "content": prompt}],
)
return response.content[0].text
Same principle as any scoring pipeline: the model reasons over numbers it can see, it doesn’t invent them. Ask Claude for a stock pick from nothing and you get plausible-sounding fiction. Give it real financials and a specific question, and the answer becomes something you can actually check.
Running it: today’s shortlist
Running this pipeline on August 15, 2026 (market cap above $5B, 5-day return above 3%, revenue growth confirmed above 20% YoY) returned eight names after both filters.
Ticker Revenue Growth YoY 5-Day Momentum Profitable
NBIS +454%* +47.7% No
CRWV +112.5% +16.1% No
OSCR +70.4% +17.4% Yes
RDDT +61.1% +10.1% Yes
NU +43.7% +10.0% Yes
RBRK +39.0% +13.5% No
CAVA +31.3% +19.2% Yes
KVYO +26.4% +11.3% Barely
*Nebius is growing off a genuinely small base, its full-year revenue is still under $1.4B against a $75B market cap. That combination is exactly the kind of thing this pipeline exists to catch.
Here’s Claude’s read, working from those numbers plus each company’s fuller fundamentals.
Durable, and already proving it. Nu Holdings and Reddit both pair strong growth with actual profitability. Nu’s return on equity sits above 30% with a PEG near 0.8, meaning the market isn’t even pricing in aggressive future growth yet. Reddit’s operating margin near 29% shows the ad business scaling the way a software company should. Oscar Health belongs here too: 70% revenue growth with a 34% ROE, though its earnings have swung wildly quarter to quarter, a health insurer’s claims volatility rather than a business quality problem.
Real story, expensive execution risk. CoreWeave is building actual AI infrastructure that customers are paying for, 112% revenue growth is not a rounding error. But it’s funding that growth with debt. Long-term debt jumped from roughly $5.5B a year ago to over $17B now, and margins are still negative. Rubrik shows a similar shape at smaller scale: real 39% revenue growth in cybersecurity, but negative book value and no profit yet. Both are legitimate businesses making a leveraged bet on their own growth curve.
Priced for a story that hasn’t shown up yet. Nebius is the clearest case. A 454% growth rate looks extraordinary until you notice the base it’s growing from, and the stock trades at nearly 56 times trailing sales for the privilege. CAVA’s 31% growth is real, but a 133x trailing P/E means almost none of that growth can disappoint without the stock repricing hard. Klaviyo sits in between: 26% growth with a profit margin near zero, a genuine inflection story, but not yet a proven one.
That’s the value of running the numbers through a model instead of a headline: three names that would all get lumped into “hot growth stock” by a listicle turn out to mean three very different things.
Why the pipeline matters more than the prompt
Ask Claude cold, with no data attached, to name high-growth stocks, and you’ll get a plausible list built from training data that could be stale by months or wrong by design. It has no way to check.
The pipeline flips that. EODHD supplies the facts: what’s actually moving, what’s actually growing, what the balance sheet actually says. Claude’s only job is judgment on facts already in front of it: does this growth look durable, what does the raw number hide, what would have to stay true for the thesis to hold.
That division of labor is the whole point. Data tools are bad at judgment. Language models are bad at knowing today’s price. Put them together correctly and each one does the part it’s actually good at.
Three takeaways
Revenue growth without a durability check is a marketing number, not an investment signal. Nebius and CAVA prove that a big growth percentage and a great business aren’t the same claim.
Momentum without fundamentals confirming it is noise. That’s why this pipeline never hands Claude a shortlist built on price movement alone.
The model is only as good as what it can see. Claude didn’t “find” these eight companies. The screen did. Claude’s value showed up after that, in telling the difference between Nu Holdings and Nebius when a flat percentage comparison would have missed it entirely.
FAQs
Is this pipeline a stock recommendation?
No. It’s a research filter and an interpretation layer, not investment advice. Every company on this list carries real risk the analysis above only partially covers, competitive threats, execution risk, and broader market conditions among them.
Why filter on 5-day momentum instead of a longer window?
Short windows catch what’s moving right now, which is the point of a “next generation” screen. A longer window like YTD return would surface stocks that already had their run. Combine both if you want a screen tuned for earlier detection versus confirmed trends.
Can I run this on non-US exchanges?
Yes, EODHD’s screener supports other exchange codes. The revenue growth confirmation step works the same way for any ticker with fundamentals coverage.
Why not just ask Claude to pick stocks directly?
Because it has no live market connection and no way to verify numbers it might recall from training. Feeding it real, current data and asking for judgment instead of facts is what makes the output checkable instead of just plausible.
Build the full pipeline yourself
Every number in this article, the momentum screen, the revenue confirmation, the valuation context, came from two EODHD endpoints. You’ll get:
- The stock screener API for live momentum and liquidity filters
- Full fundamentals per ticker: revenue growth, margins, valuation multiples
- A free tier to test this exact pipeline before committing to a plan
→ Get started with EODHD
Building something with financial data?
If you’re an API or fintech company looking to explain your product through practical, code-first content instead of marketing fluff, I write pieces exactly like this one.
→ See more of my work
Looking for technical content for your company? I can help — LinkedIn · kevinmenesesgonzalez@gmail.com