How do I clean up an X account safely?
Selectively, with a record, and without nuking things you can't get back. The principle: target the specific posts that carry real risk — ones drawing negative engagement, ones that could attract a note, ones you don't want associated with you — rather than bulk-deleting your whole history on a hunch. Keep a record of what you remove, since deletion is permanent. And recognize that "cleanup" for reach is mostly a myth: old posts age out on their own. Safe cleanup is reputation management, done with judgment and a paper trail, not a panic purge.
The dangerous version of "clean up your account" is the bulk purge — deleting thousands of posts reflexively, often on the false belief it boosts reach. Safe cleanup is the opposite: surgical, recorded, and reversible where possible.
Target risk, don't carpet-bomb
The posts worth removing are a small, specific set — and the code tells you which kind matter:
posts attracting negative engagement
(reports, blocks, mutes subtract from a post's score), posts that could draw a
Community Note, and posts that simply don't
represent you. Everything else is just aging out harmlessly via the
age filter.
The model explicitly predicts negative actions — not interested, block author, mute author, report — and these carry negative weights in the final score, pushing down content a user would likely dislike.
Deletion is permanent — keep a record
The single most important safety rule: deleting a post is irreversible, and you lose the post, its engagement, and any record of it. Before any cleanup, keep your own archive (X provides a data export) so you have a copy of what you removed. A reckless purge can erase things you'd have wanted back — context, receipts, your own history.
The myth that drives unsafe purges
Most panic-deletes come from believing old posts hurt current reach. They don't, in the open
code — there's no account-level old-post penalty, and old posts age out of feeds on their own. Once
you internalize that, the urgency to bulk-delete evaporates, and you can clean up calmly and
selectively instead.
The AgeFilter removes candidates older than a configured max_age, partitioning posts on whether they fall within the allowed age window.
A safe cleanup checklist
| step | why |
|---|---|
| Export your archive first | Deletion is permanent; keep your own copy. |
| Identify the genuinely risky posts | Negative-engagement magnets, note-bait, off-brand content — not your whole history. |
| Remove selectively, keep a log | Know what you removed and why. |
| Don't expect a reach boost | Cleanup is reputation management, not a ranking lever. |
What the code doesn't say
Exactly which of your posts carry risk — that requires reading your own engagement data against
your baseline, which no generic rule can do. The code tells you what kinds of signals matter; it
can't point at your specific posts.
The numeric values of the current weights are not included in the open-source release: weighted_scorer.rs references a params module (e.g. p::FAVORITE_WEIGHT, p::REPLY_WEIGHT) whose values are not present anywhere in the published repository.
What to do with this
This is precisely what xDoctor's Sweeper is designed for: it identifies the specific posts that carry real risk from your archive and removes them on your explicit instruction — targeted, recorded, and consent-gated — rather than a blind bulk purge. Safe cleanup is selective, and selection requires the kind of per-post analysis xDoctor does.