Shortlist: a CRM for recruitment agencies, with AI call notes by Haris NabeelShortlist: a CRM for recruitment agencies, with AI call notes by Haris Nabeel
Shortlist: a CRM for recruitment agencies, with AI call notes
Product concept and system design. Shortlist is a design case study: screens, interaction design, and a production architecture. It draws on my experience building CRM features in production at Clevenio.
The problem
Small recruitment agencies run two sales pipelines at once. Clients have jobs to fill, and candidates move from sourced to placed. Generic CRMs model one pipeline well and push the other into custom fields and spreadsheets.
The second problem is data entry. Recruiters learn salary expectations, notice periods, and motivations on calls, but it lives in scrappy notes that never reach structured fields.
The product
Jobs and candidates are both first-class. An application links one candidate to one job and carries its own stage.
A kanban for every job, with warnings for candidates stuck too long in a stage.
AI call notes that turn messy notes into structured fields and a suggested next step.
Reporting agency owners actually ask for: fees by recruiter, time to fill, source of hire, and stage conversion.
AI proposes, a person decides
A recruiter pastes raw notes from a call. Shortlist extracts salary expectations, notice period, work preferences, motivation, risks, and a suggested next step. Every AI value appears in its own violet style with its own accept control, and nothing is saved until a recruiter accepts it.
Recruitment data affects people's careers. A silently wrong salary or a stage move nobody made is worse than no automation, so the boundary between machine output and human decision stays visible at all times.
After acceptance, the values become normal data, the candidate moves stage, and the timeline records who accepted what.
System design
Multi-tenant Postgres with an agency ID on every row, enforced by row-level security and by application code, so one bug in either layer doesn't leak data.
An append-only activity log that powers timelines, days in stage, and conversion reports, so any past pipeline state is a query, not a guess.
A queued AI extraction pipeline with a fixed JSON schema, validation, one retry, stored model version and cost per run, and an evaluation set that runs on every prompt change.
Transparent, rule-based candidate matching, so recruiters can see why a score is 86. Embeddings can come later, once there is feedback from real placements.
Dashboards read from views refreshed on a schedule, and every background job is idempotent, so a retry never creates duplicate tasks.
What I would build first
The smallest version that proves value is jobs, candidates, applications, the kanban, and AI call notes. Reporting and matching come second, because they are only as good as the data the first release captures.
Like this project
Posted Sep 26, 2026
Product concept and system design: two pipelines, a kanban per job, and AI call notes a recruiter approves. Multi-tenant Postgres with an activity log.