Free - 14 Days Access & Job Post
ProductMarch 8, 20265 min read

Building a Chrome Extension for Recruiting: Lessons Learned

Michael Torres
<p>Recruiters live in their browser. LinkedIn, email, ATS — their entire workflow happens across tabs. A Chrome extension that bridges these tools isn't a nice-to-have; it's where the sourcing actually happens.</p> <h2>Why We Built It</h2> <p>Even with Ellie's autonomous sourcing, many recruiters prefer to supplement AI-found candidates with their own manual finds. The disconnect was friction: find someone on LinkedIn, copy their details, switch to Kasp, create a record, go back to LinkedIn. The extension eliminates every tab switch.</p> <h2>How It Works</h2> <p><strong>Profile pages:</strong> When you visit a LinkedIn profile, the extension parses the name, title, company, location, and skills from the DOM. A "Save to Kasp" button appears next to the native Connect button. Click it, select a role, and the candidate is saved and enriched in one action.</p> <p><strong>Search pages:</strong> On LinkedIn search results, checkboxes appear next to each profile. Select multiple candidates and batch-save them to a role with a single click.</p> <p><strong>Enrichment:</strong> Before saving, the extension calls Kasp's enrichment API to pull email addresses, GitHub profiles, and match scores against the selected role. You see the fit score before committing.</p> <h2>Technical Decisions</h2> <p>We use Manifest V3 with shadow DOM for CSS isolation — LinkedIn's styles are aggressive and would break any injected UI without it. The background service worker handles all API calls and auth token management.</p>

Share this article

Help others discover this content

MT

Michael Torres

Michael Torres writes about AI engineering careers, hiring trends, and the future of talent marketplaces.