Back to docs LinkedIn
Beta

LinkedIn

Freelance OS's LinkedIn executor. Invites, messages, comments, reactions, profile visits, everything runs in your real browser, on your session, from your IP. Nothing goes through a third-party service.

Overview

LinkedIn replaces Waalaxy, Lemlist or a cloud layer like Unipile with a local executor. The Kernel never touches LinkedIn. It pushes jobs into a queue, a paired Chrome extension runs them in a LinkedIn tab open on your real session. To LinkedIn it looks like you: same cookies, same IP, same fingerprint.

Automating an authenticated account breaks LinkedIn's terms, that stays a risk. The module doesn't deny it, it bounds it. An anti-ban policy lives server-side: hard per-action daily ceilings, a sending window, a ramp-up for a fresh account, randomized gaps between actions, a per-device circuit breaker, and a kill-switch when LinkedIn's internal API changes.

On top of the executor, three uses: multi-step outreach sequences to your contacts, a closer that replies to inbound DMs, and automatic feed engagement. Each use is opt-in and off by default. Everything scraped (reactions, profiles, replies) flows back into the CRM and the Inbox.

What the module does

Runs in your browser

A Manifest V3 extension paired to your workspace. Its service worker polls the Kernel about every 75 seconds, picks up one action, has a content script run it by calling LinkedIn's internal Voyager API the way the site does, then reports back the result. One action per cycle, at human pace. A device carries one LinkedIn identity but can serve several workspaces: your multi-brand case, or an agency with one browser per client.

  • Actions: invite, message, comment, reaction, visit, profile scrape
  • Post publishing, search-result import, reactions and feed scraping
  • connect, visit and scrape_profile are the most stable; message, comment, react are best-effort
  • Developer-mode install for now, unpackaged extension

Anti-ban policy

The heart of the module. It decides what a device may do, right now. Hard per-action, per-identity ceilings can never be exceeded, even by an over-set config, because that is how an account gets banned. The daily count is a rolling 24-hour window, with no timezone arithmetic.

  • Hard daily ceilings: 30 invites, 40 messages, 25 comments, 60 reactions
  • Per-device sending window, in its own timezone
  • 3-day ramp-up for a freshly paired account (35 then 55 then 75 %)
  • Randomized 45 to 180 second gaps between actions, batches of 3 max per poll
  • Per-device circuit breaker that pauses then auto-resumes

Multi-step outreach sequences

The direct Waalaxy replacement. A sequence chains steps: profile visit to warm up, invitation, message. You enroll contacts, a state machine walks them forward over time, each step goes through the queue and therefore the caps. The sequence pauses as soon as the prospect replies. Per-sequence daily cap on top of the device ceilings.

Closer bot on inbound DMs

When a prospect replies, the closer can draft the follow-up in your voice. Three modes: off (default), draft (it suggests, you approve before sending), send (it queues the reply straight as a normal message job, so under the same caps). The prompt carries the workspace's offer name, promise and CTA. The output is stripped of em-dashes and AI tropes before it is offered.

Automatic feed engagement

Optional, off by default. Three modes: off, like, like plus a short AI comment. The module selects relevant feed posts, bounds the number of likes and comments per pass, and never engages an excluded author. In parallel, a pass scrapes the reactions on your own published posts so reactors and commenters drop into the CRM.

Platform health and action queue

Distinct from the per-account breaker: when the same action fails at scale across several devices, that signals LinkedIn changed its API. A kill-switch disables that action fleet-wide, re-probes it after a cooldown, disables it again if still broken. A reaper frees jobs stuck mid-run. A per-action table shows successes, failures, pending and success rate over 7 days.

How to use it

  1. 01

    Pair a browser

    In Settings, Integrations, LinkedIn (extension), generate a code. Open the extension, paste the code, connect. Keep a LinkedIn tab open and logged in.

  2. 02

    Pick the workspaces

    A device serves one or more of your workspaces. You tick which ones. Caps aggregate per device, jobs stay per workspace.

  3. 03

    Create a sequence

    In Outreach, LinkedIn, you build a sequence: visit, invitation with a note, message, with delays between steps and a per-day cap.

  4. 04

    Enroll contacts

    You bulk-enroll contacts from the CRM. The state machine walks them forward, one step at a time, under the anti-ban caps.

  5. 05

    Turn on closer or feed

    Optional. Set the closer to draft or send, feed engagement to like or like plus comment. Off by default, explicit opt-in.

  6. 06

    Watch the queue and stats

    The page shows device health, the action queue and a per-action table over 7 days. The kill-switch disables a broken action fleet-wide.

Connections