Unified Search
One search box across LinkedIn and Seek — your own browser does the fetching, so no API required.
One search across multiple job boards
For the roles I’m after, I have to watch both LinkedIn and Seek. The overlap is only partial — plenty of listings show up on one and never the other — so skipping either isn’t an option, and every search gets run twice.
The hard half
Search is the valuable part, which is exactly why it’s defended. Listings are the product for both platforms — there’s no API, and collecting them in bulk is what they actively design against. Scraping a single job page you’re already looking at is a different proposition, and that’s the half I built first: Job Tracker.
Owning it taught me the real cost. Markup changes without warning, and when it does the thing fails silently — no error, just nothing. Working out how to survive that was more interesting than the tracker itself, and it made the harder problem worth another look.
The way in was to stop fighting the defences. The browser is already authenticated as me, and both sites send their results as structured data before the page is drawn. So: make the requests a person would make, in that session, at a pace a person could produce — and read the data that’s already there.
Three parts
Lives in the browser because that’s where the session is. Paced fetch loops, per-source dedup, descriptions on demand.
Search console, streams unified results. Holds no credentials and does no fetching, so it can be hosted anywhere.
Saved jobs, notes, pipeline stages.
Where it’s up to
The thing I set out to validate works: one search in the app runs across both LinkedIn and Seek and comes back as a single unified set of results.
It’s built on the assumption that both sites will change without warning, so when something breaks it tells me which platform, rather than just quietly returning nothing.
Ideas I want to explore next
-
Self-healing.
Right now it tells me it’s broken and I go and fix it. The more interesting version works out what changed and repairs itself.
-
A brain that knows what I’m looking for.
It currently returns what I asked for. It should learn which roles I open, save, and apply to, then run in the background — collecting and curating rather than waiting to be asked.