All projects

Case study · 2026

Reslift

Modelling experience once, then building documents for each application.

My role: Product and system design, full-stack implementation and launch

Visit site (opens in new tab)
reslift.io
Reslift resume product website

Overview

Reslift started with my own application process: many versions of my resume, repeated customisation and no reliable place to keep track of my experience. I designed and built a product that separates the information from the document it eventually becomes.

The problem

Duplicating a document for every application makes it difficult to know which experience and wording are current. It also makes targeted editing awkward: a resume contains distinct sections, experiences and bullets, but a single document hides those boundaries from the application.

What I built

I made experience reusable and independently editable, then used it to assemble resumes for individual roles. The product combines that model with AI recommendations, document import, PDF generation, authentication and payments.

  • An experience library and independently editable resume content.
  • Job-specific feedback and suggested edits that users can review.
  • PDF import, document export, cover letters and application tracking.
  • Account authentication and payment integration.

Design decisions

Separate the data model from the exported document

Resume sections, experiences and bullets are represented through relational records rather than one monolithic document. Individual pieces can be retrieved and edited, then assembled into a resume. Flexible structured fields use JSONB where it fits, including cover-letter sections and ATS feedback; the core resume model is relational.

Make AI edits targeted and reviewable

The structured model gives recommendations a specific target, such as a bullet, rather than requiring a whole-document replacement. Suggested changes can be reviewed before they become part of the resume.

Treat PDF layout as a separate engineering problem

Resume content has variable lengths, so a browser layout alone does not solve export. PDF templates use explicit margins, spacing and wrapping controls to handle sections and entries across pages. This adds layout logic alongside the application's editing model.

Normalise imported content into the application model

The current import flow accepts PDF resumes. Extracted content needs to become structured experience that the user can review and edit, rather than remaining an opaque uploaded file.

Trade-offs

  • Independent editing adds retrieval and document-assembly work compared with storing a single document. I accepted that complexity for the ability to reuse information and make targeted changes.
  • Flexible document content requires explicit pagination and wrapping decisions. Export templates need to account for content length as well as appearance.

The outcome

Reslift is a shipped product with a reusable experience library, tailored resumes, cover letters, application tracking and PDF export. Authentication and payments complete the product beyond its core editing workflow.

Technology used

TypeScript · Next.js · PostgreSQL · Supabase · React PDF · Stripe