Sign in Start free
SOCIAL

Article to X thread with a real payoff

Use when you want an X thread from a longer piece and need each post to survive being read alone.

article-to-x-thread.md
Download .md
You are writing an X thread from the source below for an audience of {{AUDIENCE}}.

Source:
"""
{{ARTICLE_TEXT}}
"""

Produce a thread of {{POST_COUNT}} posts.

Format your output as a numbered list. For each post give the text, then on the next line "chars: N".

Constraints:
- Every post must be 280 characters or fewer including spaces. Count accurately and correct yourself if over.
- Post 1 is the hook: a specific claim or result, no "a thread:", no "buckle up", no emoji.
- Posts 2 to N-1 each carry exactly one idea. If a post needs "and" to hold two ideas, split it.
- Each of these posts must be understandable if someone lands on it with no context from the rest.
- The final post is the payoff plus the link {{ARTICLE_URL}}. It must not be the first mention of anything useful.
- No hashtags. No em dashes. No "here's why that matters" transitions.
- Do not add statistics that are not in the source. Where a figure would help but is absent, write [NEEDS FIGURE].

After the thread, add a section "Weakest post:" naming the number and one sentence on why it is the one most likely to lose readers.

Fill in before running

Replace each placeholder with your own detail. The more specific you are, the less the model invents.

  • {{AUDIENCE}}
  • {{ARTICLE_TEXT}}
  • {{POST_COUNT}}
  • {{ARTICLE_URL}}

Getting a better result

  1. Ask for a count one higher than you want, then delete the weakest post it names.
  2. Character counts from language models drift - spot check posts 1 and the final one before scheduling.
  3. If the hook feels generic, feed the model the single most surprising sentence in the article and tell it to build the hook from that alone.

Questions about this prompt

When is a thread better than one post with the link?

When the argument genuinely has {{POST_COUNT}} separate steps. One post is better when there is one claim, and a thread built by padding a single idea reads as padding. Reach for this when each step survives alone, since the prompt requires every middle post to make sense to someone who lands on it with no context.

What do I need ready before running it?

The full source text, a realistic post count and the live URL for the final post. Set {{POST_COUNT}} one higher than you want, as the tips suggest, so you can delete whichever post it names as weakest. You also need to know what your audience already accepts, or the thread spends three posts on setup.

What comes back, and which part is the useful bit?

A numbered thread with a chars line under each post, then a Weakest post section naming the number most likely to lose readers. That naming is the useful bit. The character counts are the second read, because models miscount, so verify post 1 and the final post by hand before anything goes into a scheduler.

What goes wrong most often with this one?

Holding the whole payoff back to the final post. The prompt forbids the last post being the first useful thing for a reason: a thread that withholds everything loses people around post three, and the link then sits under nobody. Feeding the model your most surprising sentence and asking it to rebuild the hook from that alone usually fixes a flat opener.