Code on GitHub ↗

The Daily Finance Brief

Every weekday before the market opens, I get an email with the finance Twitter ideas worth a closer look, ranked by whose past calls held up.

$0.60total LLM cost
Dailyruns before market open
0%win rate of the top-ranked account

Why I built it

Twitter is full of people with stock picks. The harder question is: who should you actually listen to?

I started tracking a group of accounts I follow that regularly make stock calls, measuring how those calls held up over time. Now, instead of scrolling through my feed or dozens of accounts every morning, I get one briefing with the accounts, and the calls, worth paying attention to.

Sample briefing

Daily Briefing — Mar 15, 2026
High Conviction Ideas
CRWD3 credible sources · high convictionstrong momentum
TTD2 credible sources · medium convictionemerging
Sector Themes
Defense / AI5 mentions across proven sources · ITA, BOTZ
Nuclear Energy3 mentions · URA, NLR
Watchlist
ABNBtop-tier source · worth a look
MELItop-tier source · catalyst upcoming

How It Works

I started with 15 accounts whose ideas I've traded on. The script looks at who they retweet, quote, or mention favorably to find other accounts that keep coming up, and it now tracks 45+.

1

Discover

Find new accounts through the seed accounts' connections

15 → 45+ accounts
2

Collect

Pull only tweets posted since the last run

~90% fewer API calls
3

Extract

A cheap first pass drops tweets that aren't stock calls. A second pulls out the ticker, long or short, and how confident the author sounds.

6,080 tweets → 1,956 calls
4

Score

Compare each call's return to the S&P 500 after 30, 60 and 90 days

An account's score firms up as its record grows (Bayesian)
5

Deliver

Send the email: top ideas, sector themes, watchlist

Sent daily via Resend before the open

Network Discovery

Seed accounts Proven Established Preliminary

Decisions That Shaped the Project

Local model → gpt-4o-mini

I started with a local model through Ollama because it was free. At 5–15 seconds a tweet, 6,000 tweets took most of a day. gpt-4o-mini did the same job in about 50 minutes for $0.60.

Before8-25 hours (Ollama, 5-15s/call)
→
After~50 min, $0.60 total (gpt-4o-mini)

Two-Pass Extraction

Most tweets aren't stock calls, so a cheap yes/no check runs first. Only the ~30% that pass get the full extraction, which cut cost by about 70%.

BeforeStructured extraction on all 6,080 tweets
→
AfterExtract only the 1,956 that pass

What I use it for

I use the email to decide which companies to read about that morning. I don't trade off it directly. A 30–90 day window is too short to prove an edge, and tweets are too messy by themselves to attempt an automated strategy.

Does the Scoring Work?

If the scores mean anything, the top-ranked accounts should do clearly better than the bottom ones. In the first run, they did:

Top-Ranked Source
0%win rate
+0.0%avg excess return vs S&P 500
73 callsp < 0.001 vs. a coin flip
vs
Lowest-Ranked Source
46%win rate
-2.1%avg excess return vs S&P 500
83 callstrailed the S&P 500

The briefing ranks each idea by its author's record, so calls from accounts like the top one come first.

Open Questions

Seed Bias

Every tracked account traces back to 15 I picked, so the list is at least somewhat representative of my picks.

Out-of-Sample Validation

The scores were built and tested on the same period. The real test is out-of-sample: rank the accounts on one stretch of time, then freeze the scores and test whether they hold up in a later period.

Risk Adjustment

A call that dropped 30% before ending up 10% counts the same as one that rose steadily. Drawdown isn't measured yet.

Tech Stack

PythonPipeline orchestration
gpt-4o-miniClassification & extraction
SQLiteSingle-file database
yfinanceMarket data for scoring
RapidAPITwitter data collection
ResendEmail delivery
GitHub ActionsDaily scheduled runs
scipy / numpyBayesian statistics