Contact
Back to case studies

Magpie

A job radar that watches the companies you want to work for, scores every new posting against your resume, and only speaks up when the right one appears.

Magpie
ClientSelf-initiated
RoleProduct, Design & Build
Timeline2026, in active development
TeamSolo, end to end
ScopeLive SaaS product, designed and built solo
Year2026

The brief

I was spending forty-five minutes every morning being a filter: eleven career pages, eleven tabs, each on a different ATS with its own broken email alerts. Job boards are no help, because they are paid by employers for volume, not by me for relevance, so they hand you two hundred listings and expect you to sort them. Ghost jobs waste weeks, spreadsheets die by week three, and nothing ever tells you why you are losing. None of these are hard problems. They were just problems nobody had solved in one place, because the incentives point the other way. So I built the thing that is paid by you.

The challenge

The real work was everything after the build, the last twenty percent that most side projects never reach. Detecting ghost jobs with no dataset of confirmed fakes to learn from. Watching careers pages that have no API, not just the nine ATS platforms that do. Making a React single-page app legible to search engines and AI assistants that never run the JavaScript. And then the parts that turn a demo into a product: a Stripe webhook that has to be idempotent, a privacy policy that has to be true across two jurisdictions, security that has to hold on every public endpoint.

How I ran it

  1. 01Made scoring deterministic arithmetic over a skill taxonomy, not an LLM, so every score is free, instant, identical each run and fully explainable, then reserved AI for the two jobs it is genuinely better at.
  2. 02Detected ghost jobs by tracking behaviour instead of classifying: first seen, last seen and a repost counter, presented honestly as evidence rather than a verdict.
  3. 03Built nine ATS adapters plus a generic careers-page parser that uses AI to extract job links, caching each board's structure so the expensive step runs once per company.
  4. 04Moved metadata to the server (per-route titles, canonicals, Open Graph, JSON-LD) and shipped an llms.txt, so the product is discoverable by crawlers and quotable by AI assistants.
  5. 05Shipped the whole product: Stripe subscriptions, PDPA and GDPR legal, a hashed-script CSP with HSTS and rate limiting, and 243 tests across scoring, paywall, scrapers, auth and security.

What I managed

  • Product strategy
  • UX/UI design
  • Frontend (React 19)
  • Backend (FastAPI)
  • Scrapers & scoring engine
  • AI integration
  • Stripe billing
  • Legal, SEO & security
Outcome

A live, paid product built entirely solo, from the scrapers and scoring engine to Stripe billing and a dual-jurisdiction privacy policy.

  • Live at magpiejobs.com on a custom domain, with real Stripe subscriptions in production.
  • Tracking 8,770 open postings across 138 job boards, filterable by 108 countries.
  • Around 38,000 lines of code, solo: React 19 and TypeScript frontend, FastAPI and Postgres backend, 21 scraper modules.
  • A deliberate decision to build the last twenty percent, the legal, billing and hardening that separate a portfolio piece from a product.
Magpie photo 1
Magpie photo 2
Magpie photo 3
Magpie photo 4
Magpie photo 5
Magpie photo 6
Magpie photo 7
Magpie photo 8

Have a project like this?

I’m available for project management and delivery work. Tell me what you’re building and let’s map it out.