Skip to content
Farivar ZarvandehAI · PRODUCT · SYSTEMS
About meMy projectsMy skillsContact

Farivar ZarvandehAI · PRODUCT · SYSTEMS

Full-stack AI Developer & Technical Product Manager. Hamburg, Germany.

Products

  • Prodcommerce
  • ProdBusiness
  • ProdEngine
  • Prodinvoice
  • StoryBrook
  • Letterman
  • JobXentral
  • BI Next

Elsewhere

  • Contact form
Built by Farivar — Next.js, React Three Fiber, custom GLSL, ElevenLabs Agents.
AboutProjectsSkillsContact
My projects/07

AI career assistant / HR tech

JobXentral

Designed & built full-stack by Farivar Zarvandeh

A calm, guided AI co-pilot for every job application.

PrototypeActive job seekersCareer switchersCandidates preparing for interviews
Apply Pilot · interview rubricMechanism · heuristic grader, like the prototype
  1. Job
  2. Résumé
  3. Cover
  4. Fit
  5. Submit
Structure 0Specificity 0Clarity 0Confidence 0
Tailor the résumé; ATS score shows missing keywords.
Web page routes
53
Admin routes
21
Journey steps
5
Specified LLM chains
11
Planned DB tables
125
Mobile PWA routes
26

Figures counted from the repository; maturity note: Feature-rich frontend prototype: 53 web routes and a 26-route mobile PWA running on mock data and localStorage. Two real server routes handle parsing and fetching. Backend, database (full SQL DDL) and infrastructure are specified but not yet built, and there is no automated test suite.

01

Product introduction

JobXentral turns a job search into structured, per-role journeys: tailor your resume, draft the cover letter, check fit and gaps, then rehearse the interview by voice. Around them sit an ops back-office and an AI-trainer workspace for the agents behind the product.

02

The problem

Job seekers juggle dozens of applications with generic resumes that are not tailored to each posting or to ATS keyword scanning. Interview answers often lack structure and evidence, and LinkedIn presence stays inconsistent. On the operator side, running a multi-region product with AI agents behind it needs ops tooling and agent evaluation from day one, not as an afterthought.

03

The solution

JobXentral makes every application a 5-step journey: review the job description (pasted, uploaded or fetched from a URL), accept or reject proposed resume bullets, write a cover letter in a chosen tone, review strengths and gaps, then submit. Interview practice runs in Learning, Q&A and timed Trial modes. Answers are scored on structure, specificity, clarity and confidence, and a browser voice interviewer is available. A streak-based daily dashboard, resume ATS analysis and a social planner keep momentum. A region-scoped admin back-office and a 'Gym' workspace for agent versions, evals and LangGraph traces complete the platform.

04

Core features

  • Apply Pilot journeys

    Implemented

    Each application is a persisted 5-step wizard: JD review, resume tailoring, cover letter, fit & gaps, submit. Drafts survive reloads.

  • JD import from URL

    Implemented

    A server route fetches public job postings and converts them to clean text. It blocks private and loopback hosts and enforces size and time limits.

  • Resume PDF parsing

    Implemented

    Uploaded resumes are parsed server-side into text for analysis, with clear errors for image-only PDFs.

  • Interview prep with rubric scoring

    Partial

    Learning, Q&A and timed Trial modes grade answers on structure, specificity, clarity and confidence, then suggest a rewrite. The grader is a deterministic heuristic standing in for an LLM.

  • Voice mock interview

    Implemented

    The interviewer speaks the questions and listens to the answers through the browser's speech synthesis and recognition APIs.

  • Resume Engineer

    Partial

    Shows an animated ATS score ring, six category scores and keyword-gap insights next to a resume builder. The analysis currently uses mock data.

  • Daily dashboard and streaks

    Implemented

    A home view combining journeys in motion, a 7-day streak, a badge ladder and the weekly LinkedIn plan.

  • Admin back-office

    Implemented

    21 admin routes cover KPIs, users, CRM, campaigns, plans, audit, feature flags and CSV reports. Persona-based RBAC scopes every page to a region.

  • Gym AI-trainer workspace

    Partial

    Agent versions, eval suites, run logs and a multimodal sandbox with LangGraph trace and tool-call inspection. These screens run on mock data.

  • Mobile PWA

    Partial

    A mobile-first, installable port of the seeker portal with a service-worker app shell and an offline page.

  • LLM chain backend

    Planned

    Eleven specified chains (extraction, role matching, resume generation, cover letters, voice rubric and more) to run behind a Python FastAPI model gateway.

05

System architecture

Today JobXentral is a Next.js 16 / React 19 frontend prototype with three portals: Seeker, Admin and Gym. It runs on typed mock data and localStorage, and two real server routes handle PDF parsing and JD fetching. A separate Next.js PWA serves mobile. The planned production backend is fully specified: Python FastAPI services behind a model gateway, PostgreSQL with region-level row security across four schemas, Redis, and pgvector for matching and RAG.

Hover or focus a component to trace its real connections.

EXPERIENCESERVICES & RUNTIMEINTELLIGENCEDATA & INTEGRATIONSWeb App (Next.js 16)Mobile PWANext API RoutesWeb Speech APIJob SitesFastAPI Services (plann…Model Gateway (planned)PostgreSQL + RLS (plann…pgvector (planned)Redis (planned)Docker + GitHub Actions

11 components · 10 connections, as found in the repository.

06

Technology stack

frontend
Next.js 16React 19React CompilerTypeScriptTailwind CSS v4lucide-react
backend
Next.js Route Handlerspdf-parseFastAPI (planned)SQLAlchemy / Alembic (planned)ARQ (planned)
data
localStorage (prototype)PostgreSQL 16 with RLS (planned)pgvector (planned)Redis (planned)
ai
Web Speech API (TTS/STT)Heuristic answer graderLLM chain catalog (planned)LangGraph agent tracing (Gym UI)
infra
Docker (multi-stage, non-root)GitHub ActionsPWA service workerHetzner + Coolify (planned)
integrations
Public job posting URLsCurated job-board directoryOAuth providers (planned)Paddle (planned)

07

Product experience

JobXentral home dashboard with streak tracker, application journeys and social plan cards
Home dashboard: journeys in motion, a 12-day streak with badges, and the weekly LinkedIn plan (early 'JobRocket' branding).

Apply to a role

  1. 1Paste a job URL or text, or upload a file
  2. 2Confirm the parsed job description
  3. 3Accept or edit proposed resume bullets
  4. 4Pick a cover-letter tone
  5. 5Review strengths and gaps
  6. 6Download materials and apply

Rehearse the interview

  1. 1Study model answers in Learning mode
  2. 2Answer questions in Q&A and get rubric feedback
  3. 3Run a timed Trial, optionally by voice
  4. 4Review the overall score and top improvements

Operate a region

  1. 1Switch persona or region scope
  2. 2Review KPIs and cohorts
  3. 3Manage users, campaigns and plans
  4. 4Build a report and export CSV

07b

AI capabilities

  • Interview answer coaching

    Answers are scored 1 to 5 for structure (STAR), specificity (metrics), clarity and confidence (hedging detection). The feature returns strengths, improvements and a suggested rewrite, and aggregates trials into a weighted 0–100 score.

  • Voice interviewer

    A speak-listen-think loop built on browser speech synthesis and recognition lets candidates rehearse out loud.

  • Agent operations Gym

    Models AI agents with versions, few-shot examples, MCP/API/RAG tool bindings, canary/staging status, eval suites and LangGraph traces for multiple model providers.

  • Planned LLM chains

    Eleven specified chains: resume extraction, discovery interview, top-5 role matching, tailored resumes, JD fit analysis, cover letters, interview FAQ, voice rubric and social content.

08

Engineering challenges

  1. 01

    Safe server-side URL fetching

    The JD importer fetches arbitrary user URLs. It rejects non-HTTP schemes and private, loopback and link-local hosts, caps responses at 2 MB, aborts after 12 s and strips scripts and styles before returning text.

  2. 02

    Region isolation designed from day one

    Every admin page filters by an effective region derived from a persona-based RBAC context. This mirrors the planned PostgreSQL Row-Level Security that confines regional admins to their own data.

  3. 03

    Deterministic mock data as an API contract

    A seeded PRNG generates stable admin datasets, and typed mock modules define the exact shapes the future backend must return. That allows a clean frontend-first cutover.

  4. 04

    Cross-browser voice capture

    The voice hook feature-detects standard and WebKit-prefixed speech recognition and manages the speaking, listening and thinking phases with graceful fallback to typed answers.

09

Technical differentiators

  • Journey-first application model

    Applications are not rows in a tracker. Each one is a guided, resumable workflow that ends with ready-to-send materials.

  • Built-in AI-ops workspace

    A dedicated Gym portal for agent versions, evals and trace inspection treats AI quality as a product surface.

  • Three portals, one schema

    The Seeker, Admin and Gym portals are specified together, down to a 125-table PostgreSQL schema tracing every UI field.

  • EU-first and privacy-aware

    Plans target EU hosting and EU AI providers, with GDPR and AI-Act checklists and privacy rules embedded in prompts.

10

Explore further

Request a walkthrough

The source repository is private. A live walkthrough is available on request.

Previous · 06LettermanPaper mail turned into searchable, actionable, AI-understood recordsNext · 08BI NextAsk your business data a question instead of hunting through dashboards