LinkedIn prospecting, warm-up and outreach

Find the people, warm the account, then reach out.

Warmup.ing runs a real browser for every LinkedIn account you own. Pull prospects out of Sales Navigator or a pasted list, ramp the account from a handful of actions a day to full volume, and run sequences that stop the moment someone replies.

  • Warm-up, scraping and outreach in one
  • Self-hosted or managed hosting
  • Bring your own proxy or VPN
  • Documented API and webhooks
One pipeline, one account budgetEach stage feeds the next, from an empty list to a reply.
  1. Findup to 2,500

    Walk a Sales Navigator search, or paste a list of profiles.

  2. EnrichCSV or JSON

    Full records: roles, skills, location, badges, company.

  3. Warm5 → 20 a day

    The sending account ramps to full volume before it is used.

  4. Reach4 step kinds

    A sequence that waits for the accept and stops on a reply.

Use all four, or only the one you came for.

A brand-new account behaving like a power user is the whole problem.

Warm-up is the boring part everyone skips. It is also the part that decides whether an account survives its first campaign, and whether the data you collected from it was worth collecting.

  • Volume with no history reads as automation. Dozens of invites on day one, from a session with no browsing past and no connections, is the easiest pattern in the world to spot.
  • Shared infrastructure links accounts together. Ten accounts behind one IP with one identical browser fingerprint stop being ten accounts.
  • Four tools means four budgets on one account. A scraper extension, a sequencer and a warm-up script each pace themselves. None of them knows what the other two already spent today from the same LinkedIn account.
  • You find out too late. A checkpoint or a restriction shows up after the damage, when the account you were about to run a campaign on is already suspect.
The platform

Four products, one account budget.

Warm-up, scraping, Sales Navigator search and outreach all draw on the same daily allowance for the same LinkedIn account, so nothing you run can quietly outrun something else you run.

Warm-up

Accounts that survive being used

A new or dormant account ramps from a handful of connection requests a day to full volume over weeks, on a schedule shaped like a person using LinkedIn.

  • Cautious, Standard and Aggressive presets, or your own caps and ramp length
  • Working days, a daily window in your timezone, and a randomised delay between actions
  • A global seed pool, so a brand-new account has people to connect with on day one
  • Pending invites are re-checked, so the accept rate is measured and not assumed
Bulk scraping

Profiles and companies, in bulk

Paste identifiers or upload a CSV and get structured records back. Every account scrapes on its own randomised delay, so throughput is how many accounts you point at the queue.

  • Roles, education, skills, languages, certifications, location and company details
  • Premium, Top Voice, #OpenToWork and #Hiring badges included
  • Rows are pulled, never pre-assigned: add capacity mid-job and it simply runs faster
  • Export the whole job as CSV or JSON, or stream each row over a webhook
Sales Navigator

Search results, page by page

Paste a Sales Navigator search URL and the whole result set is walked from your own seat with every filter you built in the UI preserved exactly.

  • Lead and account searches, up to the 2,500 and 1,000 result ceilings LinkedIn enforces
  • One search, one account, always: no two seats splicing the same list together
  • Duplicates removed as pages are collected, even when a search re-ranks mid-walk
  • One click turns the collected leads into a full profile scrape, or does it automatically
Outreach

Sequences from warmed accounts

Multi-step campaigns that run from the accounts you just warmed up, on the same pacing engine, so a campaign can never outrun what the account can safely do.

  • Invite, message, view profile and follow steps, each with its own wait
  • Sequences are drawn on a visual canvas and can branch: one path for the accept, another for silence
  • Every prospect shows the step they are on and whether it has happened yet, with their whole path through the sequence on record
  • A message after an invite waits for the accept to be verified, not assumed
  • Anyone you are already connected to is never sent a connection request, and gets their own opener
  • A reply stops the sequence and hands the conversation to a person
  • Waiting for a reply means watching for one: inboxes are read through the day, so the reply branch fires when they answer, not when the wait runs out
  • AI can draft the reply for you to send, or send it under hard limits you can see on the canvas
  • A campaign is meant to be left running: it never declares itself finished, so screening can keep feeding it for months
  • Every message can be checked the moment before it goes out: ask your own systems, then let it send, hold the person until tomorrow, or take them out of the campaign
  • Other systems can drive it: give a step a URL, paste it into your CRM or a form, and whoever it names is put into a campaign
Unibox

Every conversation, one place

Threads from every account you run, in a single inbox: campaign replies, warm-up chatter and the people who wrote to you first, all readable and answerable without logging into LinkedIn.

  • Search by name or by what was said, filter by account, or show only what is waiting on you
  • Opening a thread reads it from LinkedIn there and then, and you can page back through the history from before the account was connected
  • Reply from the account that owns the thread, in one click, from the same screen
  • The same messages the sequence engine reads, so a thread cannot say two different things
  • Hand-written replies never count against a daily sending budget
How it works

Four steps from a cold account to a report you trust.

  1. 01

    Connect an account

    Sign in to LinkedIn once inside a hosted browser session, checkpoints and 2FA included. Watch or take over that session live from the built-in remote viewer. Only the session is kept, encrypted at rest.

  2. 02

    Build the audience

    Walk a Sales Navigator search, scrape a pasted list of profiles or companies, or import your own lists by paste or CSV. Have AI read each scraped profile against your brief and enrol only the people who really fit. Mark lists to include or exclude, or leave the seed pool on and start today.

  3. 03

    Warm the account

    Choose a preset or set your own start cap, target cap and ramp length, then pick the days of the week and the hours of the day the account is allowed to act.

  4. 04

    Run the sequence

    Draw the campaign as a flow - invite, message, view and follow steps that branch on what actually happened - point it at your lists, and watch the report: sent, accepted, replied, stopped. The campaign holds the rules (who sends, when, how fast); the flow holds what gets sent.

The pacing engine

Pacing you control, down to the delay between two actions.

The same scheduler drives warm-up and outreach. Every run is its own schedule, its own audience and its own limits, and no global setting quietly applies to accounts you forgot about.

Daily action capStandard preset: 5 to 20 per day over 35 days
20 5 Day 0 Day 35
Cautious3 → 15/day42 days
Standard5 → 20/day35 days
Aggressive8 → 25/day21 days

Built-in presets. Or set your own caps and ramp length.

The cap is a ceiling, not a target.

A run does not fire as fast as its delay allows. Each day is shaped into a few short sittings scattered through your window, each with its own allowance, and the volume for the day is rolled somewhere inside the cap rather than pinned to it.

An account that was offline for a morning does not discharge the backlog when it reconnects. Missed volume is forfeit, on purpose: a catch-up burst is exactly the pattern the schedule exists to avoid.

Describe it, and it gets built

Say who you are reaching and what should happen when they accept, reply or go quiet. You get a campaign, the flow that runs it and a drafted message for every sending step - side by side, each part rebuildable on its own. Nothing exists until you press Create, and nothing sends until you start the campaign.

AI reads every profile before you write to anyone

Search filters are approximate. A search for senior Go engineers returns people who listed Go once and never shipped it, and a connection request spent on them is one your account cannot spend on someone real. Describe who you are actually looking for and each scraped profile is read against it, one person at a time, judged on the evidence in their dated work history rather than on keywords. Strong fits get enrolled, near-misses come to you, and anything too thin to judge is never guessed at.

You can see where everyone is

Not a step number - the step itself, and which half of it. Invite queued, invite out and waiting to be accepted, message out and inside its reply window, or finished and why. The campaign shows the sequence in the order a prospect meets it with how many people are standing on each step right now, and any one prospect's whole path can be opened as a history.

Ramped daily caps

The daily cap climbs from your start cap to your target cap across the ramp window, one step at a time, with a weekly ceiling on top of it. No day-one volume spike.

Sittings, not a drip

The day is broken into a few short bursts scattered through your window, each with its own allowance, and the volume for the day is rolled fresh every morning. An account that was offline does not dump a backlog when it comes back.

Your hours, your timezone

Working days and a daily time window per warm-up and per campaign, read in local time rather than ours, plus a randomised delay between every action.

Lists, seed pool and scrape feeds

Your own target lists with include and exclude rules, the output of a scrape job enrolled straight into a campaign, and a global seed pool that fills in when a list runs dry.

Templates that render right

Variables with fallbacks and spintax, previewed against a real identity before you save. The preview counts the rendered length, because that is the one LinkedIn measures against its 300-character limit.

Auto-pause and a full attempt log

A run stops itself after a number of consecutive failures, and every skipped tick records why: outside working hours, audience empty, cap reached, session expired. You see why something is idle instead of guessing.

Analytics that answer "did it work"

The funnel from invite to accept to reply, as rates per campaign and per template, reply classifications from your flows, and records delivered per day - all on one page, scoped to a window you pick, in your own timezone.

Isolation & safety

Each account gets its own browser, its own exit and its own fingerprint.

The schedule is only half of it. The other half is making sure the account looks like one person on one machine, every single day, whichever of the four products is driving it.

One real browser, and you can watch it

Every account gets its own isolated Chrome with a real screen behind it, never a shared session and never a script pretending to be a browser. Open any session in the remote viewer to see exactly what the account sees.

A believable machine

Each account keeps its own stable device identity, so the browser looks like one person on one computer every day rather than one of many clones.

Your own egress

Assign a proxy per account and change it live without a restart, or upload your own VPN config. Connections are health-checked, and a broken tunnel shuts itself off rather than exposing the underlying server.

Sessions encrypted at rest

Session cookies and uploaded VPN configs are encrypted before they are stored, and your LinkedIn password never passes through the app at all. An account whose session cannot be read is skipped rather than guessed at.

One budget, every engine

Warm-up, outreach and scraping draw on a single daily action cap per account, and each of the three can be switched off for an account independently. Nothing spends the same safe volume twice.

A veto on every single message

A step can be asked the moment before each message goes out, when the account is already cleared to send and nothing has been sent yet. Call your own systems, then let it go, hold the person until tomorrow, or take them out of the campaign. A hold costs the account nothing from its daily budget, and a check that cannot be reached holds the message rather than waving it through.

It stops before you have to

An account LinkedIn starts refusing is benched from scraping and its rows are handed back to the queue, a run that keeps failing pauses itself, and an expired session disables the account instead of failing quietly all day.

Hosting & pricing

Run it on your machines or on ours.

Accounts you own are licensed by slot: one per account you warm up, with separate slots for accounts we host.

Most control

Self-hosted

You run the browsers.

  • One licence slot per LinkedIn account you warm up
  • A ready-made command per worker, so a new machine joins in minutes
  • You bring the machine and your own proxies
  • Everything: warm-up, outreach, scraping, sales search, reports, API
Get a licence
Teams & automation

Built for an agency roster, not a single login.

Accounts live inside an organisation. Invite teammates by email as owners or members, belong to several organisations and switch between them from the navbar, and group accounts into workspaces so fifty of them stay navigable.

Scraping, accounts and workers are available over a documented API with your own key, and every job and account event can be pushed to your endpoint as a signed webhook. What people should read instead of poll arrives by email, batched into a daily digest if that is how you prefer it.

Read the API docs
  • Organisations & email invites
  • Owner / member roles
  • Workspaces for grouping accounts
  • Live status for every account
  • Documented API with your own keys
  • Outbound webhooks, signed and retried
  • Email alerts and a daily digest
  • A visible monthly AI allowance, per person and per workspace
  • CSV and JSON exports everywhere
FAQ

The questions we get first.

Do you need my LinkedIn password?

No. You sign in yourself inside the hosted browser session, including any 2FA or checkpoint step, and only the resulting session is stored, encrypted at rest. Your credentials never pass through the app.

What exactly am I paying for?

A licence slot per LinkedIn account you run: the software, the seed pool, ongoing development and the infrastructure we run the platform on. Self-hosted means you supply the machine the browsers run on and buy your own proxies. Managed hosting adds the machines we run for you.

How fast is a scrape job?

That is up to you, because the pace belongs to each account rather than to the platform. One account waits a randomised delay between its own requests, and accounts never wait on each other, so a thousand rows across ten accounts finishes roughly ten times faster than across one. The delay window is configurable per account.

What stops a scrape from getting an account restricted?

The per-account delay window, and a circuit breaker. Three refusals in a row from LinkedIn bench that account from scraping for half an hour and hand every row it touched back to the queue, so a bad run costs you no data. The account keeps running its warm-up throughout, because being throttled on one endpoint says nothing about the account being unusable.

How much of a Sales Navigator search can I actually get?

Up to 2,500 leads or 1,000 companies, which are the pagination ceilings LinkedIn itself enforces and not a limit we add. A search is walked from a single seat you own and collected results are de-duplicated as the walk goes. Narrow the filters to reach further than the ceiling.

Do I need my own target lists to start?

No. The seed pool can supply the people an account connects with, so a fresh account can start warming up the same day. Import your own lists whenever you want, and use include and exclude rules to keep warm-up traffic away from your real prospects.

How does outreach know when to stop?

Two gates. A message step that follows an invite waits until the invite is genuinely accepted, verified against LinkedIn, and an invite that is never accepted ends the sequence for that person cleanly. And the moment someone replies, the sequence stops and the conversation is yours.

What happens to people I am already connected to?

They are never sent a connection request. The invite step reads the relationship on LinkedIn before it sends anything, so an existing connection skips straight to the message - and it is a branch of its own on the canvas, so you can open differently with someone you have known for two years than with someone who just accepted. The same is true of an invite that was already pending before the campaign started.

Where does AI come into it?

It writes, and you approve. Describe the outreach once and you get a whole campaign back - the settings, the flow that runs it and a drafted message for every sending step - or ask for just one of those: a campaign form, a flow on the canvas, a single message body. A flow you already have can be changed the same way: select a step, say what it should do instead, and the change appears on the canvas marked, with a list of exactly what moved, to keep or throw away. Message copy is written against the real variable catalog, so it cannot invent a variable that renders empty, and both a generated flow and a changed one are checked against the same rules the editor enforces. Everything arrives as a draft, and a built campaign is created stopped - nothing goes out until you press Start. AI generation runs on a monthly allowance included with your licence, shown in the app beside every button that spends it and raisable per workspace or per person if you need more; drafting replies automatically has its own separate allowance, so a busy inbox never leaves you unable to write a message. What happens to a reply is decided in one place you can see - the steps you drew: read it, draft it for approval, or answer it automatically. Answering automatically is its own step, capped at a number of replies per conversation you choose - one by default, up to ten - so a thread can be handled over a few messages and still reach a person before it goes far.

Can I use my own proxies or VPN?

Yes, and it is the recommended setup for accounts you own. Proxies are assigned per account and can be changed live without restarting the browser. You can also upload your own WireGuard or OpenVPN config. It is encrypted at rest and health-checked, and a tunnel that stops working shuts itself off instead of falling back to the underlying connection.

Is there an API?

Yes. Accounts, workers, scrape jobs, their items, records and results are all available over a documented API with your own key, plus signed webhooks for job and account events. Keys are shown once and stored only as a hash.

How does the team side work?

Accounts live inside an organisation. Invite teammates by email as owners or members, belong to several organisations and switch between them, and group accounts into workspaces so a large roster stays navigable.

How do I get a licence?

Email admin@warmup.ing with how many accounts you want to warm up and whether you want to host the browsers yourself, and we size a licence to that. You can start small and ask for more slots when your roster grows.

Warm the account. Fill the list. Then run the campaign.

Add an account and let it ramp while you build the audience, or skip straight to the data and never connect one at all.