← Prathamesh Jadhav

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.

428leads found in four days
75applications sent from them
4humans replied within 48 hours
500the daily limit I set the morning it died

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:

Tap a bar for what happened at that step.

A few things it did better than me scrolling at 1 a.m.:

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:

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)

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.

0:00

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):

SignalAccount #1Account #2
Public IP203.0.113.42203.0.113.42
Machine and browsermy laptop, Chrome profile Asame laptop, Chrome profile B
Time zoneAsia/KolkataAsia/Kolkata
Account ageolder3 minutes
Just beforerestricted, 6 failed sign-inscreated 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.

Verify your identity
Take a photo of your government ID
Ready when you are.
Attempts: 0

I appealed, then wrote to support through the Help Center form. My inbox has the rest (IST):

LinkedIn Trust & Safety16:27

"We received your request to take a second look on your account restriction."

LinkedIn Trust & Safety16:47 · 20 min later

"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."

LinkedIn Support · case opened17:16

"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."

Me17:19

"the link you have provided again opens a persona for me which fails in India. None of my documents works with persona for me"

LinkedIn Member Safety and Recovery17:33

"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.