Skill Tracer
Skills › Marketing Skills › social › x-algorithm.md

x-algorithm.md

69 lines · skills/social/references/x-algorithm.md at 88c79f6

Open on GitHub
1# X (Twitter) Algorithm Playbook
2
3How the X "For You" feed ranks posts, based on xAI's open-sourced algorithm ([xai-org/x-algorithm](https://github.com/xai-org/x-algorithm), May 2026 release — the Phoenix ranker and Grox content-understanding pipeline), and what to change in your posting practice because of it.
4
5**Sourcing note:** the release publishes the ranking *structure* (which signals are scored and how they combine) but not the weight *values* (`params.rs` is withheld). Rules below are tagged **[verified]** when the mechanism is visible in the code, **[reported]** when the specific number or magnitude comes from secondary analysis of the release. Structure changes slowly; reported numbers age fast — treat them as directionally true.
6

X (Twitter) Algorithm Playbook

How the X "For You" feed ranks posts, based on xAI's open-sourced algorithm (xai-org/x-algorithm, May 2026 release — the Phoenix ranker and Grox content-understanding pipeline), and what to change in your posting practice because of it.

Sourcing note: the release publishes the ranking structure (which signals are scored and how they combine) but not the weight values (params.rs is withheld). Rules below are tagged [verified] when the mechanism is visible in the code, [reported] when the specific number or magnitude comes from secondary analysis of the release. Structure changes slowly; reported numbers age fast — treat them as directionally true.

Raw lines 1 to 6
7## How ranking works (60-second version)
8
91. Candidate posts come from two sources: accounts the viewer follows (Thunder) and ML-retrieved posts from the global corpus (Phoenix retrieval). You are always competing for out-of-network reach, not just your followers' feeds.
102. Filters remove ineligible posts *before* scoring: too old, already seen or served, muted keywords, blocked/muted authors.
113. The Phoenix transformer predicts a probability for each engagement type — not one "quality score" but ~15 separate predictions.
124. Final score = weighted sum of those probabilities. Positive actions add; predicted negative actions (not-interested, mute, block, report) subtract.
135. An author-diversity scorer then decays the scores of repeated authors within a feed response, so your posts compete with each other.
15The model has no hand-engineered "quality" features — it learns entirely from engagement histories. You can't optimize for the algorithm directly; you optimize for the specific *behaviors* it predicts. And notice what those behaviors are: staying to read, sending to a friend, following the author, joining the conversation. Those are the things a well-told story produces. Storytelling and genuine connection with your audience aren't a separate strategy from the mechanics below — they're what the mechanics reward. The rules tune distribution; the story earns the engagement.

How ranking works (60-second version)

  1. Candidate posts come from two sources: accounts the viewer follows (Thunder) and ML-retrieved posts from the global corpus (Phoenix retrieval). You are always competing for out-of-network reach, not just your followers' feeds.
  2. Filters remove ineligible posts before scoring: too old, already seen or served, muted keywords, blocked/muted authors.
  3. The Phoenix transformer predicts a probability for each engagement type — not one "quality score" but ~15 separate predictions.
  4. Final score = weighted sum of those probabilities. Positive actions add; predicted negative actions (not-interested, mute, block, report) subtract.
  5. An author-diversity scorer then decays the scores of repeated authors within a feed response, so your posts compete with each other.

The model has no hand-engineered "quality" features — it learns entirely from engagement histories. You can't optimize for the algorithm directly; you optimize for the specific behaviors it predicts. And notice what those behaviors are: staying to read, sending to a friend, following the author, joining the conversation. Those are the things a well-told story produces. Storytelling and genuine connection with your audience aren't a separate strategy from the mechanics below — they're what the mechanics reward. The rules tune distribution; the story earns the engagement.

Raw lines 7 to 16
17## The signals your post is scored on [verified]
19Every signal below is a separate weighted term in the scoring code:
21| Signal | What to notice |
22|--------|---------------|
23| Favorite (like) | The baseline — and the weakest lever, given how many other signals exist |
24| Reply | Conversation-starting posts earn a distinct signal |
25| Repost | Public amplification |
26| Quote **and** quoted-click | Two separate terms: engagement on a quote post *and* clicks through to the quoted post both score |
27| Click | Opening the post detail |
28| Profile click | Clicking through to your profile is its own scored action |
29| Share, share-via-DM, share-via-copy-link | **Three separate share signals** — private sharing is explicitly modeled, not lumped into one |
30| Video quality view | Only paid if video duration exceeds a minimum threshold (`MIN_VIDEO_DURATION_MS`); short clips earn zero video credit |
31| Dwell (two forms) | Time spent reading is scored both as a threshold and as continuous time |
32| Photo expand | Tapping to enlarge an image |
33| Follow author | A post that converts a viewer into a follower earns its own signal |
34| Not interested / mute / block / report | **Negative weights** — the model predicts these too, and they subtract from your score |

The signals your post is scored on [verified]

Every signal below is a separate weighted term in the scoring code:

SignalWhat to notice
Favorite (like)The baseline — and the weakest lever, given how many other signals exist
ReplyConversation-starting posts earn a distinct signal
RepostPublic amplification
Quote and quoted-clickTwo separate terms: engagement on a quote post and clicks through to the quoted post both score
ClickOpening the post detail
Profile clickClicking through to your profile is its own scored action
Share, share-via-DM, share-via-copy-linkThree separate share signals — private sharing is explicitly modeled, not lumped into one
Video quality viewOnly paid if video duration exceeds a minimum threshold (MIN_VIDEO_DURATION_MS); short clips earn zero video credit
Dwell (two forms)Time spent reading is scored both as a threshold and as continuous time
Photo expandTapping to enlarge an image
Follow authorA post that converts a viewer into a follower earns its own signal
Not interested / mute / block / reportNegative weights — the model predicts these too, and they subtract from your score
Raw lines 17 to 35
36## The 10 rules
381. **Open with a specific claim in the first 8 words.** [reported] Dwell is scored two ways [verified], and scroll-past is the dwell-killer. Don't warm up — the hook *is* the post.
402. **Wait ~60 minutes between original posts.** [reported number] The author-diversity scorer is verified: within a feed response, each additional post from the same author gets a decayed score. Clustered posts cannibalize each other's reach.
423. **Name your topic in the first 10 words.** [reported] Topic-based candidate sourcing and followed-topic hydration are verified in the pipeline — the algorithm routes posts to topic followers, but only if it can tell what the topic is. Vague musings don't get routed.
444. **Write for the DM-forward, not the like.** [verified structure; relative weight reported] Share-via-DM is its own scored signal. The test for every post: "would someone send this to a friend?" beats "would someone like this?"
465. **Quote tweets score twice.** [verified structure] Quote engagement and quoted-click are separate terms. Quoting with added insight beats plain reposting — for both parties.
486. **Write for the follow.** [verified structure] Follow-author is a distinct signal. Posts that make a stranger think "I want more of this" outperform posts that make them think "ha, nice."
507. **Make them curious enough to click your profile.** [verified structure] Profile clicks are scored. This is the mechanical argument for a strong bio and pinned post: the algorithm rewards posts that trigger the click, and your profile converts it.
528. **Name specific things.** [verified mechanism] Two reasons: specificity is what enables topic routing (rule 3), and the muted-keyword filter removes posts *pre-scoring* — generic engagement-bait phrases are commonly muted; specific nouns ("Claude", "Stripe") rarely are.
549. **Video must clear the minimum duration — with captions.** [verified mechanism; ~8s reported] The video-quality-view weight only applies above `MIN_VIDEO_DURATION_MS`. Below the threshold, video earns zero video credit. Captions serve the dwell signals (most viewing is muted).
5610. **Be present for the first 30 minutes.** [reported] Early replies compound: each reply you answer is a fresh engagement event, and reply chains feed the dwell and conversation signals. Post when you can stay, not when the scheduler fires.

The 10 rules

  1. Open with a specific claim in the first 8 words. [reported] Dwell is scored two ways [verified], and scroll-past is the dwell-killer. Don't warm up — the hook is the post.
  1. Wait ~60 minutes between original posts. [reported number] The author-diversity scorer is verified: within a feed response, each additional post from the same author gets a decayed score. Clustered posts cannibalize each other's reach.
  1. Name your topic in the first 10 words. [reported] Topic-based candidate sourcing and followed-topic hydration are verified in the pipeline — the algorithm routes posts to topic followers, but only if it can tell what the topic is. Vague musings don't get routed.
  1. Write for the DM-forward, not the like. [verified structure; relative weight reported] Share-via-DM is its own scored signal. The test for every post: "would someone send this to a friend?" beats "would someone like this?"
  1. Quote tweets score twice. [verified structure] Quote engagement and quoted-click are separate terms. Quoting with added insight beats plain reposting — for both parties.
  1. Write for the follow. [verified structure] Follow-author is a distinct signal. Posts that make a stranger think "I want more of this" outperform posts that make them think "ha, nice."
  1. Make them curious enough to click your profile. [verified structure] Profile clicks are scored. This is the mechanical argument for a strong bio and pinned post: the algorithm rewards posts that trigger the click, and your profile converts it.
  1. Name specific things. [verified mechanism] Two reasons: specificity is what enables topic routing (rule 3), and the muted-keyword filter removes posts pre-scoring — generic engagement-bait phrases are commonly muted; specific nouns ("Claude", "Stripe") rarely are.
  1. Video must clear the minimum duration — with captions. [verified mechanism; ~8s reported] The video-quality-view weight only applies above MIN_VIDEO_DURATION_MS. Below the threshold, video earns zero video credit. Captions serve the dwell signals (most viewing is muted).
  1. Be present for the first 30 minutes. [reported] Early replies compound: each reply you answer is a fresh engagement event, and reply chains feed the dwell and conversation signals. Post when you can stay, not when the scheduler fires.
Raw lines 36 to 57
58## What kills reach [verified]
60- **Muted keywords** — filtered before scoring even happens. Spammy CTA phrases and rage-bait vocabulary are widely muted.
61- **Predicted negative actions** — if your post pattern-matches to content people block, mute, or hit "not interested" on, it's penalized *before anyone acts*. Engagement bait doesn't just annoy humans; it's a modeled negative.
62- **Posting bursts** — author-diversity decay (rule 2). Your second post in an hour starts handicapped.
63- **Already-seen content** — reposting the same content quickly hits the previously-seen/served filters. Evergreen reruns need spacing.

What kills reach [verified]

  • Muted keywords — filtered before scoring even happens. Spammy CTA phrases and rage-bait vocabulary are widely muted.
  • Predicted negative actions — if your post pattern-matches to content people block, mute, or hit "not interested" on, it's penalized before anyone acts. Engagement bait doesn't just annoy humans; it's a modeled negative.
  • Posting bursts — author-diversity decay (rule 2). Your second post in an hour starts handicapped.
  • Already-seen content — reposting the same content quickly hits the previously-seen/served filters. Evergreen reruns need spacing.
Raw lines 58 to 64
65## Caveats
67- **Weights are unpublished.** Claims like "shares are worth N× likes" are inference, not source. The safe conclusion is which behaviors are scored *at all* — and that private shares, follows, profile clicks, and dwell each matter independently.
68- **This ages fast.** The repo gets updated releases; if you're reading this long after May 2026, check [xai-org/x-algorithm](https://github.com/xai-org/x-algorithm) for changes before treating numbers as current.
69- **These rules are X-specific.** The general principles (hook early, specificity, reply presence) travel to other platforms; the mechanics (60-minute spacing, quote-double-counting, video minimums) do not.

Caveats

  • Weights are unpublished. Claims like "shares are worth N× likes" are inference, not source. The safe conclusion is which behaviors are scored at all — and that private shares, follows, profile clicks, and dwell each matter independently.
  • This ages fast. The repo gets updated releases; if you're reading this long after May 2026, check xai-org/x-algorithm for changes before treating numbers as current.
  • These rules are X-specific. The general principles (hook early, specificity, reply presence) travel to other platforms; the mechanics (60-minute spacing, quote-double-counting, video minimums) do not.
Raw lines 65 to 69