AI product · web, iPhone, Apple Watch

Refynes

Paste a job. Ryn tailors the resume.

An AI resume app I designed and built: a companion called Ryn rewrites a resume for each job, shows the ATS score, and runs on one glass design system in light and dark.

Refynes style picker in light mode: Modern selected with an ATS compatible label, Executive and Sidebar marked PRO, Sidebar flagged as an ATS risk
Ryn's tailoring card over the resume preview: matching your experience, keywords found, the match score at 73 and a Cancel button
Ryn's chat panel in dark mode with quick actions: improve this section, check ATS compatibility, tailor to a job
Role
Designer and builder
Scope
Product, design system, front end, AI flows
Focus
AI transparency, ATS clarity, light and dark
Scroll to explore
Mission

Tailoring a resume should take a minute, not an evening.

Most applications go through software before a person. Refynes rewrites the resume for each posting and shows the score, so people apply with a resume made for that job.

My contribution

I designed it, built it and shipped it.

From the first prompt to the paywall: the flows, the Ryn character, the light and dark glass system, the React app, the iPhone and Watch apps, and the AI calls through the Anthropic API.

8Resume designs, each labelled for ATS safety
15+Job sites in one search
3Platforms: web, iPhone and Apple Watch
197Design tokens, with light and dark values

The wait became the explanation.

Tailoring takes several seconds of AI work. It used to be a looping animation. Now Ryn’s card shows what is happening: reading the job, matching the experience, rewriting the lines, the keywords it finds and the score as it climbs. Then every edit plays back, one at a time.

Recorded from the app · example resumeSteps, keywords and score, then the edits.

Keywords appear as Ryn finds them, coral when missing and mint when matched. The score ring moves with the work, not after it.

Ryn's tailoring card: Reading the job done, Matching your experience in progress, keywords such as stakeholder management and banking, the score at 73, a progress bar and a Cancel button inside the card.
Cancel lives in the cardStopping is part of the design.

Cancel used to sit in a separate bar at the bottom of the screen. It moved inside Ryn’s card, beside the progress, and cancelling leaves the resume as it was.

The edit reel: Edit 4 of 5 for the Product Designer role, the old line struck through above the new line, progress segments and a Skip button.
The edit reelNothing changes without being shown.

Each rewrite plays back with the old line struck through and the new words highlighted, so users see exactly what the AI did to their resume.

Show people what the robot reads.

An ATS score is only useful if people can see why. One tap switches the resume to ATS View: formatting stripped, in monospace, the way a parser sees it. Styles say whether they are safe before anyone picks one.

Live resume preview for Maren Okafor, Senior Product Designer, with an ATS View button showing a score of 83.
The same resume in ATS View: monospace plain text with a note that formatting is stripped and yellow headers are non-standard.
Designed view · ATS viewThe change of typeface is the explanation.

Monospace, no color, no columns. Headers a parser may not recognize are flagged in yellow.

Choose a style: Modern selected and ATS compatible, Executive with PRO and ATS compatible, Sidebar with PRO and an ATS risk warning about multi-column layouts.
Ryn's panel: Hey Maren, I can help you move your job search forward, with quick actions such as Check ATS compatibility and Tailor to a job.
Warn before, not afterRisk shows on the choice itself.

Two-column styles say “ATS Risk” on the option, before someone applies with a resume a parser may scramble. Ryn’s quick actions put the same checks one tap away.

One glass, two lights.

The light theme had grown a grey haze, beige panels and solid teal selection slabs. I rebuilt both themes on one token set: the same names point at light values or dark ones, so every component works in both. Then I documented it atom by atom and measured it.

Style picker in light glass.
Ryn's panel in light glass.
Light glassCool canvas, a mint glow, emerald for action.

Selected cards are a soft tint with an emerald edge, never a solid block.

Style picker in dark glass.
Ryn's panel in dark glass.
Dark glassThe same components, mint instead of emerald.

No component knows which theme it is in. They only use names like surface.glass and action.primary.

The Refynes light theme before and after the glass redesign: grey haze and beige panels replaced by a cool canvas and translucent cards.
Measured, then fixedFive pairs failed WCAG AA. They now pass, in the app.

Building the library meant measuring every text and background pair in both themes. The fixes went back into the Refynes stylesheet, not just into the documentation.

  • Primary button label, light3.20 → 4.54
  • Accent text on mint chips3.89 → 4.62
  • Error and ATS-risk text4.02 → 5.25
  • Placeholder, light / dark3.55 → 4.90 · 4.32 → 6.12
  • Focus indicator1.36 → 6.05

Tokens for both themes, atoms through templates, a working Ryn tailoring card, and the measured fixes, as an interactive library.

Interview day is on the wrist.

The Apple Watch companion pairs with a code and does a few things well: a reminder the day before an interview, a two-minute briefing, a pitch to rehearse, and Ryn by voice.

Refynes on Apple Watch: Ryn on the wrist
Ryn on the wrist
Refynes on Apple Watch: Interview tomorrow
Interview tomorrow
Refynes on Apple Watch: Daily search rings
Daily search rings
Refynes on Apple Watch: Two-minute briefing
Two-minute briefing
Refynes on Apple Watch: Ask Ryn by voice
Ask Ryn by voice
Refynes on Apple Watch: Your pitch, to rehearse
Your pitch, to rehearse

How Refynes came together.

Four overlapping phases. Each one changed what the next one had to solve.

01

Start from the job posting

The core loop came first: paste a posting, get a resume rewritten for it, see the score. Every other screen exists to make that loop faster or more trustworthy, including the PDF import that reads two-column resumes in the right order.

02

Give the AI a face

Ryn started as a 3D model, rendered to sprites in Blender. Ryn guides empty states, answers questions and, most of all, narrates the tailoring run, which replaced an abstract loading animation.

03

One glass, two lights

An approved board, then a sweep of about 490 hard-coded colors onto one accent family and a shared set of glass tokens, so light and dark are the same components with different values.

04

Document, measure, ship back

The atomic library: tokens to templates, every pair measured in both themes. The five failures were fixed in the library first and then shipped in the app’s stylesheet.

The AI shows its work.

What shipped, what is not measured yet, and what I would take further.

What shipped

  • Paste-a-job tailoring with a live ATS score, on the web and in the iPhone app
  • Ryn's tailoring card with steps, keywords, a moving score and Cancel inside the card, followed by the edit reel
  • ATS View and ATS-safety labels on all eight resume designs
  • One glass design system for light and dark, documented as an interactive library with five accessibility fixes shipped back
  • An Apple Watch companion for interview reminders, briefings and Ryn by voice
Refynes at refynesapp.com

What was measured

Refynes is early and its user base is small, so no conversion, retention or hiring numbers are quoted here.

The call I’d revisit

I'd make the edit reel teach, not just show.

The reel shows each edit and lets people keep or skip it. It does not yet say why a change helps: which keyword from the posting it answers, or which ATS rule it fixes. One line of reasoning per edit would turn a review step into something people learn from for the next application.

What I’d instrument next

  • Share of tailoring runs cancelled before they finish
  • Edits kept versus skipped in the edit reel
  • ATS score change per tailoring run