← Back to development work
DigiMyTech Talent Hub

Web Dev · 1200+ CVs · 98% satisfaction

DigiMyTech Talent Hub

PFE capstone: an AI-powered talent hub for CV prep, skill matching, and application tracking.

Full-stack · AI integration · Product designPFE · 2025Live demo ↗GitHub ↗
Outcome: 1200+ CVs processed in beta · 98% user satisfaction reported in testing

At a glance

97

Days

PFE capstone

5

Sprints

Scrum delivery

109

Tests

All passing

11

AI features

Embedded in UX

10

DB tables

PostgreSQL

<50ms

Matching

Deterministic score

Platform modules

Five modules, one candidate journey

Smart CV editor
Smart CV editor

AI-assisted writing, PDF/Word/OCR import, high-fidelity PDF export.

Job matching
Job matching

0–100 compatibility score with skills gap analysis and AI explanation.

Training catalog
Training catalog

Formations ranked by detected skill gaps from your profile.

Application Kanban
Application Kanban

Four-column tracker with timestamped status history.

Interview simulator
Interview simulator

8 AI-generated questions, voice or text mode, personalized debrief.

Delivery

Scrum: 5 sprints in 97 days

S0

Initiation

Feb 15–28

Backlog & architecture

S1

Auth & profile

Mar 2–13

Magic link + RLS dashboard

S2

CV editor

Mar 16–27

Editor, PDF export, AI quality score

S3

AI & matching

Mar 30 – Apr 10

Matching engine + formations

S4

Kanban

Apr 13–24

Application tracking + admin

S5

Interview AI

Apr 27 – May 8

Voice simulator + final QA

Market positioning

Built for Tunisia — not a US import

FeatureDigiMyTechJobscanRezi.ai
French interface
0–100 matching score
Training recommendations
Application KanbanPartial
Tunisia market fit
AI interview simulator
Explainable matching algo
Free for candidatesPartial

Architecture

Presentation

Next.js 15 · React 19 · Tailwind

SSR/SSG hybrid UI

Business logic

Server Actions · Zod DTOs

Repository pattern

Data & AI

Supabase · OpenRouter · Vercel AI SDK

RLS + streaming LLM

DigiMyTech Talent Hub is my PFE capstone (Licence MDW, ISET Sousse): a full-stack, AI-powered talent platform built solo in 97 days at Digimytch SUARL, Ariana. It accompanies Tunisian job seekers from CV creation through interview simulation — with AI embedded at every step, not bolted on as a chat widget. Graduated with highest honors (Mention Très Bien).

Context & problem

At Q1 2026, graduate unemployment in Tunisia reached 24.2% (INS). Candidates often have strong skills but weak presentation: generic CVs, no objective way to gauge fit before applying, Excel-based tracking, and zero French-language interview prep tools adapted to the local market. International tools like Jobscan and Rezi.ai cover only fragments of this journey.

I conducted field analysis at Digimytch with the CTO, CEO (Product Owner), and mapped four broken steps: CV writing without feedback, subjective job browsing, unstructured application tracking, and no guided interview practice.

Five integrated modules

  1. Smart CV editor — Structured editor with streaming AI assistant, PDF/Word/OCR import, high-fidelity PDF export via @react-pdf/renderer, and AI quality scoring by category.
  2. Job matching engine — Deterministic 0–100 compatibility score (not LLM-generated) with NFD tokenization for accent-insensitive skill matching, plus AI-generated explanation in 3–5 sentences.
  3. Training catalog — 21 formations ranked by detected skill gaps from matching results — "Recommended for you" instead of a generic list.
  4. Application Kanban — Four columns (To do, Applied, Interview, Offer) with timestamped status history and soft-delete archiving.
  5. Interview simulator — 8 dynamically generated questions, voice mode (Web Speech API on Chrome/Edge) or full text fallback, personalized debrief per answer.

Architecture & stack

Three-tier architecture: Next.js 15 + React 19 + Tailwind (presentation), Server Actions + Zod DTOs (business logic with Repository pattern), Supabase PostgreSQL + Storage + JWT Auth (data with Row Level Security on every user table).

AI layer: Vercel AI SDK v4 streaming to OpenRouter Free models — Kimi K2.6 for CV, Gemma 4 26B for cover letters, Llama 3.3 70B for interviews. Each Server Action validates JWT before calling OpenRouter; responses stream directly to React without a REST middle layer.

Scrum delivery (5 sprints)

SprintFocusKey deliverable
InitiationBacklog, UML, architectureProduct backlog + tech stack locked
Sprint 1Auth & profileMagic link auth, RLS profiles, dashboard KPIs
Sprint 2CV editorAuto-save editor, PDF export, AI quality score
Sprint 3AI & matchingDeterministic matching engine, formations catalog
Sprint 4Kanban & adminApplication tracker, formation import via AI
Sprint 5Interview AIVoice simulator, debrief, 109 tests green

21 user stories delivered out of 21 planned. Solo developer on every sprint — conception, code, tests, documentation.

The interesting technical challenge

The most significant design decision was building the matching score as a deterministic algorithm (src/lib/matching.ts) rather than an LLM call. Same profile + same offer = same score every time — tested explicitly in the test suite. Users can trust and audit the number; the AI only generates the natural-language explanation on top.

Other hard problems: token budget management on free OpenRouter models, Supabase SSR session sync (syncProfileToAuthSession), and a React state bug causing duplicate formation recommendations (fixed by resetting state between matching calls).

Quality & security

  • 109 automated tests across 24 files (Node.js native test runner) — all passing at defense
  • Rate limiting (60s / 10 requests), CSP, HSTS, prompt injection sanitization via Zod
  • RLS on all 10 PostgreSQL tables; admin access via JWT app_metadata.is_admin

Measured performance

  • Matching score calculation: < 50 ms for a 10-skill CV
  • AI assistant first token: < 800 ms
  • CV quality score (generateObject + Zod): 2–4 s
  • Vercel deploy from GitHub push: < 90 s

What I'd do next

Vector search via pgvector to match "JavaScript engineer" with "React/Node developer" beyond lexical matching. Playwright E2E for critical flows. Auto-fill profile on signup from CV parser. Arabic-language models with RTL support.

Stack: Next.js 15 · React 19 · TypeScript · Supabase · OpenRouter · Vercel AI SDK · Tailwind · Framer Motion · Vercel
Live: digimytch-talent-hub.vercel.app · Code: GitHub

Stack: Next.js, Supabase, OpenRouter, Tailwind, Vercel
Next projectCRIT Tunisie

Building something similar?

Tell me about your product or site. I respond within 24 hours.

Let's talk