<!-- canonical: https://helperx.app/docs/top-repost -->
<!-- updated: 2026-07-19 -->

# Top Repost

Finds the highest-performing tweet across a group of profiles and reposts it — as a quote with AI text or a plain retweet. Uses a hybrid scoring algorithm that normalizes engagement by follower count.

## How it works

Each cycle, the module picks the next group via round-robin, searches X for recent tweets from each profile in the group, scores every candidate, and reposts the winner:

1. Selects the next active (non-skipped) group.
2. Searches each profile's recent original tweets (no replies, no retweets).
3. Filters by age window and blacklist keywords.
4. Scores all candidates using the hybrid algorithm.
5. Publishes the highest-scoring tweet (or a random one in Random Score mode).

## Profile groups

Groups organize profiles that share the same reposting criteria. Each group has:

- **Element Name** — a label for the group.
- **Profiles** — X handles to monitor (one per line, without @).
- **Age (min)** — age window for tweets (e.g. 0–60 minutes).
- **Blacklist words** — tweets containing any blacklisted word are excluded (one per line).
- **AI Prompt** — if set, the winner is published as a **quote tweet** with AI-generated text. If empty, it's a plain **retweet**.

Groups can be temporarily skipped without deleting them.

## Hybrid scoring algorithm

The scoring formula normalizes engagement by follower count, so a small account with proportionally high engagement scores equally with a large account.

### Score weights

| Component | Weight |
| Comments | 30% |
| Reposts | 25% |
| Likes | 25% |
| Views | 20% |

### Time decay

Newer tweets score higher. A tweet loses about 63% of its score after 24 hours, strongly favoring fresh content.

The algorithm also accounts for engagement quality (interaction-to-view ratio) and virality (how fast engagement accumulates relative to post age).

## Random score mode

When **Random Score** is enabled on a group, instead of always picking the top scorer, the module picks a random candidate within the configured **Range**. This adds variety to repost selection.

If no candidates fall within the range, the group is skipped for that cycle.

## Publish: quote vs retweet

- **Quote (AI Prompt set):** AI generates text from the prompt. Published as a quote tweet.
- **Retweet (no prompt):** Plain retweet of the winner.
- **AI timeout fallback:** If the AI provider times out 3 times, the module falls back to a plain retweet.

Quote-published posts are tracked for the Reply to Comments module.

## Configuration reference

| Setting | Default | Description |
| **Element Name** | — | Group label |
| **Profiles** | — | X handles to monitor (one per line) |
| **Age (min)** | 0 – 60 | Tweet age window in minutes |
| **Blacklist words** | — | Keywords to exclude (one per line) |
| **AI Prompt** | — | Prompt for quote text (empty = plain retweet) |
| **Random Score** | off | Enable random selection within a score range |
| **Range** | 0 – 100 | Score range for random selection |
| **Delay between elements (min)** | — | Delay range between cycles |

## Safety behavior

- Never reposts the same tweet twice.
- Rate limit (429) triggers a backoff (default 15 minutes) and ends the cycle early.
- AI validation rejects empty, URL-only, or exact-input-copy responses.
- Critical error codes trigger account-wide auto-pause.

When to quote vs silent repost: [Quote Tweets vs Reposts: When Top Repost Wins](https://helperx.app/blog/quote-tweet-vs-repost-algorithm). Product: [Top Repost](https://helperx.app/features/top-repost).
