Release notes

What’s new in ApplicantSync

Every update we ship to the Chrome extension and dashboard. Latest release is v3.4.45 on May 27, 2026.

Chrome auto-updates extensions in the background. If you’ve had ApplicantSync installed for a while, you’re probably already on the latest version — check chrome://extensions to confirm.

  1. v3.4.45

    May 27, 2026Chrome extension

    Faster bucket harvest when LinkedIn over-reports a count

    On the new chameleon hiring UI, LinkedIn's rating dropdown sometimes claims a bucket has more applicants than the list actually renders (e.g. "Top fit (69)" but only 64 ever appear). The extension used to wait the full 110 s deadline on those buckets before moving on; 3.4.45 settles in 45 s once the list has clearly stopped revealing new rows, with the 110 s hard deadline kept as a safety backstop.

    • ImprovedCuts per-bucket wait from ~110 s to ~45 s when LinkedIn over-reports a rating-bucket count
    • ImprovedSettle diagnostics now identify exactly which gate fired (expected / classic-ui / loader / growth / bucket-soft-deadline)
  2. v3.4.44

    May 27, 2026Chrome extension

    Faster start on legacy paginated jobs

    On LinkedIn's classic non-virtualized applicant page, the extension used to sit on the scan bar for nearly two minutes before moving on to page 2 because the row count never matched the cross-page total. 3.4.44 detects the legacy UI explicitly and moves to enrichment as soon as the rendered row count is stable, dropping the per-page wait from ~110 s to ~1.5 s.

    • FixDrops the long start-of-scan pause on legacy paginated jobs to under two seconds per page
    • ImprovedAdds production-visible breadcrumbs across the post-scan handoff so future hangs can be diagnosed from a single console paste
    • ImprovedShips a separate debug build (dist-debug / applicantsync-X.Y.Z-debug.zip) that preserves all console logs for support triage
  3. v3.4.43

    May 27, 2026Chrome extension

    Live extraction progress and a readable Pro button

    The scan progress bar now moves continuously instead of parking at 35% while the chameleon rail scrolls, and the "See Pro plans" sidebar button no longer hides its own white label on its blue background.

    • ImprovedLive scan progress bar tracks the running applicant total across every rating bucket
    • FixSidebar "See Pro plans" button is readable again — the white label no longer disappears on the blue background
  4. v3.4.42

    May 26, 2026Chrome extension

    Richer LinkedIn applicant details from the new hiring layout

    ApplicantSync now reads LinkedIn's chameleon applicant detail payload directly from the background worker, including phone, headline, location, applied date, work history, and education. This avoids slow background tabs and captures the same profile details visible in the applicant page source.

    • FixExtracts phone, headline, location, and applied date from LinkedIn's embedded applicant detail payload
    • NewSaves structured work history and education for chameleon applicants
    • ImprovedStops opening chameleon applicant tabs for enrichment, making the flow faster and less brittle
    • FixKeeps active LinkedIn jobs under Open even when an older sync had marked them Closed
    • FixImproves chameleon rating-bucket scrolling so large jobs do not stop after the first 15 visible applicants
    • ImprovedUses LinkedIn's rating dropdown counts to skip empty buckets and target the exact Top fit / Not a fit totals
  5. v3.4.39

    May 26, 2026Chrome extension

    Chameleon applicant contact info now extracted directly by the background worker

    On LinkedIn's new hiring layout, applicant email, phone, and resume data live inside the page's initial HTML — but LinkedIn removes that block before the extension's content script can read it, and Chrome was also caching an older content script even after reload. Phase 2 enrichment now fetches each applicant page directly from the background service worker (no extra tabs), parses the embedded data, and saves it — the same fields you can see in View Source.

    • FixBackground worker fetches chameleon applicant detail pages and parses email, phone, LinkedIn URL, and resume without opening a tab
    • ImprovedShared como-parser module so background and content scripts use identical parsing logic
    • ImprovedJob title and company name from the rehydration block can now backfill the job row during enrichment
  6. v3.4.37

    May 26, 2026Chrome extension

    Job titles are no longer "Top fit" — and we can now prove which content script is running

    On the new LinkedIn hiring layout, every extraction tab lands on a URL that opens the "Top fit" rating filter, which made the page report "Top fit" as the job title — and that string was getting saved into Supabase as the actual job name. Job rows now reject "Top fit", "Good fit", "Maybe fit", "Recommended", and the other rating-pill labels at every layer (page scrape, popup, background, server, and a one-time backfill for already-poisoned rows). A small diagnostic also now fingerprints the content script's build so we can tell, from a single log paste, when Chrome is still serving a stale older content.js even after the extension has been reloaded.

    • FixReject "Top fit" / "Good fit" / "Maybe fit" / "Recommended" and other LinkedIn rating-filter pill text from being saved as a job title
    • FixPopup now falls back to the cached My Jobs title when the page scrape only produced a rating-pill label
    • FixServer endpoints (ensure-job, save-job) treat rating-pill labels as overwriteable placeholders, so the next sync replaces them with the real title
    • FixOne-time migration scrubs already-poisoned job rows back to a placeholder so the next sync restores the real title
    • ImprovedContent script now ships a phase2-version fingerprint with every applicant extraction so we can confirm which build is actually running
  7. v3.4.36

    May 26, 2026Chrome extension

    Full email, phone, and resume capture restored on the newest LinkedIn hiring layout

    On the newest LinkedIn hiring layout, ApplicantSync was reaching the candidate detail page but coming away with only the data already visible in the sidebar — email, phone, and the resume PDF were all empty across the board. That layout ships every field we need (email, phone, LinkedIn profile, photo, headline, location, applied date, resume file) embedded in the page's initial HTML response, but LinkedIn's page code deletes that block from the page seconds after load — before ApplicantSync gets a chance to read it. 3.4.36 re-requests the same page from the candidate detail tab, parses the embedded data directly out of the raw HTML before LinkedIn can delete it, and then walks LinkedIn's resume viewer to the actual PDF. Email, phone, LinkedIn URL, photo, and downloadable resume now land in your dashboard on every candidate, on every account, regardless of which layout LinkedIn is showing.

    • FixEmail and phone now save for every candidate on the newest LinkedIn hiring layout, not just the ones who happened to also be on the older layout
    • FixResume PDFs now download to your ApplicantSync library on the newest layout — previously they showed up as "Pending" and never resolved because the page never exposed a downloadable link
    • NewEach candidate's LinkedIn profile URL, public handle, headline, location, and photo are now captured on the newest layout, matching what you already get on the older layouts
    • ImprovedOlder layouts and the classic hiring UI continue to use the existing extraction path unchanged — this release adds a new path that activates only when the newest layout is detected
    • ImprovedNew diagnostics in the background log show whether each candidate was enriched via the older direct-DOM path, the new raw-HTML path, or the best-effort fallback, so future layout changes are faster to triage
  8. v3.4.35

    May 26, 2026Chrome extension

    Pulls LinkedIn URL, headline, and location from the newest hiring layout

    On accounts moved to LinkedIn's newest applicant-detail layout, the second-pass enrichment was returning empty for every candidate because the layout no longer puts the applicant's name in a page heading. 3.4.35 reads the name from the applicant's LinkedIn profile anchor, parses the headline / location / "applied N ago" line from the rendered detail panel, and stops the in-page "Resume" tab link from being mistaken for a downloadable PDF. The enrichment row now lands with LinkedIn URL, public LinkedIn handle, headline, location, and applied date for every candidate on the new layout; email / phone / resume PDF are still pending a follow-up release that talks to LinkedIn's detail API directly.

    • FixOn the newest hiring layout, ApplicantSync now reads each candidate's name from their LinkedIn profile link instead of looking for it in a page heading that no longer exists
    • NewHeadline, location, and "applied N ago" are now pulled into the enrichment row from the new layout's detail panel
    • NewEach candidate's public LinkedIn URL and handle are now captured, so candidates with no email or phone yet still get a clickable profile link in your dashboard
    • FixThe "Resume" tab link inside the detail panel is no longer treated as a downloadable resume — that link routes inside the same page and was wasting an upload attempt every run
    • ImprovedAdded an early page-shape marker to the diagnostic log so future detail-panel changes show up in one paste, without another debug build cycle
  9. v3.4.34

    May 26, 2026Chrome extension

    Each candidate now saves to their own record on the newest LinkedIn hiring UI

    On a small set of LinkedIn accounts that have been moved to LinkedIn's newest hiring layout, ApplicantSync was harvesting every candidate from the sidebar correctly, but during the second-pass enrichment it was routing all of those updates into the same database row. The result on screen was "30 of 30 enriched" but only one candidate carrying enriched data and the rest stuck on sidebar-only info. 3.4.34 makes the per-candidate routing match the layout, preserves the sidebar name when the second pass cannot improve on it, and keeps resume downloads landing in your library.

    • FixOn the newest hiring layout, each candidate's enrichment now saves to their own record instead of overwriting the last candidate in the list
    • FixWhen the second pass cannot find a candidate's name on the new layout, ApplicantSync now keeps the name it already captured from the sidebar instead of clearing the row
    • FixResume links that point at LinkedIn's in-browser viewer are now resolved to the actual PDF before being saved, so the file you open from ApplicantSync is a real resume and not an HTML page
    • ImprovedAdded an extra page-shape diagnostic that fires on the newest layout, so the missing-on-the-new-layout fields can be picked up in a follow-up release without another debug build cycle
  10. v3.4.33

    May 26, 2026Chrome extension

    Correct names, contact info, and resume downloads on the newest LinkedIn hiring UI

    A subset of LinkedIn accounts have been moved to a new hiring layout where the candidate detail page is rendered very differently from the rest of the platform. On those accounts ApplicantSync was saving the recruiter's name instead of the candidate's, missing email and phone, and never managing to pull the resume PDF into your library. 3.4.33 reads the new layout correctly across every field and walks LinkedIn's multi-step resume viewer all the way down to the actual PDF so it lands in your Supabase storage like every other resume.

    • FixCandidate name on the new layout is now the candidate, not the recruiter who posted the job
    • FixEmail and phone are now extracted from the contact info buttons on the new layout
    • NewResume PDFs from the new layout are now downloaded and stored on ApplicantSync so you can view and share them without being logged into LinkedIn
    • FixProfile photos on the new layout are now stored at full resolution alongside the rest of the candidate record
    • ImprovedBackground enrichment tabs now always include the job ID in the URL, which avoids a server error LinkedIn returns when one is missing
  11. v3.4.32

    May 26, 2026Chrome extension

    Checkboxes and status pills now appear on every posted-jobs layout

    A subset of LinkedIn accounts have a posted-jobs page where every card has a different link format than every other account. On those accounts the ApplicantSync checkboxes, per-row status pills, and the "Extract Selected" bar at the bottom were invisible — the rest of the popup-side flow still worked, but you couldn't multi-select jobs directly on LinkedIn. 3.4.32 recognises the new card format and restores all of that.

    • FixRestores per-row checkboxes, status pills, and the "Extract Selected" bar on LinkedIn's newest posted-jobs layout
    • ImprovedCard detection now keys on the stable urn:li:jobPosting URN, so future class-name shuffles on LinkedIn won't break selection again
  12. v3.4.31

    May 15, 2026Chrome extension

    Best-effort contact info on accounts with a custom hiring UI

    A small number of LinkedIn accounts are now on a hiring layout that doesn’t embed candidate data anywhere a script can read it directly. 3.4.31 falls back to scanning the visible page for emails, phone numbers, resume links, and the candidate’s name — so even on those accounts you’ll get partial enrichment instead of an empty record. The build also ships a detailed page-snapshot diagnostic that helps us patch the rest of the fields quickly in the next release.

    • ImprovedPulls name, email, phone, resume URL, and LinkedIn profile link from the visible page on accounts with the newest hiring layout
    • FixFailed extractions now record a detailed snapshot of the panel structure so layout changes can be supported in the next release without trial-and-error
  13. v3.4.30

    May 15, 2026Chrome extension

    Works on LinkedIn’s newest hiring layout

    A growing number of LinkedIn accounts have been rolled onto a brand-new hiring layout that delivers candidate data through a different system than before. Earlier ApplicantSync builds couldn’t see resumes, emails, or phone numbers on that layout. 3.4.30 reads the new data stream directly, so resume and contact extraction works again — without any user action required.

    • FixRestores resume, email, and phone extraction on accounts running LinkedIn’s newer hiring UI
    • ImprovedMore detailed status messages when extraction stalls, so future layout shifts are easier to spot
  14. v3.4.29

    May 15, 2026Chrome extension

    Faster extraction on the classic LinkedIn applicants page

    Extraction was stalling at 35% for about 70 seconds on roles using the classic LinkedIn applicants layout because a new safety wait was looking for a signal that layout never provides. 3.4.29 skips that wait when the page already shows every applicant, so classic-layout jobs finish in seconds instead of over a minute.

    • FixNo more long pause at 35% on classic /hiring/jobs/... applicant pages
    • ImprovedDetects whether the applicant list is virtualized or rendered all at once, and waits only as long as needed
  15. v3.4.28

    May 15, 2026Chrome extension

    Pulls resumes and contact info on the new LinkedIn hiring UI

    On LinkedIn's newer applicant view, ApplicantSync was harvesting names correctly but failing to attach resumes, emails, and phone numbers because it was waiting for a page element that no longer exists. 3.4.28 stops waiting for that element and instead reads candidate data directly from the page payload, which the new UI still ships with every applicant.

    • FixAttaches resumes and contact info on the new LinkedIn hiring layout, not just the classic one
    • ImprovedWaits longer for slow LinkedIn pages to finish loading before giving up on a candidate
    • ImprovedClearer status messages when extraction stalls, so we can pinpoint problems faster
  16. v3.4.27

    May 15, 2026Chrome extension

    Scrolls deeper into long applicant lists

    When a role had a long applicant list on LinkedIn's newer hiring layout, ApplicantSync was stopping partway through. 3.4.27 changes how the extension nudges the list to keep loading more rows, so larger queues finish in one click instead of needing repeat runs.

    • FixPulls the full applicant list on roles with dozens of candidates, not just the first batch the page renders
    • ImprovedWaits longer for slow lists to finish loading before declaring extraction complete
    • ImprovedBetter progress logging so a hung run is easier to diagnose without re-installing a debug build
  17. v3.4.26

    May 15, 2026Chrome extension

    Captures the full applicant list, not just the visible ones

    LinkedIn’s newer hiring UI only renders the first 15 applicants at a time and lazy-loads the rest as you scroll. The extension now scrolls and accumulates as it goes, so a 42-applicant list comes through as 42 rows. We also widened the per-applicant detail-panel detection so resumes and contact data can attach to each row on this UI.

    • FixFull sidebar list captured even when LinkedIn virtualizes it (no more capped-at-15 results)
    • FixPer-applicant detail panel detected on the newer LinkedIn UI so resume and contact enrichment runs
  18. v3.4.25

    May 15, 2026Chrome extension

    Each applicant now reads as its own person

    After the previous fix found everyone in the list, every saved row was getting the first applicant’s name. We now scope name, headline, and location to each card individually, and scroll the sidebar so the rest of the list loads before extraction.

    • FixPer-applicant name and headline instead of the rail header bleeding into every saved row
    • FixVirtualized sidebar scrolls to hydrate all rows before extraction, so 42-applicant lists are not truncated to 15
  19. v3.4.24

    May 15, 2026Chrome extension

    Applicant list reads on LinkedIn’s newer hiring UI

    Some LinkedIn hiring accounts render the applicants sidebar without the wrapper rows the extension was looking for. Extraction now reads the per-applicant links directly, so the list comes back populated instead of empty.

    • FixApplicant URL harvest works on the newer LinkedIn hiring UI where cards are not wrapped in <li> elements
  20. v3.4.23

    May 15, 2026Chrome extension

    Smarter waiting for LinkedIn’s sidebar to settle

    On the alternate LinkedIn hiring UI, the sidebar list of applicants finishes rendering in stages. The extension now watches the page for the moment the list is actually ready before walking it, so 25-applicant lists no longer come back empty.

    • FixMutationObserver-driven wait replaces fixed polling before scraping the applicants list
    • ImprovedSide-panel console now surfaces what the page DOM looks like when nothing is found, so support can diagnose without the LinkedIn tab’s DevTools
  21. v3.4.22

    May 15, 2026Chrome extension

    More reliable applicant list on LinkedIn hiring URLs

    When LinkedIn opens you on a single-applicant deep link (URL with applicationId), extraction now switches to the job-wide applicants list first so the extension can see the full sidebar list.

    • FixApplicant URL harvest runs after normalizing deep-linked hiring applicants tabs
  22. v3.4.17

    May 15, 2026Chrome extension

    Smarter coaching tips and version tracking

    The extension now reports which build you are on, shows more helpful blue coaching tips on LinkedIn (including when an update is available), and suggests Pro after a successful extraction when you are on the free plan.

    • NewLinkedIn page coaching tips for background extraction, multi-job select, updates, and Pro
    • ImprovedInstalled extension version is recorded on your profile so support can see what build you are running
  23. v3.4.16

    May 14, 2026Chrome extension

    Sync-first flow polish and one-click full job sync

    First-time users on a single job page get a clearer sync-first path, the bottom Extract button hides while that card is showing, and Sync My Jobs runs the full Open then Closed sweep automatically.

    • ImprovedSync My Jobs triggers the same full job sync as Sync All My Jobs instead of only navigating to Open
    • ImprovedRenamed Extract My LinkedIn Jobs Data to Sync All My Jobs across the side panel
  24. v3.4.8

    May 6, 2026Chrome extension

    Know when a newer build is live

    Chrome rolls out updates gradually. When you open the extension while signed in, we now compare your installed version with the latest release notes on the website and show a short dismissible banner with a link if you are behind.

    • NewUpdate-available strip in the popup (respects dismiss per published version so we only nudge again after the next ship)
  25. v3.4.7

    May 5, 2026Chrome extension

    Spend numbers now show in your real currency

    If your LinkedIn account bills in INR, EUR, GBP, or anything other than USD, the dashboard was incorrectly stamping every spend value with a dollar sign. The extension now forwards your local currency to the dashboard so Spent / Daily budget / Cost-per-applicant render with the right symbol.

    • FixWorkspace currency auto-detects on the next job extraction, one-shot, never overwrites a value you already corrected manually
    • ImprovedAdmins can still override a workspace currency from /admin/dashboard if a user wants something different from what LinkedIn reports
  26. v3.4.6

    May 5, 2026Chrome extension

    Fewer applicants stuck in "pending" after extraction

    Two of every fifteen applicants on slow LinkedIn responses were being saved without a resume because the virus-scan retry was getting cut off mid-flight. The retry now gets a fresh time budget and lands cleanly.

    • FixResume virus-scan retry no longer races the per-tab timeout; "pending detail extraction" applicants now resolve to fully-extracted on a re-run
  27. v3.4.5

    May 4, 2026Chrome extension

    Selection dock no longer covers LinkedIn job pages

    Opening a single job from the posted-jobs list left the floating "Extract Selected" dock glued to the new page, blocking LinkedIn's own footer menu. The dock is now strictly scoped to the posted-jobs list.

    • FixBottom selection dock + per-row checkboxes only appear on /my-items/posted-jobs and tear down cleanly when you navigate to a job or applicant detail page
  28. v3.4.4

    May 3, 2026Chrome extension

    Forgot-password link + per-row extraction status

    Two small but visible additions to the popup and the LinkedIn injector.

    • New"Forgot password?" link in the popup login flow
    • NewPer-row extraction status pill on /my-items/posted-jobs so you know which jobs are already in your dashboard

Have a request or hit a bug?

Every fix on this page started as a user report. The fastest way to shape the next release is to tell us what’s missing.