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
This problem is a system design exercise for a talent listings platform that lets users manage a profile and publish it asynchronously to multiple external job boards such as Indeed and LinkedIn. The main concerns are not algorithms, but scalability and reliability: storing profile metadata separately from media, using a queue for fan-out publishing, partitioning by profileId to preserve ordering, and enforcing idempotency with keys and retry-safe consumers to handle flaky, rate-limited APIs. A strong solution should clearly describe the profile service, publish pipeline, connector layer, retries, and failure tracking.