Post-mortem · 10 min read · October 2026
Greed cost me my LinkedIn account
I built a job-lead scraper that turned 428 LinkedIn leads into 75 applications in five days. Then I changed one number from 250 to 500. Here's how it worked, how well it worked, and how it got the account locked for good.
1.The machine
I'm job hunting, and I automate anything I do more than twice. Most of my pipeline reads job boards that publish their listings on purpose. The LinkedIn part was different: it drove a real browser, signed in to a second account, through a Chrome extension I wrote. Follow one lead through it:
Trace one lead (example data)
Every page load spent from a rolling budget, and a circuit breaker stopped everything at the first login wall. Simplified:
# per 15 minutes, per hour, per day LIMITS = {"search": (3, 6, 12), "detail": (6, 12, 24)} def can_open(kind, log, now): per_15, per_hour, per_day = LIMITS[kind] return (log.count(kind, since=now - 15 * MIN) < per_15 and log.count(kind, since=now - HOUR) < per_hour and log.count(kind, since=now - DAY) < per_day) if page.looks_like_checkpoint(): breaker.trip("login_or_challenge") # nothing runs until a human says so
Spot the bug I didn't. In my budget, one search counted as one. In the browser, one search paged through results 25 cards at a time and clicked the cards, and every click is a new URL. My budget counted what I meant. LinkedIn counted what the browser did.
2.And it was really good
Here is the whole funnel, from page loads to people writing back. Tap a bar:
A few things it did better than me scrolling at 1 a.m.:
- Where to apply. It found the apply route for 88% of jobs: 144 Easy Apply, 178 on the company's own site (with the real link to its job board), 42 unknown.
- Hiring posts, not just jobs. It searched posts too and pulled out 14 public "send your resume to" addresses. The good ones became email drafts in my Gmail with my resume attached, and I pressed Send myself.
- Most of my week. 75 of the 113 applications I sent from 11 to 15 October came from it. That's two in three.
One honest catch: my hard rules auto-passed only 4 of the 225 jobs it read in full, because LinkedIn labels most roles just "India", with no word on remote. So every lead went through a second pass where my AI agent read the description for remote work, years and stack, and I made the call. 75 went in, 75 were ruled out (58 not a fit, 12 wrong place, 5 already applied), 6 had closed, and 24 are still waiting on me.
Some catches (real titles and outcomes, company names left out)
3.Then I got greedy
It worked, so I wanted more of it. Every page my second account's browser loaded, per day, and what I changed. Tap a day:
The last change was mine, word for word, to my agent: "its okay I override the limit to 500". Every one of those limits was my number. LinkedIn never agreed to any of them.
The last morning
On the 15th I asked my agent to validate the 200-odd leads I had saved, one per minute. It helpfully mixed in fresh searches as well. Between 12:00 and 12:50 the searches clicked through 240 result pages:
I asked, roughly, "I asked for validation of the current leads, right?", and the searches came out. Then the 500 limit went in, and the loop went back to one job page every 90 seconds. Steady as a metronome:
Job pages opened, 12:51 to 14:21 (one dot each)
- 14:21:53A Security Verification page. The breaker trips and the pipeline stops itself.
- 15:19I solve the check. LinkedIn shows one word: Restriction.
- 15:46 to 16:41Six more sign-in attempts. Six more Restrictions.
4.Account #2 lived for 3 minutes 30 seconds
So I made a fresh account in a fresh Chrome profile. Nothing automated touched it: the extension wasn't even installed there.
- 16:36:50Sign up with Google one-tap.
- 16:37:03A security check, on the very first sign-in.
- 16:37:11The feed loads. Welcome to LinkedIn!
- 16:39:45I edit my profile intro.
- 16:39:57I open one person's profile and get signed out.
- 16:40:20Restriction.
LinkedIn doesn't publish how it links accounts, but from its side the two looked like one person on one machine (values made up, matches real):
| Signal | Account #1 | Account #2 |
|---|---|---|
| Public IP | 203.0.113.42 | 203.0.113.42 |
| Machine and browser | my laptop, Chrome profile A | same laptop, Chrome profile B |
| Time zone | Asia/Kolkata | Asia/Kolkata |
| Account age | older | 3 minutes |
| Just before | restricted, 6 failed sign-ins | created 10 minutes after those |
LinkedIn allows one account per person. A second one made minutes after the first got restricted looks exactly like what it was.
5.The appeal
Unlocking an account means proving who you are through Persona, LinkedIn's identity-verification partner. It never accepted any of my Indian IDs, and LinkedIn's help page says why: "Our verification system does not currently support the country that issued your identification document." India's DigiLocker option exists, but only for the profile badge in the mobile app.
I appealed, then wrote to support through the Help Center form. My inbox has the rest (IST):
"We received your request to take a second look on your account restriction."
"After reviewing your account again, we found it doesn't comply with our Professional Community Policies or LinkedIn User Agreement. As a result, access to your account will remain restricted."
"Could you please provide a scanned image of a government issued ID (for example: a driver's license, passport, or country ID), using this secure link."
"the link you have provided again opens a persona for me which fails in India. None of my documents works with persona for me"
"Your account has violated the LinkedIn User Agreement and Professional Community Policies. Due to the number and/or the severity of these violations, your account will remain restricted."
Seventeen minutes from "please verify your ID" to "will remain restricted". Fair enough. LinkedIn's User Agreement forbids scraping and automated access, and allows one account per person. I broke both, and the rules won.
6.What I'd do differently
0 of 6 learned.
The pipeline is fine, and I still send every application myself. LinkedIn and I are on a break. It told me so in writing, twice.