VIRTUAL INTERNSHIPS · 2026
B2B
Web app
HR tech
Employers started deciding, candidates stopped waiting
Hiring decisions were stuck for days. Built a nudge system that moved hire/pass decisions in-app - cutting time to hire from 4.7 days to 1.1 days.
MY ROLE
Product Designer
TIMELINE
Jan - Feb ‘26
RESEARCH
Spot feedback · Interviews
OWNERSHIP
Discover & research
Problem framing
UX & visual design
Handoff
Post release analytics
ABOUT THE PRODUCT
Virtual Internships is a remote internship platform. The entire hiring loop - scheduling interviews, tracking candidates, and making the final call - happens within the platform.
1
Schedule interview
Company sets a time via VI. Intern gets an invite.
→
2
Interview happens
Conducted externally. VI marks it complete.
→
3
Hire or disqualify
Back on VI. This step only exists inside the platform.
THE USER
Hiring manager at a host company
Founder
Team manager
HR lead
VISITS VI
Occasionally, not daily
GOAL ON PLATFORM
Hire the right intern, fast
BLIND SPOT
Interview done - and they're off. No one told them the offer had to come from VI.
THE PROBLEM
When a company schedules an interview, the candidate is locked to that company for 14 days - they can't be approached by or apply to anyone else on the platform. Companies were taking an average of 4.7 days post-interview to create an offer, silently eating into that window. Placement velocity dropped. The ops team had to manually chase each company to remind them to act.
Scheduled on VI
Interview complete
4.7d
No action.
No signal.
?
Hire / disqualify
CANDIDATE
Locked to one company for up to 14 days. Job search on hold. No update received.
COMPANY
Never told that rolling out an offer had to happen on VI. No guidance, no nudge - so they simply didn't know.
OPS TEAM
Manually chasing companies one by one. Placement velocity falling. This wasn't scalable.
IDENTIFYING THE BLIND SPOTS
Post interview scheduling flow

Interview scheduling successful popup

Manage hiring kanban page - user is auto redirected here

Intern profile

Interview details page
User returning to platform

Dashboard

Manage hiring kanban board
1
Wrong colour semantics
Interview complete shown in green - felt "done", not "action needed." Colour was lying to users.
2
No time-awareness
Zero indication of how long a candidate had been waiting. Silence looked the same whether it was 2 hours or 5 days.
3
Disconnected flows
No guidance that the offer had to be created from Manage Hiring. The interview and the next step felt like two unrelated things.
4
No off-platform hook
If a company closed the tab, nothing pulled them back. Existing emails were generic, low urgency, easily ignored.
DESIGNING A NUDGE SYSTEM
⚡️
Interview ends
Trigger event fires
→
🔴
In-product nudges
Informing offer creation · Guiding user to take decision
→
📧
Off-platform nudges
Automated email workflow
→
✅
Decision made
User decided to hire / disqualify the candidate
FLOW 1
Post interview scheduling: micro-animations + coachmark
Right after a company schedules an interview, they're redirected to Manage Hiring. A ripple animation highlights the candidate's card, and opening the intern profile reveals a coachmark that explicitly tells them what to do next - and where.

1

2
1
Micro-animation on card
Pulses on the candidate whose interview was just scheduled, drawing the eye immediately.
2
Coachmark on hover
"Next steps on Manage Hiring" - first time the platform tells users the offer has to come from here
FLOW 2
User returns to the platform after some time: badge + quick CTAs
For companies who logged off and came back days later, the notification badge on the nav is the first signal that something needs attention. Opening Manage Hiring shows the decision pending state with quick-action CTAs - no profile load required.

1

2
4
3
1
Badge on Manage Hiring nav
visible on every page the moment the user lands, before they've opened anything
2
Count badge on nav
consistent signal carried through from dashboard into Manage Hiring
3
Red tag + blinker - "Interview complete · decision pending"
reframes completion as the start of the next step
4
Disqualify + Provide evaluation
quick CTAs on the card itself, decision in one click without opening the full profile
STATUS TAG REDESIGN
HIRING STAGE
STATE
OLD
NEW
In interview
Interview complete
Interview in past
· Decision pending
In interview
Intern requested reschedule
Intern requested reschedule
· Action pending
In offer
Offer in draft
Offer in draft
· Action pending
In offer
Offer needs revision
Offer needs revision
· Action pending
AUTOMATED EMAIL WORKFLOW
HIRING STAGE
TRIGGER
PURPOSE
CTA
Interview is complete
30 mins after interview end time
Per candidate email to confirm if interview happened
Extend offer
Disqualify
Couldn’t interview? Reschedule
Interview is complete
Monday and Thursday in interviewer timezone
Biweekly reminder of list of candidates awaiting decision
Finalise hiring
Offer is in draft
>1d, >3d and >7d have passed since offer_creation_started_on timestamp
Per candidate email reminder after 1d, 3d and 7d to complete and send offer
Send offer
No longer interested, disqualify candidate
WHAT CHANGED
BEFORE
No guidance that offer creation lives in Manage Hiring
Interview complete shown in green - felt like the end
No elapsed time, no urgency signal on cards
No nav signal that action was pending
No off-platform nudges to remind users
AFTER
Popover on Manage Hiring tells users exactly what to do next
Interview complete = red + blinker + "Decision pending"
"X days ago" makes the cost of waiting visible
Badge in the navigation bar with count of items pending user action
Automated email workflow with systematic reminders
RELEASE PLAN
1
Inform
Coachmarks + micro-animations show users where to create an offer on-platform
2
Signal
Semantic redesign makes pending hiring decisions impossible to miss on return
3
Recover
Triggered email reminds users to come back to the platform
IMPACT
4.7d
avg. decision time before
→
79% FASTER
1.1d
avg. decision time after
Single click decision
Extend or disqualify directly from the card - no extra navigation
Faster placements
Candidates freed from the 14-day lock 3.7 days sooner on average
Reduced ops overhead
Automated nudges replaced the manual follow-up loop entirely
WHAT I’D CARRY FORWARD
01
Disconnected flows are invisible until you map them
Users weren't forgetting - they genuinely didn't know a step existed. The product had never connected "interview done" to "go to Manage Hiring and create an offer." Mapping the full journey end to end surfaced this in a way heuristics alone wouldn't.
02
Colour semantics are worth fighting for
Green for "interview complete" felt logical to engineers - task done. But it told users "no action needed." Changing it to red cost zero engineering effort and drove the biggest single behaviour change.
03
Guidance beats reminders
The ops team was sending reminders that said "please create an offer." What users actually needed was to be shown where and how to do it. The popover did more than any chaser email.