X flipped a switch in its recommendation algorithm on October 22, and brand-new posts from small accounts finally don’t get dumped at the back of the queue anymore.

I pulled the xai-org/x-algorithm repo and combed through the code. Here’s what changed.

First, some context. Every time you refresh your “For You” tab, X gathers a massive pool of candidate posts from people you follow, out-of-network recommendations, and fresh uploads. But the heavy scoring model only evaluates a maximum of 2,800 candidates per refresh. Previously, anything over the limit got trimmed in FIFO queue order. New posts were placed right at the end of the line—so once the pool filled up, they were chopped immediately before the model even had a chance to glance at them.

On October 21, a new FairShareRankingFilter appeared in the repository: candidates are grouped by source, and every group gets pruned by the same percentage. If the candidate pool exceeds capacity by 25%, every source type is trimmed by 25%. The following day, EnableFairShareRanking was flipped from false to true, turning it on by default. The biggest beneficiaries are newly published posts with low initial impressions—which describes almost everything posted by smaller accounts.

While I was at it, I also dug into the scoring weights, which are actually far more useful than the filter change itself:

  • Copy link / share via URL: +20
  • Reply, Quote, DM share: +5 each
  • Author follow: +4
  • Native share: +2, Retweet: +1
  • Like: +0.66
  • Reply from a mutual follower: an extra +15
  • Report: -234, Block: -58.8, “Not interested”: -52.3, Mute: -31.2

Note that these weights multiply the probability predicted by the model. Since the raw probability of someone clicking “like” is already much higher than other actions, don’t just look at the raw numbers in isolation. But the signal is unmistakable: getting someone to share a link with a friend or write a reply is vastly more valuable than a casual like. A single “not interested” click outweighs dozens of likes in negative weight.

There’s also a cold-start boost specifically for small accounts: for accounts with under 50k followers, an original post published within the last 2 hours and having under 200 home feed impressions can get picked during a feed refresh and bumped up to around the 16th slot in the recommendation stream as a trial run. Replies and retweets don’t qualify. This logic currently sits behind an experimental feature flag, so not every user gets it.

Here is how you should structure your posting going forward:

  • Post when your followers are actually online; the first 2 hours are your only cold-start window.
  • Post important thoughts as original standalone posts, not just replies or reposts.
  • Don’t post and ghost. Stick around for the first 30 minutes and actively reply to comments—replies from mutuals carry the highest weight.
  • Make content people want to copy the link and send to a friend: prompts, tutorials, tool lists, and copy-pasteable assets.
  • End with a genuine question that invites replies or quote tweets; stop begging for likes.
  • Keep external links to a minimum—link clicks only carry a weight of +0.2.

The same applies to long-form Articles. In the codebase, Articles don’t get special treatment or bonus weighting; ranking depends entirely on the parent tweet itself. Your title and cover image determine clicks, time spent reading gives a boost, but whether readers copy the link to share after finishing is what moves the needle. Deliver pure value in the first three lines, and end with a discussable question.

One final caveat: production weights don’t always 100% match open-source code, and the repo doesn’t specify how often X actually hits the 2,800 candidate ceiling, so it’s impossible to calculate exact view gains.

Have you noticed any changes in your post impressions recently?