back to projects

JobRadar

.NET 10 · Clean Architecture · PostgreSQL · in production · 289 tests

Job-market radar in .NET that ranks listings with an explainable score, tracks applications and builds a monthly market snapshot. In production since October 2026.

  • .NET 10
  • Blazor
  • EF Core
  • PostgreSQL
  • Docker
  • xUnit
  • Testcontainers
  • GitHub Actions

It started as a Python prototype to follow job listings without running the same searches every day. Once the rules proved useful, I rewrote everything in .NET 10, using the prototype as the specification. JobRadar has been in production since October 2026, with a daily pass and the prototype switched off.

There are two products on the same core: matching, which ranks listings by profile and tracks applications, and the market snapshot, which only publishes aggregated numbers.

Explainable score

  • Pure rules in a fixed order: exclusions zero the listing out, points start from a base of 50, a compression above 80 keeps the best ones from tying at 100, and penalties come last. Every step produces an explanation, which the site shows rule by rule.
  • Parity with the prototype: a test checks that the new score matches the old one on 5,388 real listings.
  • Calibration before changing rules: a command measures the score against listings I marked as good or bad, to see the effect of a new rule before it ships.

Collection and market

  • Polite collection: a single request budget for the whole process, inside the resilience pipeline, so even retries respect the pace.
  • Monthly snapshot: a daily picture per category and city. Each picture is checked before being saved, and only the good ones make it into the monthly report.
  • Grouping of reposted listings and a bookmarklet that sends a listing straight from the browser.

Engineering

  • Clean Architecture with one project per layer, so the compiler enforces that dependencies point inward.
  • 289 tests, including contract tests against a real PostgreSQL with Testcontainers, running in CI.
  • Automatic deploy when CI passes, with rollback, running as Windows services with PostgreSQL in Docker.

// cv.pdf

Download resume

Before the download, tell me who you are, so I know who to follow up with.

Your data is never shared and can be deleted whenever you ask.