Every founder hits the same wall: the product exists, and nobody knows. Cold DMs feel like spam because they are spam — the sender picked you from a list, not from your work. I wanted the opposite: to answer people who are already talking about my theme, in their own threads, about their own projects.
My theme is developers who teach their AI agents a practice and publish it. So the people I want to talk to leave public traces: repositories. I had my agent search GitHub topics (claude-skills, agent-skills, claude-code) for repos pushed in the last two weeks, and score each one for "a person who invented a practice" versus an SEO farm — first-person descriptions and named practices score up, "Ultimate Best 2026" phrasing scores down, 1–400 stars because I want people at my own stage, not celebrities. 107 repos scanned, 47 passed.
Then the X part, with Agent-Reach: its twitter-cli backend reads a user's timeline from a normal logged-in session. For every shortlisted person whose GitHub profile lists an X handle, the agent pulled their last 20 posts and picked the best opening — a recent post of theirs about exactly my theme. Honest friction: of 18 people shortlisted, only 2 had both an X handle and a recent on-theme post. That's the real funnel, and it's enough — one opening had 0 likes, which means a thoughtful reply gets noticed.
Everything landed in a sheet: person, repo, why they scored, the opening post with link, and a draft angle. Then the agent stops. I read the threads myself — and while reading them found two more posts worth answering. In one evening I sent four replies, written by me, as me; nothing is ever auto-posted.
The next day: two of the four authors replied back, and my site had 11 visitors, 9 from X, against a baseline of ~2 a day. Small numbers — but these are people who arrived from a conversation, not from a feed.
Reproduce this
Prerequisites: a gh CLI authenticated with GitHub (https://cli.github.com); Python 3; pipx install twitter-cli (https://pypi.org/project/twitter-cli/) — or the full Agent-Reach skill, which routes to the same backend; an X account you are logged into (the CLI needs your auth_token and ct0 cookies as TWITTER_AUTH_TOKEN / TWITTER_CT0 env vars — with Agent-Reach installed, agent-reach configure twitter-cookies stores them for you).
Your agent will need from you: your theme as 2–4 GitHub topics; the star range that matches your stage; your X cookies; what you actually offer the people you'll reply to.
Steps:
- Search recent repos in your theme:
gh api "search/repositories?q=topic:<your-topic>+pushed:><two-weeks-ago>+stars:1..400&sort=updated&per_page=40". - Score each repo description: +2 if it names a concrete practice (review/test/deploy/workflow/...), +2 for first-person phrasing ("I", "my", "we use daily"), +1 for open issues (real users), −4 for farm phrasing (a year + "best/ultimate/top"). Keep score ≥ 3.
- For each kept owner,
gh api users/<login>→ taketwitter_username(also grabemailandblogas fallback channels). - For each handle:
twitter user-posts <handle> -n 20 --jsonand pick recent posts matching your theme. Useuser-posts, nottwitter search— the search endpoint 404s regularly (unstable GraphQL API; this cost me an evening). - Write one row per person into a sheet or CSV: name, repo, why they scored, the opening post URL, engagement counts, and a one-line draft angle that connects THEIR post to YOUR work.
- The agent's job ends here. Read each thread yourself and reply as yourself. Do not let the agent post.
Verify: your sheet has rows whose opening-post links resolve to real, recent, on-theme posts by the repo's author. After you reply by hand, your analytics shows X/Twitter as a referral source it didn't show before.