Notion Job Tracker Extension
2026 · Build log · Yasmin Elsaddik
Overview
Every job board formats listings differently, and applications generate a scattered trail across LinkedIn, career sites, and email, none of which sync with each other. Keeping an accurate log means either manually retyping every listing or letting the tracker fall out of date the moment a recruiter replies.
I built a Chrome extension that removes the manual work entirely: it captures the listing in one click, structures the data consistently regardless of source, and keeps status current by reading email activity, so the tracker reflects reality without anyone babysitting it.
A consistent system, even when every source isn’t.

Problem
Job applications don’t arrive in a consistent format. Every board structures listings differently, career sites bury key fields in different places, and recruiter emails vary widely in how (or whether) they signal a status change. For anyone applying at volume, doing all that by hand is slow, and the tracker only helps if you can actually rely on it.
System
When you’re on a application page, the extension pulls the details straight from the page, no matter which site you’re on. Claude reads that page and turns it into clean, consistent fields (company, role, salary, location) before sending it to Notion.
From there, a background process checks your inbox hourly. It picks up on status changes from recruiter emails and updates the tracker automatically, so you’re not stuck guessing whether “applied” turned into “interview” or “rejected” somewhere in your inbox. Built with JavaScript, the Claude API, the Notion API, and Chrome Storage.

Result
One system of record that updates itself: listings are captured cleanly from any source, and status stays accurate without manual upkeep. It solves a real friction point in how job seekers manage a high-volume search.

Want to add it yourself? The full code is free on GitHub.