Personal builds · 2026.07

Personal Job Board

A serious job search means watching a dozen-plus sources daily and reading fifty postings to find three that match my interests. Now a pipeline collects, dedupes, and scores every posting with a local LLM against nine weighted axes, then sends the best few to my phone.

tab triagebecameone ranked list

Personal build · Python · local LLM

The problem

I'm trying to simplify how I look for jobs by creating a tool just for myself. I want to watch a dozen-plus sources (government job feeds, company boards on Greenhouse and Workday, USAJobs, aggregators) every day. The same posting appears on three of them under slightly different titles. And "is this worth applying to?" is a judgment call across many dimensions at once: how central each of my skills is to the role, where it sits, whether it quietly wants a hands-on engineer instead of an orchestrator. Reading fifty postings to find three good ones is exactly the kind of manual process suited to an LLM, and exactly what I need it for.

The approach

A Python pipeline collects from eight kinds of source, removes duplicates, and scores each posting with a local LLM across nine weighted dimensions of fit. Two adjustments follow. One asks where the job is and how often it wants me onsite. The other encodes what I'm not (hands-on IC engineering ×0.35, visual design ×0.5). AI Automation and Automation Opportunity carry the most weight, favoring roles where I can improve manual processes. Those weights couldn't also express my interest in instructional design, so I added a separate scoring blend that applies only when learning design is central to the role. The board keeps whichever score is higher. I designed the pipeline and scoring model; AI wrote most of the implementation under my direction, which is rather the point. Probably obvious, but this is one of my favorite uses of AI: make your own tools!

The result

One command produces a ranked, self-contained dashboard. A Telegram bot sends the top matches to my phone in the voice of Red Dwarf's Queeg, and tells me if a run hangs. A second page covers the places with no sanctioned feed, like LinkedIn and Indeed: links I click myself, each with a note on why it isn't automated. A daily hidden-gems pass picks out strong roles the adjustments may have buried and files them in a log, which opens with a few lines from the local model in the manner of Douglas Adams. When I pick a role, the board tracks it from interested to offer, with follow-up dates and notes. Companion tools flag gaps against my résumé and draft a tailored version, stopping if a number isn't supported by the original. My fit judgment lives in a config file instead of my head, so tuning it is an edit, not a habit. And because the scoring runs on a local LLM, ranking costs nothing and the scoring never leaves my machine.

Before and after.
MeasureBeforeAfter
Job reviewManual reading across multiple sourcesDeduplicated postings in one ranked dashboard
Fit criteriaJudgment held in my headNine weighted dimensions, configurable in a file

How I check it

A tool that ranks my job search needs checking, so I measure it against things it can't see. In September I compared it with a one-off manual look at LinkedIn's "top applicant" list. The board had seen only 19 of those 113 roles, which told me which employer boards to add. The ones it had scored averaged 6.9 out of 10, against 3.1 for the board as a whole, so two independent judges mostly agreed on fit — good enough for a personal board. A state web-content role had the highest base score on the board and showed up as a 1, because the model was answering "where is it?" and "how often onsite?" with one field. I split them. And when listings seemed to be drying up, counting the same employer boards day over day showed the drop came from my own title filter. The market was flat for those titles.

The job board dashboard on 10 November 2026: Jobs, Today and Applications tabs, search, saved searches and sort, a min-fit slider set to 6 beside fit bands reading Strong 58, Good 130, Maybe 107 and New 15, and the top-ranked job cards, each with a fit score, per-axis meters including Learning, salary, days on the board, and a Track / notes link
The 10 November run: 558 listings from eight kinds of source, deduped and ranked, 188 of them above my min-fit of 6. Runs locally, just for me; not a product.

Open to work

Got a manual process worth automating?