Recruiting on X with a reply queue

Find people who just posted that they want work, or who already do the job. Reply to each one publicly with one line in their own language, about their own post, ending with the job link. The owner approves the list, then the queue sends the replies slowly with likes mixed in. Applicants then come in through the job page.

Recruiting is public replies only. DMs are a different job: dmInbox.md and engagerDms.md.

Run it from a fresh context

Say: "go on docs/useCases/twitter/recruiting.md for the <role> role". The agent then:

  1. Reads this page, then README.md for the queue and the rules on every X page.
  2. Gets the role from the owner: its job link, where to hire, the languages.
  3. Runs the steps below to the end. It keeps searching until it has qualified people, shows the table, and sends once the owner says yes. "Nobody qualified" means search wider, not stop.
RoleJob linkWhere the people areLanguages
e.g. a remote appointment setter who calls businesses in English<role link>the regions you hire ine.g. lang:es

What "qualified" means

All five, checked on every person before they go in the table:

  1. Language and freshness: the post really is in the role's language (X's language tag is sometimes wrong), and it was posted in the last few days.
  2. Location: the profile's location is in the role's regions. No location means no contact: hold them and list them separately.
  3. A real person: not a news, brand, job board, government or meme account.
  4. Work signal: they say they're looking for work, or the bio or post shows they did the job themselves (for a calling role: call center, telemarketing, sales, setter or closer work).
  5. Never contacted: not in any earlier send log, and not replied to by the account before (see the README's one-reply rule).

The steps

#StepToolDone when
0Is the account signed intwitterSessionCheck { account }loggedIn
1Search: the role's language plus one work word per query, last few days, -filter:retweetstreg's X post search, many queries in parallela pool of authors, minus everyone already contacted
2Read every profiletreg's X profile read, in parallellocation, bio and followers for each one
3Qualify them with the five checksby hand, or a model scoring fit, region and real persona keep list, plus a "no location" hold list
4Write one line per person, in their language, opening on their own post, ending with the linkhouse styleevery line passes twitterQueueCheck
5Show the owner the table: handle, location, why, post url, the linewherever the owner readsthe owner says yes
6Queue it: each target carries its own text, build, check, approve, plan with likes, dry run, live runthe README's queue stepsthe run is finished
7Log and report every reply url, or X's eventthe queue file, a send logevery item says sent, skipped or blocked
8Check applicantswherever the job page sends applicationsnew applicants reported

Search terms

A language-only search (lang:es alone) brings back noise: TV, football and greetings. Each query needs one work word.

  • es: busco trabajo, necesito trabajo, busco chamba, trabajo remoto, ventas, vendedor, call center, telemarketing, cold calling, setter, closer, bilingüe, agente outbound, cobranza, and the names of the big call-center employers in the region
  • tl: naghahanap ng trabaho, virtual assistant, VA, freelancer
  • hi: नौकरी चाहिए, job chahiye, virtual assistant, CRM, data entry
  • any: CRM, lead gen, n8n, Make, Airtable

What a line looks like

Opening on their own post, then the offer and the link:

jaja esas historias del call son eternas y si te interesa volver pero desde casa estamos contratando cold callers remotos que llaman a negocios de estados unidos en inglés para agendar citas 👉 <role link>

What the runs taught

  • Never search without a work word. A language-only sweep returned posts all from the same minute: a sample of the language, not candidates.
  • Check location before every send. Early runs reached people outside the hiring regions; now no location means hold.
  • Most hits aren't candidates. In a large Spanish call-center sweep, most posts were complaints about call centers, support accounts and news. Expect a handful of qualified people per few hundred authors.
  • Generic copy gets dropped. The same template line with a link came back as "no tweet created"; a line about the person's own post went through. Write each line for its post.
  • Use the queue, never a hand loop. A hand loop lost a reply; the queue keeps every item, stops on X's first refusal with the item still pending, and picks up where it stopped when the owner runs it again.

Running it unattended

The same steps can run on a schedule with nobody watching: search, skip anyone seen or contacted, read profiles, let a model score fit, region and real person against thresholds, have a model write one line per person about their post, then build, approve under the owner's standing yes, plan and run the queue. Keep each run's candidates, decisions, targets and queue together, and read its result with twitterQueueStatus. Make sure only one sender runs on an account at a time.

Next

  • #39 tracks who answered a recruiting reply. Until then, applicants show up wherever the job page stores them.