Offboard Job Search Platform
One workspace for a role, with research and drafts that stay connected. Automation does the repeated work; the person decides what goes out.

- People in a career transition rebuild the same context across a dozen disconnected tools. AI that only writes more documents can push them toward roles that are not worth it.
- As founding designer, I designed and engineered Offboard end to end: a workspace for each opportunity, an AI pipeline that checks a role before tailoring anything, drafts the person reviews before use, and a plan-first start for people not yet ready to apply.
- A live product. In early signups, most people finished onboarding and ran a ghost check, but few built a packet in their first days. That gap is the case for starting with a plan.
On this page
A job search splits across separate tools: research, resume, outreach, and tracking. I designed and engineered Offboard to connect that work, from product direction to operation. This story follows Job Packets, which turn a role into research and editable application materials.
I made the opportunity, not a tracker row, the organizing unit. It holds the role, company, people, research, materials, preparation, tasks, and history. LUMO, the AI layer, works across that context.

The packet assesses the role first. A risk gate can pause it so the person decides whether to continue. The gate is a warning, not proof that a listing is fake.
The risk gate
- Role submitted
- Role intelligence
- Risk assessment
- Flagged?
If YesPause for the user's choice
- Continue to tailored materials



Outputs stay editable drafts. Nothing sends itself to an employer. With no resume, the packet comes back partial instead of inventing experience. Filing into the tracker is automatic. The line sits between organizing work inside the product and speaking for the person outside it.
Draft, review, decide
- Prepare research and drafts
- File results in the workspace
- Person reviews and edits
- Person decides what to use

The workflow parses the role once and shares that research with resume work, outreach, and interview preparation. Reuse buys consistency at the risk of stale information.
A packet assumes the person already has a role worth pursuing. Someone new to a career transition may first need direction and a manageable next step. Early data, below, showed that gap.
So I made the start plan-first and moved packets later. The question became “Can this person take their first useful action?”

I built it with AI development tools in the loop. The client runs Vite, React, TypeScript, Tailwind, and shadcn/ui. Supabase Postgres enforces per-user row-level security. Deno edge functions run server-side work.
How data and actions move
- Client applicationVite · React · TypeScript · Tailwind · shadcn/ui
- Authentication and access controlRow-level security per user
- Opportunity data modelSupabase · Postgres · RLS
- Server-side functionsDeno edge functions
- Model APIs
- External research
- Document generation
- Results written back to the workspace
The screenshot at the top shows a completed Job Packet ready to send: fit, ghost risk, and materials together, with LUMO beside them.

Offboard is live. Usage numbers stay private. The signals below show where people stopped, not revenue, long-term retention, or the effect of the plan-first change. The numbers are test and system results.
- The drop is the first packet, not onboarding. Most people who signed up in August 2026 finished onboarding and ran a ghost check. Few built a packet in their first days.
- The next problem is the second packet. Most members who built a full packet built only one.
- The ghost check spreads on its own. One LinkedIn post drove a burst of public ghost checks within a day.
- Quality is measured. In September 2026, job search put the right role in the top ten for all 20 test queries, up from one. LUMO passed 29 of 29 test cases, 22% faster, at about 80% lower model cost per run.
- The system holds up. The backend (188 functions, 175 tables) moved to a new Supabase project with about six minutes of downtime, no data lost, and no one signed out. It runs more than 200 server functions and about 4,500 automated tests.
A polished workflow can ask for the wrong commitment at the wrong time. Next, I would test the first journey with people at different stages of a transition, watch where they hesitate, and check that the next step is useful before measuring output.
