# Design a job recommendation system: system design interview question

> Personal job recommendations with strict eligibility rules, limited interaction history, and firm deadlines for job and profile changes.

Source: https://sysround.com/questions/design-job-recommendation-system
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service that recommends relevant open jobs to job seekers. Use their qualifications, preferences, and past actions. The service must also work for new users and new jobs."

## What to clarify first

- Scale
- Read and write mix
- Qualifications and preferences
- Relevance and new users
- Response and latency
- Freshness
- Consistency and availability
- Durability and history
- Available data
- Deployment and exclusions

## Scope of a strong answer

Core requirements:

- Recommend open jobs from qualifications, preferences, and past actions.
- Apply strict preferences and exclude known qualification conflicts.
- Support users and jobs that have no interaction history.
- Apply job and profile changes within the stated time limits.

Usually out of scope:

- Parse resumes or verify qualifications.
- Recommend candidates to employers.
- Run job applications or send notifications.
- Sell job ads.
- Serve traffic from multiple regions.

## What interviewers probe

### Relevant jobs

The service must select 20 useful jobs from five million jobs. Strict rules and unknown qualifications complicate relevance scores.

### New users and jobs

Interaction history helps established users and jobs. New users and new jobs lack that evidence.

### Job and profile changes

Changes can make jobs eligible or ineligible. Stale candidate filters can hide eligible jobs even when final checks use current data.

### Interaction history

Clicks reflect exposure and position as well as relevance. Completed applications arrive later and provide a different signal.

## Common mistakes

- Starts with a complex model before defining eligibility rules and the success metric.
- Uses interaction history as the only source for recommendations.
- Checks current job status but ignores stale profile preferences and mandatory qualifications.
- Uses final eligibility checks to justify stale candidate filters that exclude newly eligible jobs.
- Reports a read-heavy workload but ignores the much larger event volume.
- Optimizes clicks without accounting for exposure, position, or completed applications.

## The bar by level

- **Senior:** Bounds candidate selection and score work to meet latency targets. Handles profile changes, job closure, newly eligible jobs, duplicate events, and score failures. Defines an application-based experiment.
- **Staff+:** Proves admission and removal deadlines across index updates, caches, request work, and failover. Preserves accepted data through zone failure. Addresses delayed outcomes and exposure bias. Justifies capacity, fallback quality, and model complexity.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=job-recommendations


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
