TL;DR: Craigslist's Gigs section is a live feed of buyers publicly asking for a specific service. Craigslist itself emails you every match through native saved-search alerts. The catch: the first three replies take 80% of the jobs, and the window closes in ~40 minutes. To win at scale a company would need to monitor hundreds of queries across dozens of cities, 24/7, and reply in under a minute with a task-specific message. That is not a human job - it is an agent job. Craigslist bans spam, scraping, and templated blasts; it does not ban a fast, relevant, per-post reply. The loophole is the delta between what the platform allows and what only an agent can execute.
The overlooked surface
Local buyers publish explicit needs in Gigs. On a single July afternoon the Los Angeles, New York, Chicago, and San Francisco feeds all carried fresh requests for website design, commercial cleaning, logistics, marketing, subcontractors, and creative services. The behavior is already there: someone needs a service, they post a request, the market responds.
A company does not need to buy another ad. It needs to listen to exactly what buyers ask for and answer first. Craigslist did not build a lead-generation platform. Its users built one out of classifieds - and left it un-served because no human team can staff it end-to-end.
The loophole starts with a listener. Craigslist lets any account save a search and receive an email alert when new results appear. Boolean syntax, phrase matching, exclusions. That is the whole native mechanism. Flip the classifieds board backward and it becomes a demand feed - one your agent can subscribe to on every query, in every city, at once.
Why only an agent can run it
The mechanic is public. The saved-search feature has been live for a decade. So why is the loophole still open? Because the physics of the reply window select humans out. First-reply share, per-post reply latency, and query-city parallelism all move in the wrong direction the moment a human is on the keyboard.
Share of Gigs posts booked with the Nth responder. n = 187 requests our ledger tracked to a booked job.
| Requirement | Human ops team | Enso agent |
|---|---|---|
| Uptime | ~10h / day, one time zone | 24/7 · every US TZ |
| Query-city fanout | ~15 saved searches | 200+ queries × 40 cities |
| Median reply latency | 37 min | 54 s |
| Per-post relevance | drops after 20 replies/day | stable per-post drafting |
| Compliance drift | templates leak in when tired | hard rule: no template reuse |
| Result | ~2 bookings / wk | ~34 bookings / wk |
Craigslist bans spam, scraping, and templated blasts. It does not ban a fast, relevant, per-post reply. The loophole lives in the gap between what the platform allows and what only an agent can execute.
The agent setup
The agent runs a listener on every query × city combination. A wide query drowns in noise; a narrow one fires only when a real buyer types the exact job into the box. These are the seed queries the agent expands from - it mutates the exclusion list weekly based on false-positive rate per city.
| Company type | Starting query |
|---|---|
| Web agency | ("website designer" | "wordpress help" | "shopify setup") -survey -feedback |
| Cleaning company | ("cleaner needed" | "cleaning help" | "office cleaner") -hiring -technician |
| Moving company | ("moving help" | "load truck" | "unload truck") -driver -hiring |
| Photographer | ("photographer needed" | "product photographer" | "event photographer") -model |
When an alert fires, the agent classifies the request against the service catalog, drafts a per-post reply grounded in the buyer's exact words, and sends it through Craigslist's native mail relay in under a minute. A human operator reviews outliers only - anything the agent scores below the confidence threshold. The acquisition path is direct:
Buyer posts a need → Craigslist emails the agent → agent drafts & sends in <60s → buyer becomes a lead.
Field data
Four cities. Thirty days. Four service verticals. Every alert, reply, and booking is logged in a shared ledger. The three charts below are drawn from that ledger - the acquisition funnel, the request density by city, and the week-over-week trend as exclusion lists tighten.
4-city pilot · 30 days · web / cleaning / moving / photography verticals. n = 412 alerts fired.
Post-exclusion count of Gigs posts that fired at least one saved-search alert. Bars are the pilot mean; whisker marks the peak week.
Tightening the exclusion list every Sunday. Relevance is the share of alerts a human classified as a real buy-side request; bookings are scheduled jobs from replies sent that week.
| Vertical | Alerts / wk | Relevance | Reply → Book | CPL |
|---|---|---|---|---|
| Web agency | 18 | 44% | 24% | $7.10 |
| Cleaning | 34 | 51% | 19% | $9.40 |
| Moving | 27 | 48% | 26% | $6.80 |
| Photography | 12 | 39% | 21% | $9.90 |
Rolling 30-day averages. CPL is the fully-loaded operator cost of one booked job (operator time at $45/hr, no ad spend).
Pilot data, single operator, four US metros. Numbers are directional - the point is the shape of the funnel and the direction of the weekly trend, not the absolute magnitude in any one city.
The agent's first reply
Speed without relevance burns the account. The agent's reply is grounded in the buyer's exact request, names one thing only a competent operator would flag, and stays inside the mail relay. No forced website visit, no attachment, no generic pitch. The template scaffolds the reasoning - the tokens are drawn from the post itself:
Hi - saw that you need [exact task] in [location]. We handle [specific relevant service]. One thing I would check before starting is [useful, task-specific observation]. We can deliver [concrete outcome] by [realistic time]. If useful, reply with [one qualifying detail] and I will tell you whether we are a fit.
The agent is not fighting the anti-spam algorithm. It is answering a question the buyer just asked - before the second responder has finished typing.
This is solicited demand capture. It is not exponential virality. It is a predictable, recurring lead source that only scales when the reply is (a) first, (b) relevant, and (c) sent through the native relay. Any one of those breaks and the loophole closes. All three together are agent-only.
Hermes: the voice that keeps the account alive
Every reply is drafted by Hermes - enso's in-house messaging agent, fine-tuned on thousands of real buyer/rep conversations pulled from live sales inboxes, SMS threads, and support logs (with consent). Hermes is not a general LLM writing "professional" copy. It is trained to sound like an actual small-business operator answering a live inquiry: short sentences, one clarifying question, the occasional lowercase start, no marketing polish, no signature block, no emoji.
That register is what keeps the loophole open. Craigslist's abuse signals key on templated blasts, identical n-grams across posts, and the tell-tale rhythms of generated text. Hermes drafts each reply from scratch against the buyer's exact words, varies sentence length and structure per post, and grounds every claim in a detail lifted from the listing itself. The result reads as a human business rep who happened to be first to the inbox - which, functionally, is what it is.
The execution rules the agent holds
The loophole disappears the moment the agent behaves like a spam bot. The clean version is not a trick. It is an attention shift - the agent is not buying another impression, it is answering the phone before anyone else picks up. These are the hard-coded guardrails inside the agent's runtime:
| Rule | Why it matters |
|---|---|
| No scraping. | Craigslist prohibits automated collection. The agent subscribes to native alerts - Craigslist's own product. |
| No template reuse. | Every reply is drafted per post, grounded in the buyer's exact words. Identical strings across posts is the tripwire. |
| Relevance gate before send. | Agent scores the post; low-confidence classifications are queued for a human, never auto-sent. |
| No forced traffic. | The initial transaction stays inside Craigslist's mail relay. The buyer opts out of the relay when ready. |
| Per-account rate limit. | The agent throttles per city per account below the platform's spam threshold - never above. |
The 30-day agent pilot
Point an enso agent at one vertical, three seed queries, and the top four US metros. Give it 30 days. Three numbers are the whole scoreboard:
- Relevant alerts. How many buyer requests genuinely match the service.
- Reply rate. How many relevant requests receive a manual reply.
- Booking rate. How many replies produce a scheduled job.
The alert fires. The company replies. The buyer converts. That is the whole loop.






