HomeMyths"Hashtags boost your reach"

"Hashtags boost your reach"

Verdict: NO HASHTAG FEATURE in the 2026 ranker

The ranking model's inputs are ID-hash embeddings, engagement history, surface, and post age. Post text (including hashtags) reaches the system only through Grox multimodal embeddings — where a hashtag is just more text, and spammy tag-stuffing is exactly what LLM spam screens catch.

The code

phoenix/recsys_model.py RecsysBatch; grox/embedder/multimodal_post_embedder_v5.py.

See for yourself: every term in the scoring formula

This is the complete list of scoring terms in home-mixer/scorers/ranking_scorer.rs (compute_weighted_score, commit 0bfc279). Read it — what isn’t in this list isn’t in the ranking formula:

  favorite                 × +weight  (withheld)
  reply                    × +weight  (withheld)
  retweet                  × +weight  (withheld)
  photo_expand             × +weight  (withheld)
  click                    × +weight  (withheld)
  profile_click            × +weight  (withheld)
  vqv                      × +weight  (withheld)
  share                    × +weight  (withheld)
  share_via_dm             × +weight  (withheld)
  share_via_copy_link      × +weight  (withheld)
  dwell                    × +weight  (withheld)
  quote                    × +weight  (withheld)
  quoted_click             × +weight  (withheld)
  quoted_vqv               × +weight  (withheld)
  cont_dwell_time          × +weight  (withheld)
  cont_click_dwell_time    × +weight  (withheld)
  follow_author            × +weight  (withheld)
  not_interested           × −weight  (withheld)
  block_author             × −weight  (withheld)
  mute_author              × −weight  (withheld)
  report                   × −weight  (withheld)
  not_dwelled              × −weight  (withheld)

Verified against xai-org/x-algorithm @ 0bfc279 on 2026-07-31. Withheld layers (params, visibility filtering, Grox prompts) mean “absent from open code” is the strongest claim honestly available — see methodology.

Test a real draft instead →