AI · Dashboard · 2026
SkillGap AI
AI career intelligence platform that reads a candidate's resume against a target role and returns a brutally honest match score, a ranked list of hire-blocking skill gaps, and a structured 90-day learn → build → apply roadmap.

- Time to first insight
- 30s
- Gaps surfaced per analysis
- 10–15
- Roadmap horizon
- 90 days
- MVP shipped in
- 3 weeks
- Client
- SyntheStudio — portfolio demonstration project
- Year
- 2026
- Timeline
- 3 weeks (demo MVP)
- Categories
- AIDashboard
- Role
- Founder, Product Designer & Full-Stack Engineer
- Services
- Product strategyUX & UI designFull-stack engineeringLLM prompt & evaluationAuth & data modelingDeployment & SEO
- Stack
- TanStack StartReact 19TypeScriptTailwind CSS v4shadcn/uiTanStack QueryTanStack RouterSupabase (Postgres + Auth + RLS)AI GatewayOpenAI / Claude (LLM)Zod validationServer functions (Edge)Cloudflare Workers runtimeSEO: sitemap + robots + OG
The challenge
Generic AI résumé tools either flatter the user or hallucinate generic advice. Job seekers need an honest, role-specific read on why they would be screened out — and a concrete plan to fix it — without uploading their data to a black box or paying upfront.
My approach
Designed a focused single-purpose product: paste resume + paste job description, no scraping. Built a typed LLM pipeline that ranks gaps by hire-blocking severity (critical / important / nice-to-have) instead of generic skill lists, then composes a 90-day week-by-week roadmap with resume rewrites and interview prep. Wrapped it in a privacy-first auth + RLS model so each user only sees their own analyses, with a public free preview to remove signup friction.
Key features
- 30-second match score (0–100) with brutally honest summary
- Ranked skill-gap list with severity tags and Junior → Senior level deltas
- 90-day learn → build → apply roadmap, week by week
- 3–6 AI-rewritten resume bullets tailored to the target role
- 10 tailored interview questions per analysis
- Recommended courses, books, and portfolio projects per gap
- Authenticated history of past analyses with shareable result URLs
- Free public preview — no signup required for top 3 gaps
- PDF export of the full report
- Privacy-first: no LinkedIn scraping, user-controlled deletion
Technical decisions
TanStack Start over Next.js
Chose TanStack Start for first-class typed routing, server functions co-located with routes, and an edge-ready runtime — keeping the analysis pipeline a single deployment with no separate API.
Unified AI Gateway instead of direct LLM keys
Routed every model call through a single gateway so the same code path supports OpenAI and Claude, with usage capped per user and no client-side API keys.
Severity-ranked gaps, not generic lists
Designed the prompt + Zod schema to force the model to rank each gap by how much it blocks the hire, with required fields for level delta and evidence — removing the usual ChatGPT vibes-only output.
Supabase RLS for per-user privacy
Every analysis row is scoped to auth.uid() via row-level security, so a user can only read or delete their own resume data. Service-role access is reserved for server functions only.
Public preview to remove signup friction
Top 3 gaps render without an account; full report unlocks behind auth. This doubles as a portfolio demo where the paid tier is unlocked for evaluators.
Outcome
Shipped a polished demo MVP with a 30-second time-to-first-insight, end-to-end auth, persisted analysis history, sample report on the landing page, and full SEO. Both pricing tiers are unlocked in demo mode so prospective clients can evaluate the full output end-to-end before commissioning similar work.