LLM Career Mentor

CareerGENAI

A full-stack AI career mentor that reads résumé inputs, identifies skill gaps, and turns them into a learning roadmap.

Type
Personal project
Status
Working prototype
My role
Solo: product, backend, frontend, and LLM integration
Stack
Next.js, FastAPI, Gemini 2.5 Flash, PostgreSQL, Docker Compose, Recharts
A. Riverasample résuméSKILL ANALYSISPythonSQLDockerMLOpsROADMAP1Containersweek 1–22CI for modelsweek 3–43Ship a projectweek 5–6ILLUSTRATIVE · FICTIONAL INPUT, NOT MODEL OUTPUT

The problem

Career advice is usually generic. A student can name a target role but rarely knows which gaps matter most or what to build next.

CareerGENAI takes a résumé and a target direction and returns a skill profile, the gaps between that profile and the role, a learning roadmap, and project ideas that would close those gaps.

I built it to see how far an LLM could go as a mentor when its output is treated like data, so the app can render it, store it, and come back to it, instead of as a block of chat text.

Constraints

  • The model’s answer had to be machine-readable so the frontend could draw charts and roadmap steps from it.
  • A résumé is personal data, so the pipeline should keep only what the results view needs.
  • The whole stack needed to start with one command on a laptop for development and demos.

My role

  • Designed a microservice-based architecture and the API surface.
  • Built the FastAPI backend with separate parsing and recommendation services and mentor and health routers.
  • Built the Next.js frontend and the results view with Recharts.
  • Integrated Gemini 2.5 Flash with structured JSON responses and set up PostgreSQL and Docker Compose.

System design

Each stage does one job and hands a typed result to the next. That keeps prompts small and lets me test or replace a stage without touching the others.

  1. ParseNormalize résumé text into sections the later stages can read.
  2. Extract skillsAsk the model for skills as structured JSON, not prose.
  3. Analyze gapsCompare the extracted profile with the target direction.
  4. Plan roadmapTurn gaps into ordered learning steps.
  5. Suggest projectsPropose portfolio projects that exercise the missing skills.
  6. Persist runStore the result in PostgreSQL under a run ID that the results endpoint reads.
Text version of the diagram: the Next.js client sends a résumé to the FastAPI mentor router. The backend runs parsing, skill extraction, gap analysis, roadmap generation, and project suggestion in order, calling Gemini 2.5 Flash for structured JSON. The combined result is saved in PostgreSQL with a run ID, and the frontend loads it from a results endpoint to render charts and the roadmap.

Tradeoffs

Structured output instead of free text

Why Each model call returns JSON that matches a schema, so the backend can validate it and the UI can render it directly.

Cost Schemas constrain the model, and a malformed response has to be caught and handled instead of shown as-is.

Persisted runs with a run ID

Why Generation and display are decoupled. The results page can be reloaded or revisited without calling the model again.

Cost Storing runs means storing derived personal data, so retention and deletion become design questions.

What I can show

Illustrative walkthrough

The sample below uses a fictional résumé to show the shape of the output: input, skill analysis, and roadmap. It is not real model output.

Architecture

The pipeline diagram above reflects the services, routers, and storage in the codebase.

Illustrative Sample output shape with a fictional résumé. Not produced by the model.

1 · Résumé input

Candidate
Alex Rivera (fictional)
Target
Junior ML engineer

B.S. Statistics · Built churn models in Python and SQL · Course projects in scikit-learn · Shared notebooks with a campus club

2 · Skill analysis

  • PythonStrong
  • SQLStrong
  • Model evaluationWorking
  • DockerGap
  • Model serving / APIsGap

3 · Learning roadmap

  1. Package an existing model in DockerCloses the container gap with work already done.
  2. Serve it behind a FastAPI endpointShows the model can be used by other software.
  3. Add basic monitoring and a write-upTurns a notebook into a portfolio project.

What I would explore next

  • Build a small labeled résumé set to measure skill-extraction accuracy instead of judging it by eye.
  • Add run deletion and a retention window before any public deployment.
  • Finish the AWS-ready deployment path.