At 09:24 IST this morning, the 17th LinkedIn content search of my comment routine came back with this instead of results:
Our systems have detected unusual search traffic coming from your account … search activity on your account has been paused. Try again later.
The worker that runs my daily outreach from a Mac mini did what its rules say to do with a restriction notice: it wrote a pause file, closed the tab, raised an errand for me, and stopped. No comment, mail or click went out after it. The LinkedIn part was fair. The rest of the day is the part worth writing down.
Twenty-nine searches in three and a half hours
The night-prep routine had already run 12 searches at 06:00, looking for hiring posts that give an address to apply to. The 09:00 comment routine ran 17 more. That is 29 content searches before half past nine, and nothing counted them. No routine knew what the others had spent.
The routine's own note, written as it stopped, is the useful finding. Each LinkedIn search page loads only 6 to 20 results, so one query costs several scrolls, and about 30 searches across a morning is enough to trip the limit. I had been treating search as free because no single routine used much of it.
The morning had also been thin before the pause. The mail target was 10 and 3 went out, all before 09:24. Only 3 LinkedIn comments were posted, 1 on a hiring post and 2 under posts whose authors I had also mailed.
The switch was wider than the problem
My worker has one stop file, .claude/PAUSED, and every phase checks it before
doing anything. The rule was "a warning sign pauses the worker". So a limit on
LinkedIn search wrote the global file, and until the narrower pause replaced it, Threads,
Instagram, email and publishing all stopped too. None of them had seen a
warning. None of them even use LinkedIn search.
Nine phases booted, read that one file, and ended. They still cost $0.53 to $0.66 each, about $5.2 in total, which is the price of starting a session to read one line. The 10:15 Threads replies never ran.
The fix was to make the stop the same size as the problem. The commit message
says it plainly: a warning sign now writes .claude/PAUSED-<platform>, and a
phase skips only that platform. A phase that is all LinkedIn stops; a mixed
phase does the rest and names what it skipped. The global file stays for the
things that really are everyone's problem: the wrong browser, the wrong
machine, or me pressing pause in the tray.
The afternoon went on under the narrower file. Reply-watch posted 2 Threads replies and the Instagram routine posted 4 comments. Email-watch ran for the first time that day, because its 14:45 fire had stopped on the global file.
Two sessions, two budgets
The budget itself had a small lesson of its own. Two Claude sessions wrote a LinkedIn search budget at the same time. One set 24 a day, written as prose in the prompt, and called it in its own commit "a guess below the tripping number, not a measured limit". The other set 14 a day, split per routine (night-prep 4, comments 4, hiring 3, night-outreach 3), and enforced it with a small CLI that each search has to take a ticket from first, paced 90 seconds apart.
The first session dropped its version once it saw the second: "4a3a067 is stricter … and enforced by search-budget-cli, mine only by prose." A limit that only lives in a prompt is a request. A limit a script counts is a limit.
Finding hiring posts without searching LinkedIn
Fourteen searches a day cannot find ten mails and ten comments, so the rest of the day went into finding leads somewhere else:
- Hacker News "Who is hiring?" September had 257 posts; 13 survived the screens for remote, frontend and a printed address. The live data caught two bugs the tests had missed: "Remote (Europe)" read as open to me, and "MUST BE ON SITE. REMOTE WILL BE IGNORED" read as remote.
- Google, pointed at LinkedIn posts, through Serper and six Google Alerts on
site:linkedin.com/posts. The first version quoted its phrases and matched 1 post in 24 hours. Google indexes a post's snippet, so the unquoted queries return 30 unique posts. A test now refuses a quoted query. - Funding news, from Google News RSS: 15 companies that just raised. Those carry no address, so they become drafts I approve, never automatic mail.
What it taught
Two things, and they are one thing.
A shared resource needs one counter. Every routine was sensible alone and the total was not. The platform only sees the total.
And a stop switch has a blast radius. I wrote "pause on a warning" as if the worker were one thing, and the day I needed it, it turned a LinkedIn search limit into a stopped day for Threads, Instagram, email and publishing. The pause lifts no earlier than 09:24 IST on the 27th. Until then, tomorrow's mail comes from the sources that never touch LinkedIn search at all.
