I'm currently renovating my website… please be patient…

projects→linkedin-job-filter

From job-alert overload to a shortlist that matches my values

An LLM pipeline that reads my LinkedIn alerts and filters them for fit and impact.

envelops in metal strainer

Status: In progress · Stack: Python, Jupyter, Gmail API, LLM, SQLite

The problem

The last time I checked, LinkedIn had sent me 56 job-alert emails in one month: 243 job links, 199 unique jobs. Despite LinkedIn’s own filters, most of them were noise: wrong location (not remote), a language I don’t speak, industries I’d rather not work in (gambling, quick-money crypto and the like), or companies that looked more like a pitch deck than a business. Reading them all by hand is slow, and keyword filters can’t capture what I actually care about and aspire to: working with a company that has a positive impact on the world.

What I built

A pipeline that reads the alerts for me. It collects every job from my inbox, removes duplicates, and uses an LLM to understand each one: the role, the company, the location, whether it’s remote, and which languages it requires. The final step scores each company against my own impact criteria and gives me a short daily list, with a reason for each pick.

How it works

  1. Gmail API (read-only OAuth) finds LinkedIn alert emails and extracts each job from the links.
  2. SQLite stores every job once, so re-runs only process what’s new.
  3. An LLM with structured outputs turns each messy alert line into clean fields: job title, company, location, the work mode as probabilities, and required languages.
  4. Prompt iteration: the first version guessed languages from the city name. A stricter prompt fixed it: only languages actually named count.
  5. Next: fetching full job descriptions and scoring impact with a personal rubric.

What it could do for you

The same pattern works for any inbox that drowns your team: leads, job applications, support tickets, supplier offers. It reads everything, extracts what matters into structured data, filters by your rules, and hands you a ranked shortlist with reasons, so people only read what deserves attention.

contact

Let's talk.

Need help with something? Looking for a professional who's reliable and believes in karma*?

Tell me about it here, or send me an email. I reply within two working days.

* which means value and integrity come first; reward follows.