Skip to main content
Navigos Group · 2024 - PresentLive

Navigos Talent One

Navigos Talent One is the employer recruitment platform that Navigos Group's clients use to post jobs, screen candidates with AI scoring, build hiring campaign pages, and track applications from search to onboarding. Four engineering squads ship features on this codebase in parallel.

React 19Next.js 15TypeScriptTurborepoTailwindCSSTipTapSocket.IO

203K

Lines of code

15

Packages

4

Squads

2800+

Components

What needed solving

Four squads sharing 203K lines of TypeScript

Four squads work in a 203K-line TypeScript monorepo with 15 packages. Changes to shared state could break another squad's feature, and shared files caused frequent merge conflicts. Translation keys were unchecked strings, so a typo could leave a missing label in production. We needed module-level state alongside shared permissions, authentication, and user preferences, plus translation keys that TypeScript could check.

Application tracking system with AI-scored candidates at 75% match, showing pipeline stages from screening to onboarding

Application tracking with AI match scoring

How it works

Module state and shared data in one system

I built the state system with React's useSyncExternalStore and Immer. Each module has its own scope; app-wide stores hold shared data such as permissions and authentication. Components subscribe to specific values and re-render when those values change, reducing the effect of one module's updates on the rest of the page.

Translations use plain TypeScript objects. Developers get key autocomplete, and the compiler catches misspelled keys without a separate translation build step. Feature modules load on demand, with route prefetching to prepare upcoming pages. Git submodules separate the squads' feature scopes and reduced conflicts over shared files.

Landing page builder WYSIWYG editor showing Work in Finland hiring campaign

Block-based landing page builder

Job list with view and application metrics per posting

Job management with live metrics

AI candidate recommendations with 75% match scores and invite actions

AI-powered candidate recommendations

Candidate profile with AI evaluation score of 75 and detailed assessment

Candidate AI evaluation profile

Product features

What the squads shipped

AI-Powered Hiring

Drafting a job post from a title and notes

The job description generator turns a title and a few bullet points into a structured draft for the employer to review. AI also scores incoming applications across skills, experience, and education, giving recruiters a match percentage alongside each candidate.

Post job with AI: form fields for job title, category, industry, and work location
AI content correction panel reviewing and refining generated job description
Landing Page Builder

An editor for recruitment campaign pages

Employers can build recruitment pages with a block editor, templates, theme colors, responsive previews, and draft and publish controls. Uploaded images are converted to WebP and resized for different breakpoints to reduce download size. These pages previously needed a developer to build and deploy them.

Landing page builder with block-based editing, responsive preview, and campaign publishing workflow
Application Tracking

Following candidates from search to onboarding

The ATS combines pipeline stages, AI match scores, bulk actions, and shared reviews. When a recruiter moves a candidate, the interface updates while the server confirms the change. Four squads built parts of this system in parallel, using the shared state architecture to keep module changes separate.

Application tracking general info with candidate details, AI scoring, and pipeline management
What shipped

Four squads working in the same platform

Each squad owns its features and can deploy independently. Login, language, and role changes update the affected components without a full page reload. Route prefetching prepares upcoming pages, modules load on demand, and optimistic updates let the interface respond while a request is in progress. All modules use the same permission checks.

0

Engineering squads

Each ships features without waiting on the others

0K

Lines of TypeScript

Spread across 15 packages in one monorepo

0

Page reloads needed

Login, role, and language changes update in place

0

Shared permission system

Every module uses the same access control logic