← Back to Product Lab
Product Lab

Resumonkey

Pilot

Figures as of November 2026

A daily job digest that searches three markets, scores each listing 0 to 10 and explains the score.

Role
Solo product and build
Stack
Python/FastAPI, Next.js, Supabase, Render (cron), Resend, GitHub
3
markets searched: Canada, Chile and remote
8
known calibration cases that must pass before every real send
8.3 โ†’ 3.2 min
run time after splitting the work across language models

The problem

Searching across several markets means reading the same noisy listings every day. Many are in the wrong country, require a language the search excludes, or are already stale. A ranking that cannot explain itself is hard to trust and hard to fix.

I built it first for my own search across Canada, Chile and remote roles. It runs as a pilot, so every design choice is judged against real daily use before anything else is added.

Discovery

Three questions shaped the product. What must never reach the digest? Hard filters on country, required language and listing age. How does a listing earn its score? A rubric of components, with the reasoning shown, rather than a single opinion. How do I know the scoring still behaves after a change? A set of known cases that has to pass first.

Key decisions

  • ▹Hard filters before scoring. Country, required language and age are rules, not model judgement. The cost is that a filter is only as good as its rule.
  • ▹A 0 to 10 score built from components, with an explanation. More to maintain than one number, but every score can be challenged and corrected.
  • ▹A calibration suite of 8 known cases before every real send. Slower to ship a change, in return for catching a drifting score before it reaches the digest.
  • ▹Work split across language models. More moving parts to coordinate, in return for a run time that fell from 8.3 to 3.2 minutes.
  • ▹Full listing text stored in Supabase. Scores can be audited and re-run later against exactly what was scored.

What I built

  • ▹Filtering and scoring service: Python/FastAPI.
  • ▹Web interface: Next.js.
  • ▹Storage: Supabase, including the full text of every listing.
  • ▹Daily run: a cron job on Render.
  • ▹Delivery: the digest is sent through Resend.
  • ▹Code: GitHub.

Status and results

Pilot. Run time went from 8.3 minutes to 3.2. Eight known calibration cases must pass before each real send. The digest covers three markets: Canada, Chile and remote.

What’s next

The pilot decides. Where a score is challenged, the rubric is tightened; where the digest surprises me, that case joins the calibration suite.

Discuss this project
EN ยท FR ยท ES