Case study

OfferTrail

Job application tracker with a Kanban board, offline-first guest mode, and AI extraction of postings.

2026, Creator and sole developer

OfferTrail Kanban board with application columns

OfferTrail

What it is

OfferTrail is a production web application that helps job seekers track applications end to end. Every application moves through a drag-and-drop Kanban board, opens into a detail view with its own notes and follow-up reminders, and rolls up into an insights dashboard with interactive charts.

The app is local-first. Everything works offline in guest mode on IndexedDB, and when a visitor signs up, their local data migrates into their new account automatically, so no records are lost on registration.

Accounts sit on Supabase with Row Level Security per user, subscription billing runs on Cloudflare Workers with Stripe, and a companion Chrome extension scrapes postings straight from a job board into the app.

My role

I am the creator and sole developer. I scoped the product, designed the architecture, wrote the front end, the backend, the billing and the browser extension, set up continuous deployment, and I run it in production.

Stack

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • dnd-kit
  • Recharts
  • IndexedDB
  • Supabase
  • Postgres
  • Row Level Security
  • Deno edge functions
  • Cloudflare Workers
  • Cloudflare Pages
  • Stripe
  • Anthropic API
  • Vitest
  • Chrome Extension MV3

Highlights

  • Built and shipped a production web application that helps job seekers track applications end to end, taking sole responsibility for scoping, architecture, implementation, billing, and deployment.
  • Developed the front end in React 19 and TypeScript with a drag-and-drop Kanban board, per-application detail views, follow-up reminders for stale applications, and an insights dashboard with interactive charts.
  • Engineered a local-first architecture on IndexedDB for full offline guest-mode use, with automatic migration of local data into a user account on sign-up so no records are lost on registration.
  • Designed the backend on Supabase: Postgres with Row Level Security for per-user data isolation, email and password authentication, and Deno edge functions, plus AI-assisted extraction of job postings from screenshots and page text via the Anthropic API.
  • Implemented subscription billing on Cloudflare Workers (Stripe Checkout, webhooks, customer portal), transactional email, and continuous deployment from the main branch, with unit and component test coverage.
  • Built an accompanying Chrome extension (Manifest V3) that scrapes job postings and passes them directly into the application.

Gallery

Next project

Etivon

Read the case study