Case studyProduct design, 0 to 1
: A referral request built to be answered
Referral DMs to strangers mostly go unanswered, and the candidate never hears back. SideDoor is an iOS app that turns the DM into a complete, proven request, and shows both sides where it stands. I designed and built it: a working prototype, plus a Chrome extension that fills the company's portal.
The problem
A referrer asked by a stranger has to chase the job ID, the date of birth and the career gaps before they can refer. Most don't bother, and the candidate never finds out.
What I designed and built
A request that carries everything the company's portal asks for, fit shown skill by skill with the line that proves it, and a status passed back in one tap. Plus a Chrome extension that fills the portal from it.
Why it matters
Referrers are the scarce side of this marketplace. If each request takes them minutes, more get submitted, and that is the number I'd judge it by.
The prototype, on video
I know your time is short, so here’s the whole app in four minutes.
If you’d rather watch than read, this is the quickest way through SideDoor. Abhinav asks for a referral on the left, Nithin gives one on the right, and each step one of them takes shows up on the other’s phone. It’s recorded from the working prototype, so what you see is what the app does.
Want to use it yourself? Open the prototype, with every screen and state.
Act 1The problem
Ever asked a stranger for a referral and heard nothing?
Samarth has. For a role at Razorpay they messaged two or three people on LinkedIn, with a formal note and a resume. "My message was not even read."
The other side
Referrers skip strangers because of the admin.
Riya refers people at Accenture, and Samarth at Infosys. Neither worried about a stranger turning out badly. What they described was chasing details: a job ID, a date of birth, the gaps in someone's career, then typing it all into the company portal by hand.
"they don't share the job ID, which irritates me a lot... I will not take the pain and go and check for it"
Riya, as a referrer
"having to constantly ask candidates for additional details, as many assume that just sending a resume and phone number is enough"
Samarth, as a referrer
Eight interviews, 162 notes, five clusters. See the whole research board, from the business lens to the tests.
The candidate
And the candidate reads silence as a no.
Nothing comes back, so they guess. The same people, asking for referrals themselves, described it from the other end.
"You can say 80% of the time they don't reply."
Riya, as a candidate
"I would never know what actually happened. If they ever applied in reality or not I'm not sure."
Riya again
The limits
I can't see inside a company's portal, and neither can LinkedIn.
So the status has to come from the referrer, and the request has to carry what the portal will ask for before anyone opens it.
What I had to work around
- Nobody outside a company can read its referral portal. Not LinkedIn, not me.
- Signing in with LinkedIn gives a name, an email and a photo. No work history.
- Four people, each seen from both sides. Anything only one of them said is marked as one.
How it's different
Job apps help you apply. SideDoor makes a referral easy to give.
Three things no other job app does.
The request can't be sent until it has everything the company's form needs
Each matched skill links to the line in the candidate's work that shows it
Referring ends with Mark as submitted, so the candidate always hears back
Act 2The design
A request that arrives ready
Abhinav, a product designer at Blinkit, wants a job at Flipkart. Nithin, a design manager there, refers for it. They're sample people. The phone screens are from the Figma file, and the browser screens are from the working extension.
Scene 1Finding a job
He only sees jobs where someone will refer him.
How does a candidate know which ask is worth making? Each card says who refers, how well he fits, and whether that person is full this week.
Jobs with someone who refers
no cold DMs to guess at
Full this week
said up front, not left to silence

4 of 7 skills, before he asks
and what he shares with Nithin
Scene 2Before asking
He sees how he matches, and what asking costs him.
Why spend a request on a bad fit? A skill counts only when his work or resume shows it. He gets 14 requests a week, so each one is a choice.
How you match
found in your work, related, listed only

Uses 1 of your 14 this week
referrers answer because each one is chosen
Scene 3Asking
Flipkart's portal needs four things his resume doesn't have. He adds them once.
How does the request arrive complete? It won't send until it is. The details the portal asks for are saved for his next request, and he says whether he was referred to Flipkart in the last six months.
Still needed · 4
asked once, saved after

Referred here in 6 months?
Riya's company refuses a second one
Scene 4The referrer's list
Nithin sees the best fit first, with the reason on the card.
How does a referrer decide on a work break? Requests are ordered by fit, most skills first. Anyone under his minimum years is folded away but still there, because Samarth refers borderline people on purpose.
Fit on every card
the reason, before he opens it
Lower match, folded
one tap away

Suggested for this job
people who chose to be found
This is the end of his list. It starts with Sneha, at 6 of 7 skills.
Scene 5One request
What would stop it comes first, then the fit.
What does a referrer check, in order? City, years and notice period, then whether he was referred to Flipkart recently. Then every skill the job asks for, with where it was found.
The blockers
the six month line names its source
Listed only
shown, never counted

Found in their work
each skill says where
Scene 6Checking a skill
He taps a skill and reads the line SideDoor found.
Why should he trust a tag? He doesn't have to. The line comes from Abhinav's own project page, and the link is right there.
The line, and where it came from
open the page to check

Scene 7Referring
He refers, and every detail the portal asks for is ready to copy.
How does the data get into the portal? Every detail is there in the portal's order, with a copy button each. Or he emails it all to his work inbox, resume attached, and fills the portal in from his laptop.
Email to me, or Copy all
resume attached

In the order the portal asks
the answers Abhinav gave once
Scene 8On his laptop
Nithin opens Flipkart's portal, and the extension fills it in.
Can a dozen fields fill themselves? The extension fills each one, resume attached, and outlines it green. It leaves his own questions to him and never presses Submit.

A demo portal I built to test it, with some labels worded oddly on purpose. It filled everything of Abhinav's that SideDoor knows. The only gap is his expected CTC, so that's the one thing it asks him.
Scene 9What the portal still needs
Anything missing is drafted to Abhinav. Nithin decides whether to send it.
What if the portal wants something the request doesn't have? The extension drafts the ask and Nithin sends it. Abhinav answers in the app, and it fills in next time.



To try it: unzip, open chrome://extensions, turn on Developer mode, choose Load unpacked, then open the demo portal and click the SideDoor icon.
Scene 10Done
One more tap, and Abhinav knows it's in.
Marking it submitted is the last step of referring, while the portal is still open. The candidate sees the stage and what usually comes next.


The candidate's screen is one of Abhinav's other requests, at Meta.
Scene 11No app yet
Strangers don't need the app to ask.
Nithin pastes one link into a LinkedIn reply. A stranger drops a resume, checks the details, and sends a complete request without installing anything.


Scene 12When it breaks
When something goes wrong, it says what's still safe.
There are 77 states in the prototype. Three of them: nobody answered, the request didn't send, and the phone is offline.



In Figma
Every screen, on one canvas.
The final version in Figma: ten flows, with every state on the right. Open it full size to zoom in.
Act 3Behind the scenes
The first version was built on the wrong idea
These are the moments that changed the design, roughly in the order they hit me.
Where it started
Before I built anything, I asked LinkedIn what breaks in referrals.
The reply that stuck came from Immanuel Varghese, who is building Superfolio. I agreed with him, and my answer is the trust idea in its first form.
Half of it held up. Every skill on a request now shows its proof. The scores I built on it didn't survive the interviews.
The bet that died
I thought referrers didn't trust strangers. They said the problem was work.
The old SideDoor was built on trust: a match score, graded recommendations, spam limits. Samarth said a bad hire after interviews "should not fall on the referrer". Riya's rule is just the job ID. And the bonus doesn't make up for it. Riya called it "very low".
What I believed
Referrers can't judge strangers, so they need scores
What they told me
The request makes them do the candidate's work
That made the score screen and the swipe cards worthless.
Before and after
Version 2 sold a score. Version 6 shows the evidence.
Version 2 was a swipe app with a 9.4 Strong Fit badge. A decimal looks precise, and nobody can check it. Now fit is a count, and every skill says where it came from.


Pushing back
My mentor said to make it a LinkedIn feature. I didn't.
The argument was fair: why would a referrer join a new app? I kept SideDoor separate because the work sits between LinkedIn and the company's portal, and neither owns it. A referrer also gets something on day one, from a link they send to a stranger.
"a link is sent to the candidate to fill out their own personal details, which would cut the referrer's effort by 50%"
Samarth, as a referrer. The link page is their idea.
The risk I kept
All four people I interviewed ask for referrals on LinkedIn today. If referrers won't send the link there, this whole bet fails.
That's reasoning. It hasn't been tested.
My mistake
I asked referrers to come back later and update a stranger.
My first plan had the referrer return to mark each referral as submitted. Then I asked why they'd bother. Version 2 went further, with six stages to update by hand. Now Submitted, the update the candidate waits for, is the last tap of referring. The later stages are optional. Once a week the referrer is asked "Seen it move?", and the candidate can mark a stage from the company's email.


The extension
Every portal is different, so the extension has to know when to stop.
I can't test it against every company's portal, so I wrote down what it does when it isn't sure. It fills what it can, says what it left, and never guesses.
Labels this referrer already confirmed on this portal
The candidate's own answers, then rules for common labels, first and last name split from the full name
AI for odd labels, only when it's 85% sure, each one listed with Wrong?
A guess, the referrer's own questions, or Submit
It has only run on my demo portal. Real portals, and the AI matcher live, are the next test.
Proof
A skill you only typed doesn't count.
A candidate could tag any skill on their own project and push their match up. So SideDoor reads the linked work and the resume, and a skill counts only when it finds it there. That makes faking harder, though it can't stop it. The interview is still the last check.
Found in their work
Related: a nearby skill, the referrer decides
Listed only
Not in their work or resume
The reading rule is my call. The interviews only tell me referrers check the resume against the skills.
The question
Nithin's one question shut out most people who'd apply.
A referrer can ask every candidate one question. Mine asked about a checkout trade-off, but Nithin can't know who will apply, and most designers have never worked on checkout. Now it asks about a skill. The field starts empty so the question is his own, and if he gets stuck SideDoor suggests one per skill from the job description.
His question, written first
ask about a skill, not a product

Suggestions only when asked
one per skill, marked as AI
Seven rounds
I spent seven rounds on a green banner. Then I deleted it.
The request used to open on a brand green card. I tried a photo on it, a name, a cover image, a match line. White on that green is 2.54 to 1, well under the 4.5 text needs, and every round pushed the evidence further down.
Photo, name and role on green
A cover photo, dropped because it invites bias
"4 of 7 skills match" in white, at 2.54 to 1
No banner at all
Deleting it moved the evidence up by a banner's height. If a pattern needs seven rounds, I now ask whether it should exist.
Attacking it
I tried to break my own screens. I guessed 1 break out of 13.
I threw empty lists, long names, bad input and slow networks at it, and wrote down what I expected first. The ones I missed were empty screens, wrong input and waiting. On the last pass, three quick taps on Send took his requests left from 2 to 0. That's fixed now.
No real user has broken it yet. That comes next.
What made the cut
Two sides, one designer. Most of the arguments were about what to leave out.
What went into the app, and what stayed out, with the reason for each. Most of the old SideDoor ended up on the right.
In the app8
Must
No send until the request is complete
Riya and Samarth both drop requests with missing details. So Send stays off until the job ID and everything the portal asks for is there.
Fit with proof
A skill counts only when SideDoor finds a line on the resume that backs it up.
Mark as submitted inside Refer
A referral is real only once it's on the company's portal. Marking it is one tap while the portal is still open.
Every state, including the broken ones
When I attacked my screens, this is where they broke. Most of those states are designed now, and a few are still open.
Should
A Chrome extension that fills the portal
I first left it for later, because every portal is different. But copying field by field was still the slowest part of referring, so I built it. It fills only what it's sure of.
Email to me and Copy all
For a laptop without the extension, Email sends everything to the referrer's work inbox. I haven't asked referrers which they'd use.
Suggested candidates
Referrers asked for matches. Each job shows the best fits who let referrers find them, and an invite becomes a complete request.
The six month check
Portals refuse a second referral within six months, and people don't remember when they last applied.
Left out5
Could
"Usually answers in 2 days"
Indeed shows this. I need real reply data before I can show it honestly.
Won't
Charging candidates to reach referrers
Referrers are the side that's hard to get. If candidates could pay to reach them, their inbox would fill with paid requests.
Points and badges
Both referrers said the bonus isn't why they refer. Hearing that it helped someone is a better reason, so the candidate's thank-you reaches them.
Swipe
Swiping is made for going through lots of cards fast. A referrer deciding on a stranger needs to see their experience and proof first.
Reading the company's portal
I can't get inside it, and neither can LinkedIn. The referrer can, so the status comes from them.
Act 4What's next
Nobody has used this yet
No real person has tested it, so there are no results. Here's what I'd watch, and what would prove me wrong.
What I'd watch
One number to move, one to protect.
Referrers are the scarce side, so they never pay and are never sold to candidates. Both sides are free at first. Companies already pay referral bonuses, so they're the likely payer later.
Goal
Referrals submitted per active referrer, each month
The number this should move
Limit
Referrers who turn requests off
Must not go up
Risk
Requests with no answer after 7 days
Silence is the problem, so watch it
What kills it
I wrote down what would prove me wrong.
The next test is eight referrers in tech using their link for two weeks. If either of these happens, the idea is dead.
1 in 5 comes from Riya: "80% of the time they don't reply." A complete request has to beat that.
Next
Samarth and Riya try it next.
Two sessions, each of them as a candidate and then as a referrer, ten tasks. Then the extension on the portals at their own companies. I'll change the design, and this page, based on what breaks.
Keeping
What I'm taking to the next project.
Each one comes from something that went wrong on this project.
1A cut needs a reason, same as an addition.
In version 3 I removed the swipe cards, and the experience and projects inside them went too. Those were exactly what referrers read. I put them back. Now I write down why before I cut anything.
2If it takes seven rounds, ask whether it should be there.
I spent seven rounds on the green banner at the top of a request. Every round pushed the evidence further down. Deleting it moved the evidence up by a banner's height.
3Guess what will break, then check.
Before attacking my screens, I wrote down what I thought would fail. I'd predicted only 1 of the 13 breaks I found. I expected long text to cause trouble, but the real breaks were empty screens, wrong input and waiting, so now I check those first.
Thanks for reading.
Got a question, or a better idea? I'd love to hear it.


