I have been running LinkedIn from scripts since August. The clicks were the easy part. Most of the time went into making the output sound like me, and into limits I did not know existed until I hit them.

This is what that work taught me, what actually caused the restrictions, and what one run looks like now.

The work was voice, not volume

The first version was a comment bot. It was bad. It restated posts, congratulated strangers for things they had not said, and invented familiarity I could not defend in public.

So I stopped optimising for count and built rules instead. In August I approved a library of the phrases and patterns I actually use, and wrote a commenter profile with the lanes I can speak about and the ones where I should be curious instead of confident.

The last piece was a reviewer that is not the writer. A comment that only agrees gets rejected. A comment that restates the post gets rejected. A comment that invents shared history gets rejected, which killed more drafts than anything else.

A recent batch of 43 drafts came back with 8 edits and 2 rejects from the gate, then 11 more edits from the independent reviewer. Some were factual: a traffic-scale claim the post never made, a “good run at Nutanix” for someone who had just joined, and an invented bug fix.

The restriction had a cause I can name

In August a discovery run opened 64 topic search tabs in a loop and pulled about 500 posts as fast as the browser allowed.

LinkedIn restricted the account for “unusually high volume of LinkedIn profile data”. It lifted about a day later. No comment from that run was published, and the 27 comments posted earlier at a normal pace were not touched.

The warning was already showing. The feed had begun stopping at 3 cards after repeated reloads. I read that as a page quirk and reloaded again.

What I do now: one feed, slow scrolling, no bulk tab switching, and never discovery and publishing in the same run. Treat a feed that stops growing as a hard stop, not as a prompt to reload.

Then profile pages got banned

Two weeks later a security checkpoint changed what the account could do, and after that I stopped opening member profile pages at all.

The cause was easy to reconstruct once I looked. Three days of batches had each walked 30 authors through /in/<slug>/recent-activity/all/ to find their posts. Ninety profile visits in three days matched the same warning phrase as the first restriction. Reading profile activity at that rate is the pattern, not the specific script.

The replacement took four failed attempts. What worked was the feed’s own card menu: “Copy link to post”, then check that the link resolves to the author and text you meant. It reads only the feed and never opens a profile.

That check is not optional. In one run, 18 of 64 captured links belonged to the card above, because the previous card’s menu was still open when the copy click landed. Open the link, confirm the author, confirm a phrase from the body, then keep it.

A short feed is usually not a ban

Three separate times in five days I called a 3-card feed a throttle. All three were wrong.

The real causes, in order of how often they bit me:

  • The viewport was too short. The same page that gave 3 cards gave 82 candidates at 1280 by 2400.
  • Another tool was driving the same tab, so each tool kept resetting the other.
  • The tab was in the background. Bringing it to the front turned a stuck 3 cards into about 5 new cards per scroll, and 95 cards in 28 steps.

Before calling anything a throttle, use a fresh tab at 1280 by 2400, keep other tools off it, bring it to the front, and wait about three seconds between scrolls. If a feed still holds at 3 cards under those conditions, that one is real.

What one run looks like now

Three sweeps of my own feed returned 181 posts. On the first sweep of 50, only 26 survived the filter, and 26 is generous, because the filter counts announcements as posts.

Post types arrive in clusters. One sweep returned several “Claude certified” announcements back to back. Another returned the same job-spam page five times.

Every comment I published that ended in a specific question got a response. The comments that only agreed got nothing back.

Of 38 notification cards that day, 31 asked nothing of me. I sent 15 welcome messages to people who had just accepted a request, and six replied within the hour. I sent 176 connection requests and never saw a quota warning. The suggestion list simply drained, and an invited person’s card disappears, so the remaining invite buttons are the only meter you get.

One post of mine did 16,042 impressions and 15 profile views. The next did 626. Same author, same week, similar topic.

If you ran this for someone else

Four rules carried almost all the risk reduction.

One feed, slow, one thing at a time. Bulk tab switching over search results is the fastest way to get an account restricted, and it buys less than it looks like it will.

Never open a profile. Capture the post from the feed card and verify the link against the author before you use it.

Check the tab before you blame the platform. A short viewport, a contended tab, or a background tab looks exactly like a throttle.

Write the voice rules before the automation. Decide what you refuse to say, then build the checker for it, and give the checker frozen cases so a rules change cannot quietly undo an old decision.

None of this is inside knowledge of the ranking system. It is what a few months of rules, two platform restrictions, and a lot of rejected drafts could see from the outside.