On May 15, 2026, X updated the open-source version of its For You recommendation algorithm on GitHub, in the xai-org/x-algorithm repository.
This release includes a full runnable inference pipeline, a pretrained mini Phoenix model, a standalone content moderation service called Grox, and an ad-mixing module.
A lot of things we used to verify through rumors and guesswork can now be read straight from the source code. I cross-checked the new xai-org/x-algorithm repo against the old twitter/the-algorithm repo and X’s official help pages, then pulled out 10 facts that directly affect account growth.
For each point, we’ll first look at how the algorithm works, then what it means for creators, and finally what you can do about it right now.
1 The final algorithm score is a weighted formula
How the algorithm works:
- During ranking, the Phoenix Transformer model predicts the probability of more than a dozen actions for each candidate post: P(like), P(reply), P(repost), P(quote), P(click), P(profile click), P(follow), P(dwell time), P(image expand), P(video view), P(share to DM), P(copy link), P(not interested), P(block), P(mute), and P(report).
What this means:
The algorithm does not judge whether your post is good in some absolute sense.
It predicts whether your target users will take an action after seeing it.
The same post may go straight to the top of Zhang San’s timeline and never even enter Li Si’s recommendation pool.
What to do:
- Before writing any post, run this through your head: who do I want to see this? What do I want them to do after reading it? Follow me? Repost it? Reply? If you don’t know, don’t post it.
- Stop asking, “Will this topic go viral?” Ask, “Will my target reader actually do something because of this post?”
- It is better to have 100 non-target users scroll past and 10 target users take strong actions.
2 Likes barely count anymore. Replies, bookmarks, reposts, and retention are the real score
How the algorithm works:
- Each action has a different weight in the weighted formula. The old version (
twitter/the-algorithm) published a reference set of weights: like 0.5, repost 1.0, reply 13.5, profile click 12, author engaging in the reply conversation 75, and report -369. - The new version does not publish the weights, but the structure has not changed. Shallow actions, such as likes and simple clicks, carry low weight. Deeper actions, such as replies, quotes, shares to DM, profile clicks, follows, and dwell time, carry high weight. Negative actions carry a heavy negative weight.
- Dwell time appears in the source code as
dwellanddwell_time, two separate high-weight fields. Even if a reader does not press any button, if they actually finish reading your post, the algorithm still gives it a high score.
What this means:
That “viral” post with 100 likes and zero new followers basically looks like nobody saw it, from the algorithm’s point of view. By contrast, a post with only 10 likes that brings in five new followers, 20 bookmarks, and an average dwell time of 30 seconds is what actually grows your account weight.
Dwell time deserves special attention. It is a high-weight signal most creators ignore. It cannot be botted or faked. It only comes from the quality of the content itself. Readers either finish reading or scroll away. There is no middle ground. A like can be casual. A repost can be impulsive. But dwell time means the user voted for you with their actual time.
What to do:
- Stop staring at like counts. Open your X Premium Analytics dashboard and look at six numbers: replies, reposts, quotes, profile visits, new followers, and average read time. If any one of these moves, the post worked.
- Before writing, ask yourself: does this post have a part that makes someone want to screenshot it into a group chat or forward it to a specific friend? If not, don’t post it. It is just filler.
- If you want bookmarks and reposts, a few structures work especially well: checklists (“7 traps for creators”), SOPs (“30-day cold-start plan”), comparison tables (“old playbook vs. new playbook”), evaluation criteria (“what qualifies as good content”), and mistake lists (“5 things not to do”). These structures are naturally screenshot-friendly.
- If you want higher dwell time, use four patterns: long posts that make people scroll, images that make people stop and look, videos whose watch time counts directly toward retention, and clear paragraphing with a good visual rhythm so reading feels easy and people keep moving down the page. These can raise your score without any interaction. They are an underrated hidden scoring channel.
- Stop ending with “like and follow if this helped.” End with a specific question people actually want to answer, such as: “Which type of content got the most engagement for you in the last 30 days?” Once people answer, your account’s deep interaction signal goes up.
3 Fighting over titles, openings, and hooks is still the core game
How the algorithm works:
- The Phoenix Transformer takes a user’s behavior sequence plus a candidate post as input. From massive amounts of real interaction data, the model learns what kinds of content lead to high-value actions such as follow_author, dwell, share, and quote.
- What it learns lines up with human intuition: content with a strong opening hook, a clear title, and high information density is more likely to make users stay, click the profile, repost, and bookmark.
What this means:
Titles, openings, and information density matter just as much as they did two years ago. The new algorithm did not make these three things easier, but it did not make them harder either. The only difference is the goal. Before, you were optimizing for likes. Now you are optimizing for profile clicks, follows, reposts, and quotes.
What to do:
- The first sentence, meaning roughly the first 30 characters of the post, must give a counterintuitive conclusion or a concrete promise right away. No vague openings, no long setup, no question openings.
- In sentences two and three, tell readers immediately what problem the post is going to solve. If the first three sentences do not make readers understand why the post matters to them, they will scroll away. Nothing later in the post can save it.
- After writing, reread every paragraph and ask: does this paragraph add a new piece of information? If not, cut it. If a paragraph can lose 30% of its length without losing meaning, cut it.
- Use this structure for long posts: opening hook → core conclusion up front → three to five concrete pieces of evidence → an action list or a closing hook. This is not a rule. It is the template that has tested best.
4 A fuzzy account profile kills distribution. Don’t jump between niches
How the algorithm works:
- Out-of-network retrieval relies on Phoenix Retrieval’s two-tower model. The User Tower encodes each user’s interests, based on what they have clicked, replied to, reposted, and spent time on, into a vector. The Candidate Tower encodes each post into another vector. The system finds the posts closest to a given user in vector space and pushes them to that user.
- Your account profile is not a standalone vector. It is reflected through the accumulated history of all your past posts. The more focused your content is, the more concentrated this type of post becomes in vector space, and the more likely it is to appear consistently in a certain group’s top-K.
- Stable profile → your posts cluster in a semantic group → the system knows who to show you to. Fuzzy profile → your posts scatter across vector space → you are not close enough to any user group → out-of-network retrieval fails.
What this means:
If your account profile is fuzzy, the result is not “a little less traffic.” It means out-of-network distribution never opens up. Only your existing followers see you, and you never break out of that circle. Follower growth, spread, and discovery by new people all go to zero. This is the easiest point to overlook among the 10, and it carries the highest cost.
What to do:
- Pick one specific theme as your main axis, such as “monetizing AI tools,” “X growth experiments,” or “commercializing AI products.” Then post only about that theme for 30 days straight. Not “mostly this, with occasional other things.” Only this.
- Use one stable term for the theme. Don’t keep switching. If you write “AI tools” this week, “AI products” next week, and “AI apps” the week after, the system sees those as different labels. Every switch scrambles your profile. Pick one and stick with it.
- Who you follow, who you reply to, and who you like all train your profile. Randomly following unrelated accounts or replying in other circles pollutes it. Keep your interactions inside your niche.
- If you really need to switch niches, give the old one a clean exit first. Delete or archive old content, update your bio, and change your pinned post. Give the profile one full reset. Half-switching only ensures the new profile never forms.
- Never use your account to “test which niche gets better traffic.” Every switch dilutes your profile, and the damage is not easily reversed. If you want to test a new niche, use an alt account.
5 Main posts are about quality, not volume. One to three per day is enough
How the algorithm works:
- The logic in
home-mixer/scorers/author_diversity_scorer.rsis: sort by weighted score first, then count by author ID, and apply a decay coefficient to later candidates from the same author. - The coefficient drops as the rank order goes down. The second post is already discounted. The third is hit harder. The fifth is basically invisible.
What this means:
Posting 10 main posts today will not make you appear 10 times on a user’s For You screen. You may appear once, maybe twice at most. The remaining eight posts either get pushed far down or are not shown at all. Worse, every low-quality post that gets no dwell time and no interaction teaches the algorithm, “this account produces low-quality content.” The more you post like that, the more damage you do.
What to do:
- Post at most one to three main posts per day, and write each one until you are satisfied with it. If you can only write one good post today, publish only that one. Having two fewer main posts will not hurt your account. Too much mediocre content can crater your reach.
- If you still have capacity, put it all into replies. Write high-quality replies under big accounts or mid-sized accounts in your circle. This does not trigger author-diversity discounting and effectively opens dozens of extra exposure slots. Point 6 covers this in detail.
- If you make a series on the same topic, change the angle each time: one tutorial, one counterexample, one comparison table, one checklist, one opinion. If every post is the same idea in different packaging, the system will treat it as redundant and merge the score.
- Don’t publish three or four main posts on the same topic within a short window of one or two hours. They compete with each other for candidate-pool positions, and all of them end up with weaker scores. Leave at least two to three hours between main posts.
6 High-quality replies under big accounts are a high-ROI traffic entry point
How the algorithm works:
- Phoenix Transformer predicts fields such as P(reply), P(quote), P(profile_click), and P(follow_author).
- The original author participating in the conversation around your reply, called reply_engaged_by_author in the old version with a weight of 75, has always been one of the high-weight signals.
- Replies appear on the original post’s conversation page, and a separate conversation-ranking system decides which replies rank near the top. In the source code, Grox specifically handles labeling for reply spam and reply ranking. This means your reply exposure does not need to go through the Thunder and Phoenix Retrieval flow used by the main recommendation system. Your exposure is directly tied to the original post.
What this means:
Writing one high-quality reply under a big account’s post is like borrowing that account’s traffic for free. Even better, replies do not count against your own main-post quota. Five main posts plus 30 excellent replies in one day is like opening 32 separate exposure slots for yourself. This is the cheapest leverage during cold start.
What to do:
- Set a reply KPI for yourself every day, such as 20 to 40 replies. Pick posts in your target circle and reply within 30 minutes after they are published. Early replies get much more exposure. If you show up an hour or two late, that post’s traffic has already passed.
- Your replies must contain real substance. Add a counterexample, a data point, a step, a tool, or a personal experience to the original post. “Agree,” “learned something,” “+1,” and “great insight” are the same as writing nothing. They will not bring profile clicks.
- Choose big accounts that actually reply to followers. Accounts with millions of followers that never reply to anyone have low reply value. One reply from the original author injects a direct high-weight signal into your account.
- The accounts you reply to must be in your niche. Don’t jump into a viral post from the next circle over. Replying there is the same as niche-hopping, and it will pollute your profile too.
- Mix three types of reply targets by ratio: replies to big accounts are a bet on exposure, replies to mid-sized accounts build relationships, and replies to peers train each other’s profiles. You cannot ignore any one of the three completely.
7 Generic posting-time charts are useless. Use your own data to find your windows
How the algorithm works:
- During Transformer inference, the Phoenix Ranking model uses a candidate-isolation attention mask. Each candidate can see only the user context, not other candidates.
- This makes scoring pointwise and cacheable, independent of who else is in the same batch.
- But upstream retrieval through Thunder still pulls content from recent time windows, so timing still matters.
What this means:
The old logic of “post at 8 a.m. or 9 p.m. because there is less competition, so you are more likely to get pushed” is dead. How many people post at the same moment no longer affects your score. But whether your target readers are online at that time, and whether they can give you early engagement in the first two hours, still decides whether the post can take off.
What to do:
- Throw away all generic posting-time charts like “8 a.m. and 9 p.m.,” “Wednesday at 8 p.m.,” or “Sunday noon.” Those numbers are based on platform-wide averages and have nothing to do with your account’s target audience.
- Open your own X Premium Analytics dashboard and look at the time distribution of likes and replies on your historical posts. Your data tells you exactly when your target readers are active.
- No data yet? Two weeks is enough. For seven straight days in week one, publish your main post at a different time each day and record the engagement. In week two, lock in the time slot that performed best.
- Align your time zone with your target audience. If you are in Beijing but your readers are in North America, post from Beijing afternoon to late night, which maps to the North American workday. If your readers are in China’s startup circle, post from 8 p.m. to 11 p.m. If your readers are in Europe, post in Beijing afternoon.
- Long posts can be published off-peak because dwell time accumulates over several hours. Short punchline posts are highly sensitive to burst engagement in the first two hours, so publish them at your audience’s online peak.
8 Grox kills edgy bait, clickbait, and AI garbage
How the algorithm works:
- The source code adds a new
grox/module. It runs classifiers, vectorizers, and task-execution engines specifically for spam detection, post classification, PTOS policy enforcement, and safety classification. - Grox is a standalone service that labels posts before the main ranking step. Labeled content enters the demotion and removal pipeline in
home-mixer/filters, and the signal is written back into the account profile. - Template-like AI content, if Grox does not directly mark it as spam, gets demoted through another path: in main ranking, the Phoenix model predicts low P(retention) and high P(not interested), which trains the system that “users dislike this kind of content.” These are two separate mechanisms. Grox handles hard policy labels. Phoenix handles user-behavior feedback.
What this means:
Even if your edgy bait or clickbait post lucks into 100,000 views, it is a net loss for the account. The small upside from that hit gets eaten several times over by the drop in account trust. Your next post, and the one after that, enter the recommendation pool carrying that negative record. An account is a slow asset. One bad move can take three months to repair.
What to do:
- The title and content must match. Do not use shock-style, reversal-style, “you won’t believe this,” or “99% of people don’t know” hooks. The algorithm recognizes these hooks better than humans do.
- Remember this one-line policy boundary: hate speech, false information, and obvious edgy bait are all off-limits. The machine makes the call directly. There is no human safety net. The bet that “I write in Chinese, so moderators won’t understand” has already lost.
- If AI drafts the post, you must rewrite it yourself. Do three things: replace empty words like “empowerment,” “closed loop,” “underlying logic,” and “top-level design” with concrete actions; break up the “first, second, finally” template and use natural transitions; attach a concrete example to every abstract point.
- Don’t play the game of “create deliberate misunderstanding → comments melt down → traffic explodes.” Every time you publish one of those posts, your account trust score drops. If one or two of them blow up in the short term, don’t get smug. Three months later, your traffic curve will show you the bill.
9 You can chase broad traffic for short-term gain, but long-term distribution still requires a vertical niche
How the algorithm works:
- Account profiles accumulate over time. During cold start, the profile is sparse and the algorithm’s judgment of you is imprecise, so broad-traffic content can still enter recommendations.
- Once the profile stabilizes in the middle and later stages, content that deviates from it gets suppressed immediately.
- The people who reply to you and follow you also train your profile. What your early followers are like determines who you can be pushed to later.
What this means:
Account building has stages, and each stage has a completely different goal. Early on, it is fine to use broad traffic to build a profile and collect a base audience. In the middle and later stages, you must tighten into a vertical niche. The most dangerous stage is actually after you get your first sponsored posts or ad revenue. Many people relax their content standards once money comes in, their account signals drop, and the previous months of work get wasted.
What to do:
- From zero to 1,000 followers, you can chase broad traffic, ride trends, and use controversial topics to build the account profile and assemble a base. But every week, publish at least two or three strong pieces aimed at your target vertical audience, so broad-traffic content does not drag your profile completely off course.
- From 1,000 to 10,000 followers, start choosing topics by vertical audience. AI, startups, investing, developers, and tool users tend to have much deeper engagement than entertainment or lifestyle circles, which makes them better for building a durable account.
- After 10,000 followers, go fully vertical and stop chasing broad traffic. The goal at this stage is not follower growth. It is deepening interaction with existing followers. Deep follower engagement > total follower count.
- Once you start taking sponsored posts or earning ad revenue, run a content-quality review every week. This is the easiest stage to crash. People loosen up once money arrives, and once account signals drop, it takes one to two months to recover. Set your content bar even higher than before you started making money.
10 Search traffic is the underrated second exposure channel outside the timeline
How the algorithm works:
- X Search has its own ranking system, completely separate from For You.
- Top search results combine three types of scores: engagement, health, which looks at reports, blocks, and policy violations, and relevance, which looks at query matching, post age, author network, and content score.
- X’s official search help page emphasizes this directly.
What this means:
For You traffic comes fast. After 24 hours, a post is basically dead. Search traffic comes slowly, but it can keep running for months or even years. These are two completely independent ranking systems, which means the same post may keep bringing people in through Search after it has died in For You, as long as you considered Search when writing it.
What to do:
- When writing a main post, naturally include entity terms your target users will search for: model names (Claude, GPT, Gemini), tool names (Cursor, Vercel, Supabase), platform names (X, Notion), and scenario terms (algorithm, monetization, SOP). These are the keys to the Search entry point.
- Don’t write only in metaphors and memes. Memes can perform well in For You, but they are not searchable. A post made entirely of jokes has zero long-tail traffic.
- Produce evergreen content on purpose: guides, comparisons, templates, mistake lists, and term explanations. This kind of content can still be found six months later. Its long-term compounding beats trend-chasing by a wide margin.
- Put at least one searchable keyword combination into every long post, such as “X algorithm Phoenix,” “Claude Code workflow,” or “Vercel deployment.” These combinations help you hold a long-term position for a specific search query.
- Don’t stuff hashtags. X Search looks at natural-language matching, not tag matching. In 2026, hashtags are only classification labels. They do not help search weight.
Final note
The biggest value of this source-code release is that it maps three years of speculation to real code.
After reading this, do three things immediately:
- Rescore your posts from the last 30 days by replies, reposts, quotes, dwell time, profile visits, and new followers. See which layer your content is actually scoring on. If you are only scoring on likes, the content still needs work.
- Check whether you have switched niches, spammed posts, done mutual-follow games, used edgy bait, touched politics, or posted AI-template formatting in the last 30 days. Avoid these as much as possible going forward.
- Change your account goal from follower count to “followers from the right vertical audience + replies/reposts/bookmarks + dwell time.” This is also why high-quality video has been getting so much distribution recently. Dwell time is a major metric on social platforms.
Comments