One of the biggest mistakes people make on X is posting into the void.
They publish content, hope the algorithm picks it up, and wait for people to find them. But if you want to actually build a following, you have to get involved in active conversations that are already happening in your niche.
This automation helps you find those conversations consistently and draft relevant replies.
1. Create Your Source List
Create a list of the top 100 influencers, creators, or accounts in your niche.
This list will be used as the source for finding relevant posts to analyze, track, or engage with.
2. Open Up Browser Console + Run the Following:
(async () => {
const posts = new Map();
const MAX_POSTS = 25;
const MAX_AGE_HOURS = 6;
const cutoffMs = Date.now() - MAX_AGE_HOURS * 60 * 60 * 1000;
const sleep = ms => new Promise(r => setTimeout(r, ms));
const clean = s => (s || '').replace(/\s+/g, ' ').trim();
function hasMedia(article) {
return !!article.querySelector([
'img',
'video',
'[data-testid="tweetPhoto"]',
'[data-testid="videoPlayer"]',
'[data-testid="card.wrapper"]',
'[aria-label*="Image"]',
'[aria-label*="Video"]'
].join(','));
}
function extract() {
document.querySelectorAll('article[data-testid="tweet"], article').forEach(article => {
if (hasMedia(article)) return;
const timeEl = article.querySelector('time[datetime]');
const linkEl =
timeEl?.closest('a[href*="/status/"]') ||
[...article.querySelectorAll('a[href*="/status/"]')].find(a =>
/\/status\/\d+/.test(a.getAttribute('href') || '')
);
if (!timeEl || !linkEl) return;
const datetime = timeEl.getAttribute('datetime') || '';
const ts = Date.parse(datetime);
if (!ts || ts < cutoffMs) return;
const href = linkEl.getAttribute('href') || '';
const m = href.match(/status\/(\d+)/);
if (!m) return;
const post_id = m[1];
if (posts.has(post_id)) return;
const text = clean(
[...article.querySelectorAll('[data-testid="tweetText"]')]
.map(el => el.innerText || el.textContent || '')
.join(' ')
);
if (!text) return;
posts.set(post_id, { post_id, text });
});
}
let noNewRounds = 0;
while (posts.size < MAX_POSTS && noNewRounds < 5) {
const before = posts.size;
extract();
window.scrollBy(0, Math.max(window.innerHeight * 0.9, 900));
await sleep(1400);
extract();
if (posts.size === before) noNewRounds++;
else noNewRounds = 0;
console.log(`Collected ${posts.size}/${MAX_POSTS} text-only posts from last ${MAX_AGE_HOURS} hours`);
}
const rows = [...posts.values()].slice(0, MAX_POSTS);
const txt = rows
.map(r => `${r.post_id}: ${r.text.replace(/\n/g, ' ')}`)
.join('\n');
const blob = new Blob([txt], { type: 'text/plain;charset=utf-8' });
const a = document.createElement('a');
const blobUrl = URL.createObjectURL(blob);
a.href = blobUrl;
a.download = `x-list-text-only-posts-last-${MAX_POSTS}.txt`;
document.body.appendChild(a);
a.click();
a.remove();
URL.revokeObjectURL(blobUrl);
console.log(`Downloaded TXT with ${rows.length} text-only posts`);
})();
3. Run This Prompt in Comet Every 6 Hours (or 12 or 24)
Open Comet while you are on your X list page, and use this prompt:
Make a list of the top 25 posts posted in the last 6 hours from the current list in our tab. Use the browser for this action. We need the post ID of each post and the content of the post in a clean, comma-separated list.
4. Run This Prompt in AchieveAI Automations
Take that comma-separated list from Comet and simply enter it into AchieveAI.
Say:
Read each post and then draft a reply via X. Before drafting, first look at everything we do at [your company] as a company so the replies are witty, relevant, and aligned with our work.
Why This Works
Huge accounts in your industry already have attention.
When you consistently respond to their posts with witty, relevant replies, you stop waiting for people to discover you. Instead, you show up where your target audience is already paying attention.
The X API does not allow AI-generated replies anymore, to prevent AI-generated content from flooding the platform. That gives this workflow a massive advantage.
With just one click, you can open the X thread with the prefilled response, ready for any human polish. Just hit reply, and you’re automatically back in the command center and ready for the next one.
This creates a human-in-the-loop workflow that is fast, efficient, and still high quality. You can reply rapid-fire to dozens of posts in a compelling, human-reviewed, on-brand, researched, and customized way, consistently showing up in front of huge brand audiences.
In other words, you hijack their audience.
This has never been done before. It is impossible with the API, and it is difficult to sound great consistently without the infinite memory AchieveAI has and its unique algorithm for creating perfect replies.
Because AchieveAI learns your business, mission, values, beliefs, product data, and brand voice, it does not draft generic replies. The responses can sound like you, stay relevant to your company, and remain on point with what you actually do.
You can respond to 20 people in 30 minutes, do it once per day, and consistently become part of the most important conversations in your niche.
Over time, this helps you build recognition and create more opportunities for people in your niche to notice and follow you.