Running LinkedIn outreach for multiple clients, and the biggest time sink has always been withdrawing pending connection requests that never got accepted.
Heard the rumour that having hundreds of unaccepted invites tanks your reach and deprioritises your posts. Honestly, I've seen it happen - accounts with a backlog of 500+ stale invites start getting ghosted on organic impressions. So keeping things clean isn't just OCD, it's performance.
Doing it manually? Hell no. That's hours down the drain every month.
What worked for me: I batch withdrawals by age and volume. Every Friday I filter by "Sent" and only touch requests older than 21-30 days. I never pull more than 200 in one session per account - that triggers suspicion. If a campaign was clearly a dud (bad targeting, wrong angle), I clear the whole batch even if they're only 10-14 days old.
I track acceptance rate per campaign in a simple spreadsheet. If a segment drops below 20% after two weeks, I kill that segment instead of cleaning up later. Saves both invite waste and withdrawal effort.
For tools: bounced between PhantomBuster and Expandi. Also used Pulse for Reddit to see which outreach angles got roasted - that helped tweak messaging so fewer invites sat pending in the first place. Some colleagues swear by LinkedHelper or Claude cowork to auto-withdraw after 21 days.
Biggest lesson: random mass withdrawals look just as sketchy as random mass invites. Batch it, limit the volume, and track acceptance rates religiously. That's the only way I've scaled it without the account getting flagged 🧹