Changelog

The desktop app

Every release of the Windows app that sends your LinkedIn invitations, newest first.

1.16.2
Sep 2026
  • Campaign invitations to 2nd-degree people who share a mutual connection were being skipped as "already connected" — the app read the mutual connection's own 1st-degree tag as the profile's. The degree now comes only from the badge beside the person's name, and a profile showing its own Connect button is never treated as already connected
  • When an invitation is skipped as already connected, the Activity log now names the text on the page that decided it
1.16.1
Sep 2026
  • Added a LinkedIn Campaigns workspace with lead counts, queued work, message readiness, live processed/sent/failed progress, and Start, Pause, Resume, and Stop controls
  • Campaign runs reuse the existing persistent Playwright Chrome profile, deterministic profile verification, pacing, structured errors, and server-side outcome sync
  • A heartbeat-backed Redis lease prevents the same LinkedIn account from running on two desktops; an expired lease and the existing stale-action recovery make interrupted campaigns resumable
  • Web-to-desktop links open and select the requested campaign while keeping hosted content isolated from the local automation bridge
  • Resuming after a crash or a closed window works straight away on the same computer, instead of reporting that the account is already running on another desktop
  • A single dropped connection no longer stops a campaign mid-run; it stops only once this computer has actually lost the run
  • Campaign cards show who is being contacted now, Sent / Failed / Remaining counts, a Completed state, and a shortcut to fix missing messages
1.15.6
Sep 2026
  • Maintenance release of the current LinkedIn automation app, published alongside the task-notification reliability update
1.15.5
Sep 2026
  • Contact info lookups now find the overlay the way connection invitations find the Connect button — through several independent signals, shadow roots included, and by looking again while LinkedIn finishes rendering instead of deciding from a single glance 0.9 seconds after the click
  • A row whose label and value shared one element used to be read as the address "Emailsomeone@example.com" and reported as a success; values are now taken from the row itself, so that lands as a real address or not at all
  • Phone, IM and Connected since are read from the labelled rows LinkedIn actually renders, rather than from class names it stopped using
  • When a lookup still can't read the overlay, the app now saves that overlay's markup and a screenshot beside its run log so the cause can be found instead of guessed at. Both stay on your machine
  • A lookup Followthroo is going to retry now says so, instead of appearing in the Activity log as a second, separate failure
1.15.4
Sep 2026
  • Profile enrichment now reads LinkedIn's plain labeled Contact info rows (Email, IM, Connected since) even when nested markup concatenates their text
  • The current overlay parser extracts an email from its displayed text as well as a mailto link, fixing current profiles whose modal exposes no legacy Contact-info classes
1.15.3
Sep 2026
  • Profile enrichment now clicks Contact info with the same Playwright action path as invitations and reads LinkedIn's current accessible dialog overlay
  • Removed the lookup AI fallback after a confirmed Playwright click; a visible Contact info overlay is now parsed directly instead of being falsely reported as an unsafe selector failure
  • Activity now distinguishes the Playwright click, overlay wait, overlay route fallback, and extraction result
1.15.2
Sep 2026
  • Profile enrichment now recognises LinkedIn's current plain-text 1st-degree header badge beside pronouns, so verified connections no longer stop before Contact info opens
  • The desktop Activity panel now records each enrichment Playwright step: profile opened, degree evidence, Contact info route used, extraction outcome, and server report
  • Contact-info lookups use the same persistent Playwright Chrome session and guarded profile ownership checks as connection invitations
1.15.1
Sep 2026
  • Invitation limits and note allowance now come from the server for the linked account; the desktop shows the same used, remaining and 20/day safe cap as queue claiming
  • Profile enrichment recognizes current LinkedIn degree badges, accessible labels and Remove Connection evidence, and records clear skipped or selector-failure diagnostics
  • Profile enrichment is available on Grow and Scale only, with the desktop showing an upgrade state instead of claiming lower-tier lookups
1.15.0
Sep 2026
  • Fixed the desktop run failing with an unhelpful fetch failed error after profile enrichment was added; requests now identify the operation and network cause, with retries limited by whether replay is safe
  • Connection invitations and Profile enrichment are now independent lanes with separate queues and Start buttons, so one can never claim or fail the other
  • The narrow side panel is now a full-page Automation workspace. The hosted web app remains available as-is, with Web app, Hide this panel, and the left-arrow rail switching between them
  • Profile enrichment now tries deterministic selectors, LinkedIn's direct Contact info route, and a guarded AI fallback that can only open the profile owner's Contact info control
1.14.1
Sep 2026
  • Once invitations are sent for the day (or none are queued), the app now also shows and starts contact-info lookups waiting to run — the Start button reads "Look up N leads" instead of staying disabled with nothing queued
1.14.0
Sep 2026
  • Once the invite queue is empty or capped for the day, the app now also looks up email and phone for 1st-degree connections waiting on a lookup — paced 6-15 seconds apart, capped at 150 a day, and skipped whenever the invite run stopped for any reason other than running out of things to send
1.13.0
Sep 2026
  • Fixed: signing in with Google or Zoho in the Followthroo side of the window opened Chrome, signed Chrome in, and left the app signed out. It now goes through your browser the same way the panel's own Sign in button does, and brings you back signed in
  • The Up next list shows whether each invitation carries a note, with a switch to turn it on or off, an Edit link to change what it says, and how many notes are left today
  • When LinkedIn says your free personalised notes are used up, the app leaves that invitation for tomorrow with its note and carries on with the ones that have none. It used to count it as a failure and try the same person again
  • Recolored to match the web app: navy text, the same blue, and a gradient Start button
1.12.0
Sep 2026
  • It now updates itself. A new build downloads in the background — never while invitations are sending — and a small “Restart to update” appears in the panel once it's ready. This is the first version that can do this, so anyone on an earlier build still needs to download once by hand from the LinkedIn page; every build after this one keeps itself current
1.11.0
Sep 2026
  • Checks your connections list at the start of a run to spot invitations that were accepted
  • The download on the LinkedIn page now actually serves 1.11.0. It had been built and described here but the link was still pointing at 1.10.2, before connections-list acceptance detection existed
1.10.2
Sep 2026
  • Fixed connection requests failing on profiles where LinkedIn does not put the person’s name in the usual place. The app worked out which buttons belong to the person you are visiting by starting from their name heading—and on those profiles there is no such heading, so it fell back to reading the name out of the web address and then could attribute nothing at all. It would see three buttons saying “More” (one pinned to the top of the screen, the person’s own, and one that expands their About text), correctly refuse to guess between them, and stop
  • The name is now found wherever it sits on the page, and matched against the web address even when that address runs the name together without punctuation (/in/liannemui against a heading reading “Lianne Mui”). Those two together are what let it pick the person’s own “More” menu and find Connect inside it
  • On a profile that offers Follow rather than Connect, the request now goes through the person’s own menu instead of giving up—and Follow is still never pressed in place of Connect
1.10.1
Sep 2026
  • Fixed: v1.10.0 would not open at all—it stopped on a startup error about a missing file. The installer was built from a list of files written by hand, and two new ones added in that release were never added to the list, so they were left out of the package. The list is now worked out automatically, which is what stops the next new file going missing the same way. If you downloaded v1.10.0, download again—v1.10.1 is the working build
1.10.0
Sep 2026
  • Connection requests are now sent by a fixed, predictable procedure rather than left to the assistant to work out click by click. The app already knows which Connect button is the person’s own; from there, opening it, adding the note and pressing Send is not a judgement call, so it is no longer made as one. The assistant is kept in reserve for a profile laid out in a way the procedure does not recognise—and only before anything has been clicked, so a handover can never turn into a second invitation
  • It will not stand in for Connect with something else. If it cannot find the person’s own Connect—on the card or inside their “More” menu—it stops and says so. Follow is never pressed in its place, a stranger’s Connect is never pressed, and when two Connect buttons cannot be told apart it refuses rather than guess
  • An invitation counts as sent only when the page confirms it—the button turning to “Pending” or a “sent” notice appearing. Pressing Send and hoping is not enough: if the page does not confirm, the run reports that plainly instead of recording a request that may never have gone
  • Every outcome now carries a specific reason—already connected, invitation pending, no Connect found, could not confirm the send, wrong profile—so the record shows what actually happened rather than a bare “failed”
  • Removed a set of shortcuts that could press Connect or Send by matching the word alone, sidestepping the checks that keep an invitation off the wrong person. Every click, including inside the menu and the send dialog, now goes through those checks
1.9.2
Sep 2026
  • Fixed the last thing standing between a written invitation and a sent one. The app filled in the note, went to press Send, and stopped — because the button on that dialog says “Send now”, and it would only accept a button whose wording matched to the letter. Near-misses like that are now understood, so an invitation that has been prepared actually goes out
  • The app now identifies the person’s own Connect button by where it sits on the screen — directly under their name — rather than by how LinkedIn nests the page. On real profiles the nesting gives no usable clue at all: the action row is not inside anything that also holds the name. Geometry is the one signal LinkedIn does not rewrite
  • Fixed: references to buttons from a previous look at the page were never cleared, so an instruction meant for one control could land on whatever had since taken its place. Every look now starts clean
  • Aiming at a point on the screen now requires something that is actually a control there. Previously it could settle on the block of text containing that point — which is how a click once landed on an entire profile — and a run that failed printed that whole profile into the log
1.9.0
Sep 2026
  • Fixed the reason no connection requests were going out at all. The app could see the Connect button perfectly well — it said so, every time — and then refused to press it. The check that stops it inviting the wrong person works by first establishing which button belongs to the profile you are on, and that step had quietly never once succeeded, so every button looked equally unattributable and none of them could be clicked
  • A LinkedIn profile shows several Connect buttons: the person’s own, one stuck to the top of the screen as you scroll, and one for each stranger in “People you may know” and “Others named …”. The app now works out which is which from the heading each one sits under, rather than from the page’s nesting, which LinkedIn changes constantly
  • If it genuinely cannot tell which Connect belongs to the person you asked for, it still refuses — an invitation cannot be recalled. But it now says which buttons it was choosing between and carries on looking, instead of repeating the same refusal until the run gave up on that person
  • Fixed: a connection request aimed by position on the screen could land on somebody else’s card inside “Others named …”, a section whose heading is the same name as the person you are visiting. That path is now checked the same way every other one is
  • Each invitation also starts about ten seconds sooner. The app was waiting for a signal that the profile had finished loading, and that signal depended on the same broken step, so it never arrived and every invite sat through the full wait
1.8.0
Sep 2026
  • Fixed the reason connection requests were not going out. LinkedIn moved Connect into the “…” menu on most profiles, and the app opened that menu and then stopped — it was looking for a button, and the thing in the menu is not a button. It also only looked for the word “Connect”, when what is written there is “Invite <name> to connect”
  • Worse, when it could not find Connect it sent the person a message instead — with your connection-request note as the message. That was meant for people you are already connected to, but “already connected” and “I could not find the button” looked identical to it. Now it tells them apart, and if it genuinely cannot find Connect it stops and says so rather than sending something you did not ask for
  • If someone is already a connection, a connection request is simply skipped. It no longer turns into a direct message unless the campaign step actually asked for one
  • You can see exactly who is about to be invited. The app lists them by name, job and company before you start, and the button now says “Send 14 invitations” rather than “Start sending”. The same list appears in Leads before you queue anyone
  • You can use your computer while invites go out. That was always true — the app drives a separate window and never touches your mouse or keyboard — but Chrome slows down windows you are not looking at, which would have stalled a run. Fixed, and the warning now says to leave that one window alone rather than to leave the computer
  • Fixed: someone who opted out could still be queued for a connection request. They are now excluded everywhere, and shown as opted out in the preview
  • The desktop app now has the whole of Followthroo in it — leads, campaigns, inbox — beside the sending panel, instead of only the sending panel
  • Sign in with Google, Zoho or your password from the desktop app. Google refuses to work inside apps like this one, so sign-in opens your normal browser and hands you back
  • You no longer paste a pairing token. Once you are signed in the app picks it up by itself
1.0.0
Sep 2026
  • LinkedIn invitations now go out from a Windows app you install, instead of the Chrome extension. The extension could open the profile and fill the box, but getting it to reliably press Send was a fight we kept losing — Chrome shuts a background extension down when it looks idle, which is most of a run spent waiting between invites
  • The app opens a Chrome window and works through your queue on its own, one invite every 45–120 seconds, up to 20 a day. You press Start and walk away
  • It tells you, loudly, not to use the computer while it runs — in the app and on a red bar across the top of every page it visits. Clicking or typing in that window while it works will break the run
  • It stops early rather than pushing through. Twenty sent, LinkedIn saying you have hit the weekly limit, three failures in a row, or a sign-in prompt all end the run and say which it was
  • There is a Test run that does everything except press Send, so you can watch it work once before trusting it with real invitations
  • Pressing Start twice in one afternoon does not send forty. The day's count is remembered
  • Your LinkedIn login stays on your computer — the app keeps its own browser profile that you sign into once. We never receive your password or session