Design a System That Generates Personalized Recruiter InMails at Scale

Read the full interview experience this question came from →

Quick Overview

Design a machine learning system that helps recruiters draft personalized InMail messages for candidates found in a pool of over a billion members, based on each candidate's profile and the job's requirements. It tests personalization signal selection, grounded text generation, safety, evaluation against reply rates, and serving cost at scale.

Design a System That Generates Personalized Recruiter InMails at Scale

Company: LinkedIn

Role: Machine Learning Engineer

Category: ML System Design

Difficulty: hard

Interview Round: Technical Screen

Recruiters use LinkedIn Recruiter to find candidates who match a job's requirements among more than one billion LinkedIn members, and a single recruiter may need to send InMail messages to hundreds of candidates a day. Writing a personalized message for each candidate by hand takes a lot of time. A generic template is efficient but lacks personalization, and weak personalization can reduce candidates' willingness to reply and hurt overall recruiting results. Design a system that helps recruiters efficiently generate personalized InMail messages based on each candidate's information and the job's requirements. ```hint Which details are worth mentioning A profile holds many facts, but only a few make a message feel written for that person and relevant to this job. Decide how the system picks them. ``` ```hint Wrong is worse than generic Think about what happens when a draft states something about the candidate that is not true, and where in your design you would catch it. ``` ```hint Hundreds of drafts a day Look at which inputs change from one candidate to the next and which stay the same across a recruiter's outreach for one job, and what that means for cost. ``` ### Constraints and Clarifications - The candidate pool has more than one billion members, but a message is needed only for candidates a recruiter decides to contact. - A single recruiter may send InMail to hundreds of candidates a day. - The inputs are the candidate's information and the job's requirements; the recruiter is the sender of each message. ### Clarifying Questions - Does the system start from candidates the recruiter has already selected, or is finding candidates in scope too? - Must the recruiter review every draft before it is sent, or may drafts be sent in bulk? - Which profile data may the system use: only what the recruiter can see, and under which privacy settings? - What defines success: reply rate, positive replies, recruiter time saved, or hires? - Should messages follow the recruiter's own tone, saved templates or company branding? - Must a draft appear interactively for one candidate, in a batch for a whole list, or both? - Which languages must be supported? ### What a Strong Answer Covers - Clear framing: inputs, outputs, the recruiter's role, and a success metric tied to candidate replies rather than message volume - A step that selects relevant, verifiable personalization points from the profile and the job before any text is generated - A generation approach with its quality and cost trade-offs, such as template filling versus a generative model, or a large versus a smaller fine-tuned model - Factual grounding and safety checks: no invented claims, no sensitive or protected attributes, and spam controls - Training and feedback data from recruiter edits and candidate replies, including their biases - Offline evaluation and an online experiment design with guardrail metrics - Serving for hundreds of drafts per recruiter per day: latency, cost, caching and fallbacks ### Follow-up Questions - Reply rates depend heavily on how attractive the job is and how open the candidate is to moving. How would you measure the effect of the personalization itself? - How would you stop the model from using or implying protected attributes such as age, gender or ethnicity? - If recruiters start sending drafts without reading them, what changes in your safeguards? - How would you adapt drafts to each recruiter's writing style without leaking one recruiter's content into another's messages?

Overview: Design a machine learning system that helps recruiters draft personalized InMail messages for candidates found in a pool of over a billion members, based on each candidate's profile and the job's requirements. It tests personalization signal selection, grounded text generation, safety, evaluation against reply rates, and serving cost at scale.

Read the full LinkedIn Machine Learning Engineer interview experience this question came from

|Home/ML System Design/LinkedIn
LinkedIn logo
LinkedIn
Aug 26, 2026
hardMachine Learning EngineerTechnical ScreenML System Design
0
0

Recruiters use LinkedIn Recruiter to find candidates who match a job's requirements among more than one billion LinkedIn members, and a single recruiter may need to send InMail messages to hundreds of candidates a day. Writing a personalized message for each candidate by hand takes a lot of time. A generic template is efficient but lacks personalization, and weak personalization can reduce candidates' willingness to reply and hurt overall recruiting results.

Design a system that helps recruiters efficiently generate personalized InMail messages based on each candidate's information and the job's requirements.

Constraints and Clarifications

  • The candidate pool has more than one billion members, but a message is needed only for candidates a recruiter decides to contact.
  • A single recruiter may send InMail to hundreds of candidates a day.
  • The inputs are the candidate's information and the job's requirements; the recruiter is the sender of each message.

Clarifying Questions Guidance

  • Does the system start from candidates the recruiter has already selected, or is finding candidates in scope too?
  • Must the recruiter review every draft before it is sent, or may drafts be sent in bulk?
  • Which profile data may the system use: only what the recruiter can see, and under which privacy settings?
  • What defines success: reply rate, positive replies, recruiter time saved, or hires?
  • Should messages follow the recruiter's own tone, saved templates or company branding?
  • Must a draft appear interactively for one candidate, in a batch for a whole list, or both?
  • Which languages must be supported?

What a Strong Answer Covers Guidance

  • Clear framing: inputs, outputs, the recruiter's role, and a success metric tied to candidate replies rather than message volume
  • A step that selects relevant, verifiable personalization points from the profile and the job before any text is generated
  • A generation approach with its quality and cost trade-offs, such as template filling versus a generative model, or a large versus a smaller fine-tuned model
  • Factual grounding and safety checks: no invented claims, no sensitive or protected attributes, and spam controls
  • Training and feedback data from recruiter edits and candidate replies, including their biases
  • Offline evaluation and an online experiment design with guardrail metrics
  • Serving for hundreds of drafts per recruiter per day: latency, cost, caching and fallbacks

Follow-up Questions Guidance

  • Reply rates depend heavily on how attractive the job is and how open the candidate is to moving. How would you measure the effect of the personalization itself?
  • How would you stop the model from using or implying protected attributes such as age, gender or ethnicity?
  • If recruiters start sending drafts without reading them, what changes in your safeguards?
  • How would you adapt drafts to each recruiter's writing style without leaking one recruiter's content into another's messages?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...