← Slava Rudenko

What I learned running an autonomous job-search agent for two months

I built an agent to run my own job search. Then I let it run for two months. Here is what I found.

The pipeline is simple. Every hour it scrapes LinkedIn for fresh product roles. It scores each one with an LLM — apply, skip, or apply with a referral. For the ones worth it, it tailors a resume and a cover letter. Then it drives a real Chrome browser to fill out the application form and submit. State lives in a small SQLite database. The dashboard is a single Telegram message it edits in place, so I can watch it from my phone.

The AI part worked. That was not the surprise.

The surprise was the wall. The web has no lane for an agent like mine. It is one person, acting on his own behalf, with a human watching. But every site I hit treated "automated" as "abuse" and shut the door.

Qcells looped me on a Cloudflare Turnstile check. My automated browser never cleared it. It just spun.

Lever tenants did the same with hCaptcha. Kiddom and Prosper both threw an interactive captcha at the exact moment I hit submit. Gem did it too. The whole application was filled and ready. The last click was a dead stop.

Apex Systems put a reCAPTCHA Enterprise image challenge on the submit button. Pick the buses. My agent can not, and should not, guess its way through that.

Tesla was the clearest one. Akamai blocked me at the edge — a 403 before the page even loaded. But when I ran the same submit under my own visible, logged-in Chrome profile, it went through clean. No captcha. No interruption.

That last case is the tell. The block was never about whether I am a real person. It was about whether my traffic looked like traffic they trust. Same human, same intent, same job. One path got a 403, the other got a thank-you page.

I understand why the walls are up. Most automated traffic is junk. Scrapers, spam, fraud. Blocking it by default is the rational move.

But there is no handshake for the honest case. I am not a bot farm. I am one candidate applying to jobs I am actually qualified for, with my name and my resume attached. There is no way to say that to the wall. No place to declare myself: here is who I am, here is my rate limit, here is a human on the hook, let me through or tell me your terms.

So I patched it. Blocked roles get routed to a supervised mode where I take over the browser myself and clear the captcha by hand. It works. It is also a workaround, not an answer.

The agents are here. Mine has been running for two months. The web needs a lane for the honest ones — a way to tell a single-user, human-supervised agent apart from an abuse pipeline, and to charge it or admit it on fair terms. Right now the only signal a site gets is "not a human," and it slams the door on that alone.