How X Decides Which Posts to Recommend
X doesn't simply show the newest posts or the posts with the most likes. The open-source recommendation architecture shows a multi-stage system that first finds potential posts, removes candidates that shouldn't be shown, predicts how a particular user may respond to each candidate, scores them, and then selects posts for the For You timeline. (GitHub)
This guide explains that process using the current open-source X algorithm, while also referencing the earlier twitter/the-algorithm repository where it provides useful architectural context.
The Short Answer
When X decides whether to recommend a post, the process can be simplified to:
The current open-source implementation describes this through Thunder, Phoenix, Home Mixer, Candidate Pipeline, filters, scorers and a selector. (GitHub)
The important point is that recommendation is a pipeline, not a single metric.
1. X First Finds Posts That Could Be Recommended
X can't rank every post on the platform for every user. It first needs to create a smaller pool of potential candidates. The current architecture has two major candidate sources:
In-Network
Posts from accounts you follow are retrieved through Thunder. Thunder maintains recent posts and provides in-network candidates for the requesting user. (GitHub)
Out-of-Network
X can also recommend posts from accounts you don't follow. The current system uses Phoenix Retrieval to discover potentially relevant posts from a much larger corpus. (GitHub)
2. Phoenix Tries to Find Relevant Posts
The current Phoenix retrieval system uses a two-tower model. One tower represents the user. The other represents candidate posts.
The system can then use approximate nearest-neighbor search to retrieve potentially relevant candidates from a large corpus. (GitHub) This is important because recommendation isn't limited to your followers.
3 to 19. Context, Enrichment, Filtering, Multi-Action Prediction & Selection
3. Your Behavior Provides Context: User signals (likes, replies, repostiing, dwell) retrieved via Home Mixer and user-signal services mean the same post can be evaluated differently for different viewers.
4. X Enriches the Candidate (Hydration): Post data, author info, verification status, video metadata, subscription status, and mutual-follow counts are attached to candidates before scoring.
5. Not Every Candidate Is Eligible (Filters): Duplicate posts, old posts, muted keywords, blocked authors, and seen/served content are filtered out before ranking. Eligibility ≠ Ranking.
6. X Predicts What You Might Do (Multi-Action): Phoenix predicts probabilities for Likes, Replies, Reposts, Quotes, Clicks, Profile visits, Dwell, Shares, and negative actions like Block or Report.
7. Positive and Negative Actions Both Matter: Weighted scoring combines both positive signal probabilities and negative penalties.
8 to 11. Ranking, Diversity, Out-of-Network: Weighted scores, author diversity penalization, and out-of-network scoring adjustments ensure feed balance.
12 to 19. Selection & Misconceptions: The Selector chooses top candidates (Top K), followed by final visibility filtering. A follower count does not equal guaranteed impressions, and there is no single mythical "viral score."
The Entire Process in One Picture
How X Ranks and Recommends Posts
Official Open-Source References
- • X / xAI — For You Algorithm repository — current architecture, Phoenix, Thunder, filtering, scoring and candidate pipeline. (GitHub)
- • Phoenix architecture — retrieval and ranking architecture. (GitHub)
- • X's original Recommendation Algorithm repository — earlier For You architecture, candidate sources, ranking and visibility filtering. (GitHub)
- • Home Mixer documentation — candidate generation, ranking, filtering, author diversity and content balance. (GitHub)