// case study · 2022

LinkedIn outreach automation with browser-driven scaling

A LinkedIn campaign platform powered by headless Chrome, with on-demand worker servers spun up via Vultr API, automated CAPTCHA bypass, and short-polling for live campaign status.

Client BigLinker
Sector SaaS
Role Backend Lead
Engagement Project · 12 weeks
Team 2 (1 backend lead, 1 frontend)
Stack Laravel · Puppeteer · Vultr API · Laravel Envoyer
Year 2022

The brief

BigLinker runs LinkedIn outreach campaigns at scale. Every campaign hits LinkedIn’s anti-automation defenses, every account needs its own session and IP, and the cost of running idle workers between campaigns is a margin killer. We built the automation core and the elastic infrastructure under it.

What we built

  • Puppeteer-driven campaign runner with realistic human-like pacing, randomized waits, and per-action retry budgets.
  • CAPTCHA + PIN flow handling — automated where possible, gracefully escalated to a human-in-the-loop queue when LinkedIn requires it.
  • On-demand slave servers — Laravel orchestrator spins up Vultr instances via API when campaigns start, tears them down when idle. Pay for what you use, not for what’s standing by.
  • Laravel Envoyer deploys with versioned worker images so the orchestrator can roll forward / back without manual SSH.
  • Short-polling status updates so campaign managers see live progress without a WebSocket layer the cost didn’t justify.

Outcome

BigLinker scaled from a handful of campaigns to dozens running in parallel — without scaling its server bill linearly. Campaign deliverability stayed high because the headless-browser strategy looks human enough to pass.

// next step

Have a project like this?

Tell us about it. We respond within one working day with a written estimate or a calendar link.

Start a project