
At a glance
- What it is
- A dashboard executive recruitment consultants used to search candidates, build shortlists and follow up.
- My role
- Sole frontend developer who also implemented part of the API, alongside backend and design colleagues.
- What I built
- Rewrite from several React apps into one Angular application
- Candidate search with filters, keyword highlighting and search restoration
- Event tracking where components refine events before sending
- Stack
- Angular
- TypeScript
- RxJS
- Status
- Discontinued, 2019 to 2023
I also built shortlists, candidate invitations and company pages. Backend colleagues owned the remaining services, and the design team supplied the visual designs.
What people use it for
Executive recruitment involves much more than finding a name. Consultants search for candidates, build shortlists for particular jobs, review CVs and follow up. PRIMUS brought that work into a recruitment dashboard. I owned the frontend and also contributed to part of the API.
Find
Search and filter candidate records.
Shortlist
Connect relevant candidates to a job.
Follow up
Review details and prepare outreach.

Introduce roles, then support the recruitment work
PRIMUS's public pages introduced roles and employers through job cards and company information. The consultant dashboard supported the work of filling those roles: a candidate search could lead into a record, a shortlist or an invitation. Filters and search context needed to remain useful between those activities.
As the sole frontend developer, I built those flows with the product and supporting teams. Candidate search included filters, keyword highlighting and search restoration. Shortlists connected candidates to jobs and their progress through the process.

Rebuild the frontend as one application
The inherited frontend used several JavaScript React applications with Redux state crossing application boundaries. A feature change could reach across more than one codebase, and moving between features loaded another application.
I rewrote the dashboard as an Angular application with TypeScript, shared routing and services. The migration covered the working recruiter features as well as the new structure, and reached a production cutover.
The migration had to carry the working features with it.

Make product activity available to the team
I also built an event-driven tracking system. Components could add, modify or filter an event before it was sent, so the information could follow the action being performed.
Other work included candidate invitations with preview and engagement information, company pages and the search integration. I also implemented part of the API. Product and backend colleagues owned the wider product and the rest of its services; the visual designs came from the design team.
A migration used during the product's active life
The Angular dashboard reached production and supported recruitment workflows during PRIMUS's active lifecycle. I delivered the frontend rewrite and connected features and implemented part of the API.
Navigos later discontinued PRIMUS as a business decision. The dashboard described here belongs to that earlier period.
Rebuilding a product people still use?
Tell me what needs to keep working.
Implementation notes
Framework migration
I moved the dashboard from React and Redux in JavaScript to Angular 14 with TypeScript and RxJS. Shared routes, services and components replaced the separate frontend applications.
Search and event boundaries
The NBS search integration involved redirects, deep links and search restoration. The tracking system let individual components refine events before they were sent.
API contribution
Alongside sole frontend ownership, I implemented part of the API. Backend colleagues were responsible for the remaining services. Product and design colleagues supplied the requirements and visual designs for the wider system.
Delivery record
A Jira extraction from 17 May 2026 identified 89 assigned Done or Resolved tickets across PRIMUS. That total spans multiple feature areas; it is not a count of tracking-system tickets or a measure of individual product impact.
