Last year I was job hunting and every morning looked the same: open LinkedIn, open Indeed, open three other sites, skim fifty listings to find the three worth reading. So I built something to do that part for me.
You give it your CV and some keywords. It searches whatever sites you tell it to, and scores every result 0-10 for how well it actually matches you — instead of you reading the whole thing to find out it wants five years of a framework that didn't exist five years ago.
A few things I cared about while building it:
AI scoring is optional, not required. Bring a Groq, Anthropic, or Gemini key and it scores with that. No key, no problem — it falls back to keyword matching automatically, still fully usable, still free.
Your data stays on your machine. Everything lands in a local SQLite file you own. Nothing gets sent anywhere unless you explicitly turn on an AI key or a notification webhook.
One command to run the whole thing. docker compose up --build and you have a dashboard at localhost:8501, a REST API at localhost:8000, and a database. No local Python setup.
It's a Streamlit dashboard on top of a FastAPI backend, uses Playwright for the actual page fetching, and everything the UI does is also a REST endpoint, so you can script it instead of clicking through if that's more your speed.
It found me a job, which is honestly the whole reason it exists. Now I'm cleaning it up so it's actually usable by other people, not just held together by whatever I needed that week. If you try it and something's broken, tell me — it's a solo project so far and every report helps.
Top comments (0)