FairJobs — fairjobs.app
A Dutch job board that builds its own inventory — scraping vacancies straight from companies' ATS, on a schedule.

Outcome
- ✓77,000+ live vacancies across 400 Dutch cities, all harvested automatically — no paid feed.
- ✓Location-radius search across the Dutch market.
- ✓A reusable jobs API that became the backbone of FairApply.
My role
Founder and sole engineer — data pipeline, API and frontend.
The challenge
Job boards live or die on inventory, and buying feeds is expensive and goes stale fast. I wanted a board that finds vacancies at the source — companies' own applicant-tracking systems — and refreshes itself automatically, so it never depends on a paid feed.
What I built
A React job board backed entirely by Supabase: Postgres for the data, and Deno Edge Functions for a scheduled scraper and a public jobs API with location-radius search — an API that also powers FairApply.
How it works
- A scheduled Edge Function scrapes companies' ATS platforms and upserts fresh vacancies into Postgres, de-duplicated.
- The /api/jobs Edge Function does phrase-accurate search plus filters — radius via geocoded city coordinates, job type, experience, freshness and easy-apply.
- The same API is consumed by FairApply — one data layer, two front-ends.
Stack & why+
Ready to make AI actually work?
Products that do real work.
10 live communities, each on its own branded subdomain from a single deployment — with tenant isolation enforced by 51 row-level-security policies across 23 tables, not by application code.
FairApply — fairapply.appA job-application product on top of my own FairJobs API: Claude parses your CV and generates tailored motivation letters, with webhook-verified Mollie payments and Brevo email.