The browser extension
The extension is the part of LeadAdapter that actually touches LinkedIn. Everything about the product follows from where it runs.
Why your browser and not our servers
The usual way to automate LinkedIn is to take the customer's credentials, hold their session on a server, and drive it from a datacentre. It is simpler to build and it is the reason those accounts get restricted: the session appears from an address that is not the person's, at a rhythm no person has, from a place they have never logged in from.
LeadAdapter does the opposite. Every LinkedIn read and every LinkedIn write is executed by the extension in your own Chrome, on your own connection, in your own logged-in session. There is no server-side LinkedIn session anywhere in this product.
That decision is the source of every constraint on this page. It is also the reason we can describe our security posture in one sentence rather than in a paragraph about how well we encrypt your password.
We never hold your LinkedIn password
We never ask for it, never receive it and never store it. There is no field in this product to type it into.
The extension does not request Chrome's cookie permission either, so it cannot read your LinkedIn cookies even if it wanted to. LinkedIn requests are made from inside an open LinkedIn tab, where your session attaches the way it does for any page you have open. It cannot leak what it cannot read.
What the extension does hold is a device token issued by us during pairing. It identifies the browser to LeadAdapter and nothing else. Revoke it in the dashboard and the browser stops receiving work immediately.
Pairing, checking in, and jobs
Once paired, the extension does three things on a loop, and you can watch all three on the dashboard.
- It checks in regularly, reporting its version, whether a LinkedIn tab is open and whether you are signed in. If we have not heard from it for 3 minutes, the dashboard shows it offline.
- It asks for work every 30 to 45 seconds, taking up to 5 jobs at a time. Each one is leased for 5 minutes, so a browser that dies mid-job returns the work rather than losing it.
- It reports each result back — done, failed, or rate-limited. A failed job is retried up to 3 times before it is marked failed and shown to you.
Comment-to-DM automations poll the posts they watch every 10 minutes, jittered by up to 3 minutes so every installed extension does not ask LinkedIn the same question at the same second.
What happens when Chrome is closed
Nothing runs. This is the honest and complete answer, and it is a property of the architecture rather than a limitation we intend to remove in a patch.
Work is not lost. Jobs queue on our side and drain when the browser comes back — a DM raised at midnight on Friday goes out when you open Chrome, subject to the same caps and sending hours as anything else. But nothing happens in the meantime, and a comment-to-DM automation on a post that is getting attention while your laptop is shut is not capturing anyone.
The same applies with Chrome open but no LinkedIn tab: the extension never opens, focuses or navigates a tab to get work done. If you want automations running through the day, leave a LinkedIn tab open.
Pacing, and what happens if LinkedIn pushes back
The extension spaces actions out deliberately. Writes are separated by a randomised gap of 45 to 180 seconds, drawn so the intervals look like a person rather than a metronome, and the floor is compiled into the extension where no server-side mistake can lower it. Reads are throttled to about one every 2 seconds, with a short burst allowance of 5.
If LinkedIn answers with a rate-limit response or shows a challenge page, the extension stops everything for that profile — reads as well as writes — and reports it. We then park the profile for 6 hours and halve its caps for 48 hours. Continuing to read through a challenge wall is how a soft rate limit becomes a restricted account.
The same rules are enforced independently on our side. Either layer alone can be bypassed — ours by a forged extension, the extension's by a bug of ours — so both do the work.
Installing it
The extension is not in the Chrome Web Store. We distribute it ourselves as a zip file that you load into Chrome yourself, in developer mode. The reason is stated plainly on the platform-risk page: a store review that went against us would take the execution model with it, and the execution model is the product. Distributing it ourselves keeps that outside anyone else's decision.
What that costs you, stated up front rather than discovered later: it does not update itself, Chrome will remind you at every restart that a developer-mode extension is installed, and on a locked-down work laptop it may not install at all.
Download it from Settings, then Extension, in your dashboard. The same page shows the version we are currently shipping and tells you when the browser you have paired is running an older one — that notice is how updates reach you, because nothing here happens in the background.
- Open Settings, then Extension, in LeadAdapter and download the package.
- Unzip it somewhere permanent. Chrome runs the extension from that folder, so your Downloads folder is a bad choice.
- Open chrome://extensions and turn on Developer mode.
- Choose Load unpacked and select the folder you unzipped.
- Sign in to LinkedIn in the same Chrome profile, then pair with a code from Settings, then Extension.
Chrome shows a "disable developer mode extensions" prompt each time it restarts. That is Chrome describing how the extension was installed, not a warning about the extension. Dismissing it leaves everything working; accepting it turns LeadAdapter off until you re-enable it.
On a managed work computer, Chrome may refuse extensions that did not come from the Web Store unless your IT administrator allows it. That is a policy on your machine, not something we can change from here.
Updates: two different things, only one of them automatic
LinkedIn changes its internal endpoints without notice, and every tool in this category breaks when it does. LeadAdapter keeps those details on our server rather than inside the extension: the extension asks us where things are, we answer, and it does the work.
So when LinkedIn moves something, we publish a new answer and every installed extension picks it up on its next check-in. No reinstall, no version to chase, usually no downtime you notice. It is the single most useful thing about the architecture after the credentials question, and it is why most of what would otherwise be an update never becomes one.
The extension itself is the other thing, and it does not update automatically. There is no background update channel, because there is no Chrome Web Store listing to carry one. When we ship a new version, the extension page in your dashboard says so beside the browser that is running an old one, and you download and reload it the same way you installed it.
What it can see
The extension runs on linkedin.com and talks to leadadapter.com. It reads the pages and endpoints needed for the job it was given, and reports the result to us.
- It does not read your browsing outside LinkedIn.
- It does not request access to your cookies, in any tab.
- It does nothing while it holds no jobs, and nothing at all while it is unpaired.
- Everything it has done is on your audit log, including the actions that were refused.
Every cap, limit, timeout and tool name on this page is read from the running product when the page loads. If the software changes, this page changes with it.