Skip to content
Projects

Provenfit

A free, open-source job search assistant that runs on your own machine. It ranks postings against your resume, shows the line from your resume behind every requirement it says you meet, and writes a tailored resume and cover letter only when you ask.

Since Oct 2026

Provenfit is a job search assistant that shows its work. It reads your resume into facts, finds postings, and tells you which ones you fit. For every requirement it says you meet, it shows the line from your resume behind it. It’s free, MIT-licensed, and runs on your own machine.

Provenfit's Find jobs page with ranked matches for a made-up frontend engineer, each with a fit score from 91 strong down to 31 poor
Every eligible posting, ranked. Demo data throughout.

From resume to facts

You upload a resume and any notes about yourself. Provenfit reads them into separate facts: jobs, skills, the roles you want, where you can work. You can check each one and correct it. Everything after this step works from those facts, not from the original file.

The User information page showing a summary, the roles and locations being looked for, and experience, with 15 facts confirmed
The resume, read into facts you can check

Ranking and review

A search pulls postings from public job boards and from company job boards. Provenfit drops the ones you can’t take, ranks every one that’s left, and reviews the best of them requirement by requirement. Each requirement you meet comes with the fact that proves it. Any posting below the cut has a Review button.

Writing, only when asked

Nothing gets written until you press Write on a match. Then it drafts a resume and a cover letter for that job. Every claim in them is checked against your facts, and anything the facts don’t back up is flagged before you send it. You also get an ATS keyword score for the posting.

A written cover letter with the resume fact behind each paragraph, beside a claim check that flags one phrase the facts don't support
A cover letter with its sources, and the one claim the check caught

How it’s built

  • Next.js 16 with React 19 and TypeScript.
  • Postgres with pgvector holds everything. Retrieval is hybrid: vector search and BM25, merged with rank fusion.
  • Embeddings run locally with a nomic model. Model calls go through the AI SDK, with your own key for Anthropic, OpenAI, Gemini, or any OpenAI-compatible endpoint.
  • A search, an upload, or a written application runs as a background task kept in Postgres. It keeps going if you leave the page, shows live progress, and can be cancelled.
  • A separate worker crawls company boards and runs the daily search.
  • Prompt caching and stored verdicts keep model costs down. A posting reviewed once isn’t paid for again until your details change.
  • Lightpanda, optionally, reads job links that only render with JavaScript.
  • Docker Compose starts the app, the worker, and the database together.
A search in progress: fetch, embed, and rank done, reviewing 3 of 6 postings, with elapsed time, cost so far, and a Cancel button
A search running in the background, with its cost so far

Status

In active development. The code goes public soon; until then, the site has the guide.

Built with Next.js 16, React 19, TypeScript, PostgreSQL, pgvector, AI SDK, nomic embeddings, Lightpanda, Docker Compose.