Onboarding redesign II
Interviews with international and domestic students led to a resume-first flow that forks by visa status.
- 66% → 75%
- Completion
- 23
- Conversations in February
- 176
- Subscribers profiled
Problem
The 2025 flow told everyone the same story for eleven screens. The one screen that showed people something of their own, the resume grade, came ninth.
Nothing in it spoke to international students.
Research
In February 2026 I ran 8 user interviews and 15 discovery calls, each ending in a resume review. I read the resumes of our last 100 subscribers and coded the last 176 by background.
Then I pulled conversion by visa status in Amplitude.
International students
10 of 23 conversations, paraphrased from my notes
- 01Hundreds to thousands of applications, almost no callbacks. Several stopped counting because it hurt.
- 02Sponsorship is the first filter. They check it before applying, and career fairs end the moment they say the word international.
- 03They already used LinkedIn and Jobright. What they wanted was to know which companies take international candidates, and listings that are fresh that day.
- 04Resumes were often strong but buried under keyword-stuffed skills sections.
Domestic students and new grads
12 of 23 conversations, paraphrased from my notes
- 01Six to eight applications a week, all on LinkedIn. Most had never heard of the common job boards or repos.
- 02First jobs and interviews came through career fairs, clubs, family or a professor, not cold applications.
- 03Resumes undersold real experience: vague bullets, no numbers, odd templates. Advisors had told them it looked good.
- 04Many did not know a job hunt needs hundreds of applications, daily, with tailoring. Several were first-generation or transfer students with no one to explain the pipeline.
“Back in the day, we did not build for these people in mind so now it is a good idea to consider them.”
“They are often not super educated about what a job hunt is supposed to look like.”
Who converted
View data
| Group | Series | Value |
|---|---|---|
| Paid conversion, onboarding completers | Domestic | 3.21% |
| Paid conversion, onboarding completers | International | 1.68% |
Who paid
View data
| Group | Series | Value |
|---|---|---|
| Last 176 paid subscribers | Clearly international | 33.0% |
| Last 176 paid subscribers | Possibly international | 49.4% |
| Last 176 paid subscribers | US origin | 17.6% |
Insight
The product had never spoken to international students. They were half the users and converted at half the rate. Most domestic students did not know what a job hunt takes.
So: ask for the resume first, then one question, and fork the story.
Design
I moved the upload to step one and graded it in the background, asked the visa question at step two, and used the answer to fork steps three to six into two storylines. Sponsorship data and daily freshness for internationals, application volume and resume quality for domestics.
Eleven steps became eight.
01 / 08Resume uploadThe upload comes first. Processing starts in the background, so Continue unlocks as soon as a file lands. Click the drop zone to try it.
Domestic
International
Control, 11 stepsThe story flow from January 2025, as it ran in the test
Eight screens before the upload, seven of them story and screenshots
Step 9 of 11
Eight screens come before the upload, seven of them story and screenshots.
Treatment, 8 stepsApril 2026. Steps 3 to 6 follow the visa answer
Resume processing runs in the background (autofill, page render, resume score) while steps 2 to 7 play
Role evaluation starts on this click
Resume processing (autofill, page render, resume score) runs in the background while steps 2 to 7 play.
Role evaluation starts on the final click, once roles are chosen.
Know which companies actually sponsor before you apply.
OfferPilot tracks H-1B sponsorship history, PERM filings, and LCA data so you never waste time on a dead end.
- 01Top bar. Back drops its label and keeps the chevron; the pill corners and the progress bar square off to 4px.
- 02Headline. Left-aligned below 768px, at clamp(24px, 6vw, 36px), which is 24px on this screen. The subhead drops to 14px.
- 03Stack. Copy, button, then the mockup, which grows to the full column width.
- 04Continue. Full width, and every custom label (here “And there's more”) reads “Continue”.
Experiment
I shipped it behind a flag, assigned at signup: a third control, two thirds treatment, April 6 to September 27 2026. Every step reported its arm, and the new flow reported its storyline.
I wrote the failure condition down first. If completion and conversion did not move, targeted messaging does not work.
flow=domestic or flow=international.QA overrideA query parameter forces either arm, so both flows could be checked end to end on the live site.
GuardsFinished users are sent from any onboarding URL to the job feed. Unfinished users go back to step 1 of their saved arm.
FallbackNo flag, an error or a slow fetch all mean control, so the experiment never blocks a signup.
Result
Completion for new signups went from 66% to 75% (p < 0.001), and from 63% to 70% for everyone assigned. Inside the new flow the international storyline finished at 94%, against 89% for domestic.
Paid conversion per finisher did not move. That is the part of the hypothesis that did not hold.
The fork shipped with three other changes, so the credit goes to the research-driven redesign as a whole, not the messaging alone. The 8-step flow later became the only flow.
View data
| Group | Series | Value |
|---|---|---|
| Completion, new signups | Control, 11 steps | 66.4% |
| Completion, new signups | Treatment, 8 steps | 75.1% |
| Completion, everyone assigned | Control, 11 steps | 62.8% |
| Completion, everyone assigned | Treatment, 8 steps | 70.2% |
| Inside the treatment, step 3 to finish | Domestic storyline | 89.0% |
| Inside the treatment, step 3 to finish | International storyline | 94.4% |
Treatment, 8 steps
- Treatment, 1,322 starters
- 1Resume upload
- 2Visa question
- 3Storyline 1
- 4Storyline 2
- 5Storyline 3
- 6Storyline 4
- 7Education and role
- 8Categories
- 9Completed
View data
| Step | Treatment, 1,322 starters |
|---|---|
| Resume upload | 100.0% |
| Visa question | 82.3% |
| Storyline 1 | 80.6% |
| Storyline 2 | 78.7% |
| Storyline 3 | 78.3% |
| Storyline 4 | 77.9% |
| Education and role | 77.3% |
| Categories | 75.6% |
| Completed | 74.4% |
Control, 11 steps
- Control, 685 starters
- 1Intro
- 2Two reasons
- 3Reason 1
- 4Job feed preview
- 5Match score preview
- 6Categories
- 7Reason 2
- 8Resume grade preview
- 9Resume upload
- 10Education, role, visa
- 11Weekly goal
- 12Completed
View data
| Step | Control, 685 starters |
|---|---|
| Intro | 100.0% |
| Two reasons | 92.3% |
| Reason 1 | 90.8% |
| Job feed preview | 88.6% |
| Match score preview | 85.5% |
| Categories | 84.5% |
| Reason 2 | 74.9% |
| Resume grade preview | 74.5% |
| Resume upload | 73.9% |
| Education, role, visa | 63.8% |
| Weekly goal | 62.9% |
| Completed | 62.8% |
What I would do next
Measure the messaging on its own, with the fork as the only variable. Then put the sponsorship data in the feed itself, where the conversion gap lives.