Imagine you work at a recruitment company and are asked to develop a talent listings service designed to fan out user profiles seeking employment by publishing them across multiple job boards, like Indeed and LinkedIn.
Build a system that enables users to manage their profiles and publish them on various job boards.
Goal / Scope
Build a talent listings service where job seekers manage a profile and publish it to multiple external job boards.
Users & Actors
Job Seeker: creates or updates a profile, chooses boards, publishes or unpublishesRecruiter / Company Admin: configures job-board connectors, views publishing healthExternal Job Boards: third-party APIs or webhooks
Core Use Cases
- Create profile
- Preview profile
- Publish to selected boards
- Update sync
- Unpublish
- View status and errors
- Retry failed publishing
Assumptions
- High read traffic for profile previews
- Publishing is async
- External APIs are rate-limited and occasionally flaky
Out of Scope
- Matching or ranking candidates
- Messaging or chat
- Payments
- A full ATS
这道题的核心是设计一个“候选人资料多渠道发布”系统:用户在招聘平台上维护个人资料,并将其异步分发到 Indeed、LinkedIn 等多个外部站点。关键难点不在复杂算法,而在高并发下的系统设计,包括资料元数据与媒体资源分离存储、发布任务队列化、按 profileId 分区保证同一候选人的事件顺序、以及用幂等键和 Redis TTL 去重,避免重试、超时和重复投递带来的脏数据。面试时应重点说明 Profile Service、Publish Service、Message Queue、外部 Board Connector 之间的协作,以及失败重试、状态回查和健康监控的设计。