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

# Reply (Search)

Searches X for tweets matching your queries and replies with templates or AI-generated text. The primary growth engine for small accounts.

## How it works

Each cycle, the module shuffles your configured search queries (randomized order to avoid detection), searches X for matching tweets, filters by age and engagement, and posts replies.

Queries are picked randomly each cycle. If a query has a per-query cap, replies stop for that query once the cap is hit, then move to the next.

## Search queries

Queries are configured as an object mapping search strings to reply content. Each query can use either a static template or AI generation:

- **Static template:** `"search term": "Reply text here"`
- **AI generation:** `"search term": { "use_ai": true, "prompt": "Your AI prompt" }`

Individual queries can be temporarily disabled via the Skipped Queries list. If all queries are skipped, the module waits for the next cycle.

## Configuration reference

| Setting | Default | Description |
| **Search Queries** | — | Query-to-reply mapping (see above) |
| **Skipped Queries** | none | Queries to temporarily disable |
| **Pages Parsing** | 10 | X Search pagination depth per query (max 30) |
| **Post age (min)** | 60 | Only reply to tweets younger than this many minutes |
| **Replies per query** | 0 (no limit) | Max replies per query per cycle |
| **Delay between replies (sec)** | 5 | Base delay between replies (+ random 0-10s jitter) |
| **Replies per day** | Plan-driven | Daily cap (overridden by plan) |
| **Delay between cycles (min)** | 1 | Wait between full cycles (min 0.5 min) |
| **Author followers** (min) | 0 | Skip tweets from authors below this follower count |
| **Author followers** (max) | none | Skip tweets from authors above this count |

An additional random pause of 30-120 seconds is injected roughly every 30% of replies as an anti-pattern measure.

## Daily caps

| Plan | Daily limit | Scope |
| Free | 30 | Reply (Search) only |
| Standard | 100 | Reply (Search) only |
| Pro | 300 | Combined with Reply (List) |
| Unlim | Unlimited | Combined with Reply (List) |

Caps reset at UTC midnight. On Pro and Unlim, Reply (Search) and Reply (List) share one combined counter.

## AI text generation

When a query is configured with AI enabled, the module sends the target tweet's text to the AI provider (default: Grok) along with your custom prompt. The AI response is validated before posting:

- Empty responses are rejected.
- Responses that are only a URL are rejected.
- Max text length is 700 characters by default (configurable in AI Settings).

## Advanced filters (Unlim only)

These settings are only available on the Unlim plan. On lower plans they are locked and use safe defaults:

| Setting | Default | Description |
| **Wallchain X Score** | 0 | Minimum X-Score (0-1000) to reply. Scores are cached for 1 hour. |
| **GEO blacklist** | none | Comma-separated country codes to exclude. |
| **Blue verified** | off | Only reply to verified accounts. |
| **Follow author** | off | Follow the tweet author after replying. |
| **Follow author probability** | 100% | Probability to follow when enabled. |
| **Skip my followers** | off | Skip authors who already follow this account. |
| **Like author post** | off | Like the tweet after replying. |

## Safety behavior

- Never replies to the same tweet twice.
- Skips self-authored posts.
- GEO filtering is fail-closed: if the country lookup fails, the tweet is excluded.
- Wallchain X-Score validation is also fail-closed on API error.
- Anti-spam context is passed with each reply to make replies appear organic to X.

Related reading: [Reply automation safety](https://helperx.app/blog/reply-automation-safety) · [AI replies that don’t sound like AI](https://helperx.app/blog/ai-replies-that-dont-sound-ai) · [GEO blacklist setup & ethics](https://helperx.app/blog/geo-blacklist-reply-search-setup) · [Wallchain X-score filters](https://helperx.app/blog/wallchain-x-score-filters-explained).
