Skip to main content
All posts
Methodology

Outliers as training data: how ClimbX learns what works at your size.

Why we draft from posts that broke out for accounts 2 to 5x your size, how the cohort data refreshes, and how the learning loop tightens with every draft you ship - all framed by what the X algorithm actually rewards.

DS

Daniel Smidstrup

Founder of ClimbX

Follow on X

I grew my X account from 0 to 10K followers in 137 days.

8 min read
Flow diagram of the ClimbX drafter pipeline: three cohort avatars (@cohort1, @cohort2, @cohort3) over a grid of six simplified X post cards. Two cards in the top row are outlined in orange, labeled 2.1x and 3.4x with upward spike charts, sitting above a dashed baseline. An arrow flows into a Tag box containing format, niche, and topic pills, then into a larger Draft in your voice post card on the right. A dashed orange learning-loop curve returns from the draft card back to the source grid. Charcoal line art on cream with orange highlights.

Most posts flop because the writer is guessing what the feed wants this week. The writing is often fine. The fastest way to stop guessing is to look at what is taking off right now for accounts one step ahead of you in your niche. Then draft from those patterns. That is how ClimbX decides what to put on your calendar.

This post shows the data behind a ClimbX draft: how we pick the accounts, what counts as an outlier, how the cohort refreshes, how the algorithm rules from our earlier algorithm post shape the draft, and how it gets better for you the longer you use it. When I cite a number, it comes from the open-source X ranker or the real setting we run in ClimbX.

What we count as an outlier

An outlier is a post that clearly beat the author's own normal. We measure it with a baseline multiplier. Take a post's impressions, replies and reposts. Divide by the median of the 20 posts around it from the same author. A post at 1.5x is a clear win. 2x is an outlier. 3x and above is a breakout.

We compare to the author's own normal because it evens out account size, how often they post and time of day. A 5,000-impression post from a 2K account says much more than a 50,000-impression post from a 500K account, where the floor is higher. The ranker also looks at engagement rate per author. So a post that beat its own normal by 2x is a post the algorithm itself saw as doing well.

Posts over the bar get tagged with a format (single, thread, quote, reply, poll), a niche (one of the 50+ niches in our list) and topic keywords. The drafter searches by those tags later. Raw text alone would not help. It would tempt the model to copy the wording, which is exactly what you should not do.

Why cohort-ahead, not viral accounts

A founder with 2K followers should study different accounts than a creator with 200K. A post that works for @levelsio at his size works because his readers already trust him. Copy the same format from a 1K account and you get nothing. The accounts worth studying are a bit bigger than you. What they do still fits where you are.

ClimbX picks a cohort for you at 2 to 5 times your current follower count, inside the niches you chose. Three to five accounts at most. Fewer is better. With a small cohort the drafter learns what works in your corner of X. It does not average every popular creator into bland drafts.

Looking back in time also helps. The best examples from a 30K-follower account are often what they posted at 5K, not what they post now. We log follower counts every time we fetch a cohort account. So the system can pull "what worked for @x when they were your size", not only what works for them today.

How the polling works and why it stays cheap

The X API is pay-per-resource. Reading a post costs $0.005. Reading a user profile costs $0.010. Writing a post with a URL in it costs $0.200, about 13x the $0.015 plain-write rate. That is one reason the composer blocks scheduling posts with links. One user watching five cohort accounts could easily spend $10 a month just checking for new posts, if every fetch were per user. The math only works because we share fetches.

When one user adds @sama to their cohort, we fetch the next 24 hours of @sama posts once. Every other user with @sama in their list gets the same copy. With 100 users sharing the same few tech founders, the cost per user drops about a hundred times. That is why we pick cohorts from a set list of growth accounts plus handles users paste in. It keeps the overlap high.

How often we check depends on the account. Accounts that posted in the last 24 hours get checked every 5 minutes. Quiet accounts drop to once an hour. Every fetch also updates that account's follower log. That feeds the look-back above, and that feeds tomorrow's drafts.

How a draft actually uses the data

When you ask for a draft in the composer, the drafter pulls a few recent outliers from your cohort. They match the format and niche you picked. Then it pulls your last 100 to 200 posts to learn your voice. The prompt the model sees looks roughly like this.

  • Voice block. Your last 100 to 200 posts as written, plus a summary of your habits (sentence length, openers, closers, the words you actually use).
  • Outlier block. 5 to 10 cohort posts with their baseline multiplier and tags. The instruction is clear: learn the shape, the angle and the hook. Do not reuse the words.
  • Algorithm rules.The ranker's known behaviour as a short checklist (a hook people can reply to, no link in the post, the right length for the format, no phrases that sound like AI).
  • Your stories block. An optional set of personal details (projects, numbers, recent posts that worked for you) the model can build a draft on. This is what keeps the draft from sounding like a generic AI summary.

You get 2 to 3 drafts per turn. Each one takes a different angle on the outliers. You pick one, edit it and post it. The edit is required. It keeps quality up. It also protects you if X gets stricter on bland AI content.

The X algorithm shapes the prompt, not just the post

A draft that breaks what the ranker is known to like gets buried, however good the writing. The drafter follows three rules, in the same order as the algorithm post.

RuleHow the drafter enforces it
Replies beat reposts beat likesEvery draft is checked for a hook people can reply to: a clear claim, a contradiction, or a question with a real answer. Drafts nobody could reply to get rewritten.
No external links in the postBlocked. Our server rejects scheduled posts with links. The composer suggests putting the link in the first reply instead, so the post keeps its reach.
No AI-tell phrasingNo em-dashes, no "the truth is" / "here's the thing" openers, no lists of three for rhythm. The voice block pulls the other way: drafts follow how you actually write.

The first 30 minutes after you post matter more than the next 24 hours combined. So the composer also suggests when to post, based on when your past outliers went out. That is the only real-time part of the system right now. Full reply-window alerts are planned for v2.

The learning loop has two layers

The loop does not stop at the draft. Every post you publish feeds back in. The system gets better in two ways at once.

Per-user personalisation

Your own results improve the voice profile and the prompt over time. Posts that beat your normal count more in the voice block next time. When you edit a draft a lot, we compare it to the original, so the model learns what you reject. Posts you saved but never published count against that style. The longer you use it, the more your drafts look like posts you want to publish.

Cross-user niche x size x type matrices

Every published post is made anonymous and added to a table by niche, size band and format. With enough users, the table answers questions like: "for a build-in-public account between 1K and 5K followers, do threads or single posts hit higher baseline multipliers right now?" The answer changes month to month as the ranker changes. Data from many users spots that change faster than one user could alone. Your posts are never shown to other users. Only the combined patterns are.

So there are two layers. Your own data makes your drafts better with every post you publish. Everyone's data makes drafts better for all users with every new user. This loop is closer to what NFX calls a data network effect than to a classic two-sided marketplace.

What the system deliberately does not do

There are three things we could build here and choose not to. Each one would hurt quality or cost too much to run.

  • Auto-publish. Every draft gets a human edit before it goes out. On autopilot, posts slowly stop sounding like you. That would defeat the whole point of the product.
  • Automatic replies. Reply spam is what X punishes most. ClimbX can draft a reply with AI, but you edit it and send it yourself. It never replies to other people for you.
  • Batch calendar generation. Making 30 drafts at signup would cost a lot. They would go stale before you posted them, and they would use old cohort data. Drafts get made one at a time in the composer, with the newest cohort data from that minute.

One short version

Pick three to five accounts a bit ahead of you in your niche. Watch which of their posts beat their own normal. Write in your own voice, in the shape of what worked for them. Keep to what the ranker rewards. Edit, post, learn from the result. Repeat. ClimbX does that loop with much less manual research. You still do the writing.

If you research by hand, you need a place to keep what you find. A tool like Stashr keeps the full text of posts you save on X, Reddit and other sites. It tags them for you and makes them searchable later. Keep the examples and learn the patterns from them. Do not copy the text.

Try the loop on your own cohort.

Pick three accounts you would like to be at in 12 months. ClimbX pulls their recent outliers, tags them, and drafts in your voice off what is currently working. Edit, ship, watch the loop tighten.

Read next

Sources

Allow optional cookies for ads, analytics and referrals? Privacy details