Case Study  ·  Full-Stack Product

TryCareerMatch

A full-stack career-discovery app that maps 125+ skills against 85+ roles across 10 sectors, built to help professionals with non-linear backgrounds find where they actually fit.

Next.js 15 · TypeScript FastAPI · Python PostgreSQL Rule-based Scoring UX Design No-Registration
Launched Sep 2025 Rebuilt full-stack Solo project
125+
Skills mapped
85+
Roles covered
10
Industry sectors
0
Registration required
The Problem

Professionals with non-linear backgrounds (people who've combined design with finance, or technical work with product strategy) struggle to articulate where they fit in the job market.

Traditional career tools assume you fit a clean archetype. They don't account for the reality that many valuable professionals span multiple domains and their strongest matches aren't obvious from a job title alone.

The result: misapplied CVs, wasted applications, and a persistent feeling that "I'm qualified but I don't know what to call myself."

The Solution

TryCareerMatch builds a full profile through a guided 6-step onboarding that covers education, experience, skills, interests, and work style. Users pick the skills relevant to them (with search and suggestions) and rate proficiency on those. A server-side rule-based engine then scores their fit against 85+ roles across 10 sectors.

The output isn't a single "best match"; roles are ranked into three tiers (Ready now, With upskilling, Long-term goals), each with a per-dimension score breakdown, skill-gap analysis ("top skills to develop"), career-path and seniority guidance, and a narrative read of the profile, topped by a hybrid career archetype that names the user's blend of strengths.

No account needed for your free report. Optional paid add-ons (a deeper report, coaching) and a save-your-results flow exist, but nothing is required to see your results. Results in about 5 minutes.

Process

How It Was Built

From a client-side prototype to a full-stack product, rebuilt and iterated since launch.

01
Research & Scoping
Mapped existing career tools, identified the gap for cross-functional profiles. Defined the scope: which skills, which roles, which sectors would produce meaningful signal.
02
Data Model Design
Built a 125+ skill taxonomy across 11 groups, plus an importance profile for each of the 85+ roles, covering required ("must-have") skills, typical education, and experience expectations. Modelled in PostgreSQL.
03
UX & Interface
Designed a guided 6-step onboarding (Education · Experience · Skills · Interests · Work Style · Review) using segmented pills, steppers, chips, and selectable cards, not endless slider lists. Results screen with tiered matches, score breakdowns, and skill gaps.
04
Build & Launch
Built as a full-stack app: a Next.js 15 + TypeScript + Tailwind frontend on Vercel, a FastAPI + async SQLAlchemy backend on Railway, and PostgreSQL on Neon. The scoring engine runs server-side.
Under the hood

The Scoring Model

Each of the 85+ roles has an importance profile across the 125+ skills, plus required ("must-have") skills and typical education and experience.

The engine scores four weighted blocks: core skills (50%), adjacent skills (20%), education (15%), and experience (15%). It then penalises missing must-have skills, infers behavioural skills, aligns interests (RIASEC), and lets strong education and experience compensate for each other.

This is why a Data Analyst with strong SQL and Power BI but limited stakeholder management scores higher on analyst roles than on product roles, even when both surface in their results.

The skill taxonomy spans 11 groups across business, data, finance, product, design, and more. A separate rule-based pass writes the narrative in the free report. The matching and ranking engine is 100% rule-based, and always will be. The only LLM anywhere in the product sits in a newer paid report tier, which uses Claude to generate a deeper personalised narrative on top of those same rule-based scores.

Example: match profile for "Senior Data Analyst"
SQL / Queries
100%
Python / Pandas
90%
Power BI / DAX
85%
Data Modelling
82%
Stakeholder Mgmt
45%
Product Roadmaps
20%
Skill weights vary per role. The same skill can be critical for one role and irrelevant for another.
Identity

Your career archetype

The report doesn't just rank roles. It opens with who you are. Eleven hybrid archetypes are built from five career forces: Insight, Craft, Market, People, and Order.

The forces are never asked. They're inferred from the same profile the user already filled in. Each skill group and experience domain maps to a force. The top two combine into a named "bridge" (ten of those); a strong third makes you the eleventh, The Polymath.

It's purely additive. It reads the scoring snapshot and never alters a score. And it's honest: with too little signal it returns no archetype rather than inventing one, and every result carries a confidence level.

Example: "The Architect" · Insight × Craft
Insight
92
Craft
78
Order
54
Market
33
People
21
A 0–100 fingerprint per force. The top two name the archetype; each force counts only its strongest skills, so identity comes from depth, not volume.
Technology

Stack

A full-stack app where the depth is in the scoring engine and data model.

Next.js 15 · TypeScript
Frontend built with Next.js 15 (App Router), TypeScript, and Tailwind CSS. Deployed on Vercel with a global CDN and automatic Git deploys.
FastAPI · Python
Backend in FastAPI with async SQLAlchemy. The scoring engine runs server-side, not in the browser. Hosted on Railway.
PostgreSQL (Neon)
Roles, the 125+ skill taxonomy, and per-role importance profiles persisted in PostgreSQL on Neon serverless Postgres.
Rule-based Scoring Engine
Four weighted blocks (core, adjacent, education, experience), must-have-skill penalties, RIASEC interest alignment, and behavioural-skill inference. The matching and ranking are 100% rule-based, and always will be. A newer paid report tier optionally uses Claude for a deeper narrative, but no LLM ever touches the scoring.
Figma (UX Design)
A guided 6-step onboarding (Education · Experience · Skills · Interests · Work Style · Review), prototyped in Figma. Designed to reach results in about 5 minutes.
AI-Augmented Build
Claude used throughout development for scaffolding, role and skill data, scoring-rule design, and debugging. In the product, the matching and ranking use no LLM. The only runtime LLM is an optional Claude-generated narrative in a newer paid report tier.
Retrospective

Lessons Learned

What worked, and what I'd approach differently next time.

What worked
Rebuilding as full-stack
The client-side prototype proved the concept. Moving the engine server-side (FastAPI + PostgreSQL) let the scoring grow (must-have penalties, interest alignment, richer reports) without shipping all the logic and data to the browser.
What worked
Designing the data first
Spending the first two weeks entirely on the skill taxonomy and role matrices (before writing a single line of UI) paid off enormously. The UX design was straightforward once the data model was solid.
What worked
No-registration friction
Removing all friction from the experience (no account, no email, immediate results) was the right product decision. The conversion rate from landing to completing the assessment is high.
What worked
Closing the saved-results gap
This started as a gap I'd flagged here, and it shipped. Users can now save their profile via a passwordless magic-link email and return to their results later, without redoing the 6-step assessment.
What I'd change
More granular skill weighting
The current model uses integer weights (0–3). A continuous scale or sub-skill breakdowns would produce more nuanced results; that part is still on the list. Seniority, which I'd flagged here early on, has since been built in: job-zone gating per role and senior-aware result labelling.
What I'd change
Analytics from day one
I added analytics after launch. Starting with even basic event tracking (which skills users score highest, where they drop off in the assessment) would have given me much better data to improve the product in week 2.
Try it

See where your skills lead

Complete the assessment in about 5 minutes, free and with no account required. Just an honest look at where your profile fits.