Project

Work Radar

A local-first desktop app for managing a job search end-to-end — from discovery through offer or close.

Live Desktop AI-assisted
Work Radar jobs board interface
Jobs board

Drag-and-drop Kanban across every stage — Decide, Applied, Screening, Interviewing, Done. Search with ⌘F. Archive a column in one click.

AI generation

Tailored resumes and cover letters grounded in your bio. Anthropic, OpenAI, or Gemini — your choice. Nothing is invented.

Contacts

Track recruiters, hiring managers, and connectors alongside the roles they relate to.

Scoring

Three-lens fit score: evidence from your work history, alignment to your ideal role, and practical constraints.

History

Every stage change, import, outreach draft, and asset generation is logged with a timestamp. Nothing gets lost.

Browser extension

Capture a job from any page and send it directly to the board. Confirming an application from the extension moves the card automatically.

Job search tools are almost all built for recruiters or for volume — tracking applications like tickets, optimizing for throughput. I needed something that helped me think clearly about fit: whether I could credibly do the work, whether I actually wanted to, and whether the practical realities lined up.

I also wanted a record that was honest. Every action logged, every stage transition timestamped, every piece of generated content grounded in real work history — not optimized for polish. Work Radar runs locally, keeps nothing in the cloud, and gives full CSV export. It's built to be used seriously, not to game the process.

1 Capture

Paste a job, upload a CSV of past applications, or send from the browser extension. Data is normalized and deduplicated on the way in.

2 Score

Each opportunity is scored across three lenses: evidence fit (can you do it?), preference fit (do you want it?), constraint fit (can you take it?).

3 Work the board

Drag cards through stages. Set next actions and follow-up dates. The board is a view over persistent records — not the source of truth.

4 Generate assets

Produce a tailored resume or cover letter. Output is grounded in your bio — the model can't invent experience you don't have. Files are saved locally.

5 Track contacts

Link people to roles. Log every touchpoint. Know who you've talked to, when, and what was said.

6 Review & close

The history log shows where time went and what converted. Archive what's dead. Close what's done. Export everything to CSV whenever you need it.

  • Electron's process separation (main vs. renderer via IPC) is the right constraint — it forces a clean boundary between business logic and UI that pays off quickly when the app gets complex.
  • SQLite via better-sqlite3 is fast and simple. Keeping current state and event history in separate tables was the right call — it made audit logging straightforward and didn't corrupt the board view.
  • The browser extension + local HTTP server pairing works well. The extension is a capture tool, not an automation bot — that distinction matters both technically and ethically.
  • Grounding AI generation in a structured bio file prevents hallucination more reliably than prompt instructions alone. The model can only work with what's there.
  • The hardest product problem was surfacing "what needs attention right now" without cluttering the board. Metadata fields (next action, follow-up date, priority) handled it better than extra columns.
  • React 18 + Tailwind in the renderer works smoothly. Vitest + better-sqlite3 in the main process covered the cases where correctness mattered most — import normalization, scoring, stage transitions.

Experiments

View all experiments
Florida political map showing county-level results

Experiment

Florida Politics

An interactive map revealing how political control shifts across counties over time, based on real election data.

View experiment
Where Now? location pin illustration

Experiment

Where Now?

A random food and trip generator for the Lisbon area. Built for the moment when indecision wins.

View experiment