1
0 Comments

I built an AI career skill gap analyzer with Claude Sonnet, FastAPI, and Next.js -- 124 tests, fully open source

Hey IH!

I just launched SkillVector -- an AI-powered career skill gap analysis tool. You paste your resume and a job description, and it gives you:

  • A deterministic match score (0-100%) using cosine similarity on sentence embeddings

  • Missing skills ranked by priority (HIGH/MEDIUM/LOW)

  • A prerequisite-ordered learning path with time estimates

  • Portfolio project ideas with deliverables (so you can actually prove you learned the skill)

  • Semantically matched related jobs from a Pinecone vector database

Try it live: https://skillvector-eta.vercel.app
GitHub
(open source): https://github.com/RakeshReddy26-bit/skillvector-engine

The tech stack

  • Backend: Python 3.11, FastAPI, Claude Sonnet (Anthropic) via LangChain, Sentence Transformers (all-MiniLM-L6-v2, 384-dim), Pinecone, Neo4j

  • Frontend: Next.js 14, TypeScript strict, Tailwind CSS, 9 React components

  • Infra: Vercel (frontend, free) + Render (backend, free tier)

  • Tests: 124 pytest tests, all mocked, GitHub Actions CI (lint + test + type-check)

How it works

The core is a 7-step pipeline:

  1. Encode resume + job description into 384-dimensional vectors

  2. Compute cosine similarity for a deterministic match score

  3. Claude Sonnet identifies missing skills through structured prompting

  4. Skills get ordered by prerequisites with time estimates

  5. Evidence engine generates portfolio project ideas

  6. Interview generator creates 5 questions per missing skill

  7. Rubric engine produces evaluation criteria

The score is deterministic (same inputs = same score) because it's based on embedding similarity, not LLM output. The LLM only handles skill identification and project generation.

What I learned building this

  • Using embeddings for scoring instead of asking an LLM "rate this resume 0-100" gives consistent, reproducible results

  • Graceful degradation matters -- the app works without Pinecone and Neo4j by falling back to local data

  • A transform layer between API response and frontend display types saves you from coupling your UI to your API shape

  • 124 tests with full mocking means I can refactor anything without fear

Numbers

  • 55 indexed job descriptions (Junior to Staff level)

  • 32 skills in the prerequisite graph

  • 7 pipeline steps

  • 124 automated tests

  • $0/month hosting (Vercel free + Render free tier)

The backend sleeps on Render's free tier, so the first request takes ~15-30 seconds to cold start. After that it's fast.

Would love feedback on the analysis quality and the UI. Try the demo mode if you don't want to paste a real resume.


posted toAvatar for product skill vector
skill vector