I Taught a Machine to Hunt Jobs While I Slept
Last week I woke up to fourteen job applications I never wrote — my computer had found the ads, rewritten my resume for each one, and sent them while I slept. Then came the silence, and a stranger question than how to automate: what can a machine never do in a job hunt?
The machine in two pictures
One application takes nine steps and three owners. I do two of them: I set a pay floor once — the lowest monthly number I will accept — and I answer when a human writes back. The machine does five in the middle. The hiring side owns the rest, and that is where every plan meets reality.
| Part | In plain words | Who runs it |
|---|---|---|
| Alarm clock | A timer that wakes the hunt six times a day | Machine |
| Job board back door | Reads new listings the way the website does, minus the clicking | Machine |
| Bouncer | Throws out anything below my floor or already sent | Machine |
| Resume tailor | Rewrites my resume for that one role, truthfully | Machine |
| Mailman | Sends the email and files the receipt | Machine |
| Inbox watch | Flags every reply the second it lands | Machine |
That was the machine half. The human half is shorter and harder: waiting, a reply, a fast answer, a meeting, a payday. Nothing there runs on a timer.
Nothing here is clever. It is a checklist that never sleeps.
One night, message by message
This is the part I like showing people, because there is no magic in it. The alarm rings, the board hands over new ads, the tailor rewrites, the mailman sends and records. By breakfast there is a morning report waiting: what went out, what got skipped, what is still missing a contact address. I read it with coffee. That is the whole ceremony.
Where everything flows, in two pictures
Follow the arrows and notice where they change colour. The first picture ends at the outbox — everything in it is automatic. The second starts where people take over:
A recruiter who reads, a fast answer, a meeting, a payday. The machine compresses the left half to nearly zero cost. It cannot touch the right half at all.
| Left of the inbox (automatic) | Right of the inbox (human) |
|---|---|
| Finding ads, checking the floor | A recruiter deciding to reply |
| Tailoring the resume | Me answering in minutes, not days |
| Sending, logging, watching | The interview itself |
The life of one application, in two pictures
Every application is born twice: once when the machine spots the ad, once when a person replies. The first picture ends at sent, with two dead ends refused in code rather than good intentions:
| Dead end | Meaning |
|---|---|
| Duplicate | Already sent to this person — refused before it happens |
| Below floor | Pay too low — skipped, no exceptions |
The second picture starts where the machine stops: waiting — days of silence that is a normal state, not a failure. One dead end, the common one: ignored, no reply ever, logged honestly.
Three rules that keep it honest
Automation without rules becomes spam with extra steps. So the rules live in code, where I cannot bend them on a tired evening:
| Rule | Enforced how |
|---|---|
| Never invent experience | Every resume states its limits on the page — what I have not done is written down, not hidden |
| Never email twice | A duplicate guard checks every send against every receipt ever logged |
| Never chase the wrong number | Anything below the pay floor dies at the filter, unseen by anyone |
The honest count
Fourteen applications went out. Zero replies came back. Both numbers are in the log, and both are the point: the machine did its half perfectly and the money half did not move. If you are building one of these, measure replies, not sends — sends are free, replies are the only scarce thing.
This continues an earlier experiment on the same board, my evergreen job-ad detector, which taught me listings behave more like subscriptions than vacancies. Same board, same lesson from the other side: the funnel is wide, the gate is narrow, and the gate is human.
Automate the hunt all you want — but budget for the silence, and answer fast when it breaks.