How I Built
TryCareerMatch
From a personal frustration to a live product: the decisions, trade-offs, and lessons from building TryCareerMatch end-to-end.
TryCareerMatch started as a personal problem. After years of working across design, digital marketing, and financial analysis, I found myself struggling to answer one deceptively simple question: which product roles actually fit my background? Job descriptions were written for archetypal candidates, not for people whose skills had been built across multiple fields. Standard career tools gave me personality types and generic advice. None of them looked at what I could actually do and mapped it to what specific roles required.
So I built it myself. First as a quick client-side prototype to test whether the idea even worked, then, once it clearly did, as a proper full-stack product. What follows is the honest account of how that happened: the problem, the product decisions, the trade-offs, and what I'd still change.
The problem: skills without a map
The core frustration was this: most career discovery tools either tell you what you are (a personality type, a strengths profile) or show you what's available (job listings). Neither answers the question that actually matters for a career transition: given what I can do, which roles am I closest to, and which skills are holding me back?
The people who feel this most acutely are professionals with non-linear or cross-functional backgrounds. Specialists fit neatly into their category. Generalists, career changers, and people who've built skills across multiple domains are left to piece together their own map.
Generic role suggestions ("You might like Marketing")
Job boards filtered by title or keyword
Salary benchmarks by role and location
Useful, but none of them take your actual profile as input.
Maps it against 85+ roles across 10 sectors
Ranks matches as Ready now, With upskilling, or Long-term
Shows the specific skills to develop for a target role
No personality test. No registration. Profile in, matches out.
The core decision: mapping, not matching
Early in the design process, I had two competing models in mind.
The first was a quiz approach: ask users a series of questions about how they like to work, what energizes them, and how they handle conflict. This is what most career tools do. It's engaging, but it produces personality profiles, not capability-to-role mappings. And it's inherently subjective; people answer based on self-perception, not what they can do.
The second was a capability approach: have people describe what they've actually done (education, experience, the skills they hold and how strong they are, plus their interests and work style), then score that against a model of what each role needs. Less of a personality test, far more useful. That's what I built.
Designing the scoring system
The hardest part of TryCareerMatch was never the interface. It was the scoring. Every one of the 85+ roles needs an importance profile: which skills are core, which are merely adjacent, which are non-negotiable "must-haves", plus the education and experience typically expected. That's thousands of judgment calls, each grounded in real job descriptions.
Within a role, each skill carries an importance level that reflects how much it actually moves the needle.
On top of those skill weights, the engine scores four weighted blocks (core skills 50%, adjacent skills 20%, education 15%, and experience 15%) and then adjusts the result: it penalises missing must-have skills, infers behavioural skills from the profile, aligns interests using a RIASEC model, and lets strong education and experience compensate for one another. The output is a 0–100 fit score per role, grouped into Ready now, With upskilling, and Long-term tiers. It's a rule-based engine, deterministic and explainable, with no LLM in the loop.
The most important calibration decision was role differentiation. If PM and PO had nearly identical profiles, the tool would produce nearly identical scores for both, which is useless. The distinctions have to be sharp enough to be meaningful while still being accurate to what those roles actually require.
That skeleton is the original design. What made it genuinely trustworthy on hybrid and partial profiles came later, through two audit passes that re-calibrated the engine. Four refinements mattered most.
Naming who you are, not just ranking roles
The original problem was that career tools assume you fit a clean archetype. The answer I landed on has a nice irony to it: give people a hybrid archetype, a single, memorable identity that sits at the top of the report, above the role ranking. There are eleven archetypes, built from five career forces: Insight, Craft, Market, People, and Order.
What makes it more than a personality badge is how it's derived. The forces are never asked. They're inferred from the same profile the user already filled in. Each skill group and each experience domain maps to a force; the engine ranks them, and the top two combine into a "bridge" (ten of those). If a third force is strong enough, you become the eleventh, The Polymath.
It also turned out to be the product's best share hook. "I'm The Architect" travels in a way a ranked list never could, so each archetype gets its own page and a shareable card carrying the user's personal force fingerprint, doing the word-of-mouth work the assessment itself never could.
The interface decisions that shaped the experience
The landing page makes a three-step promise: profile, score, matches. The form behind it is a six-screen wizard, auto-saved as you go, with no account in sight. That gap is deliberate: the promise sets a low bar for starting; the six screens are where the accuracy comes from. The challenge was capturing enough signal (education, experience, skills, interests, work style) without it ever feeling like paperwork.
The feature I most wanted at the start (a per-role skill-gap view) is now built in: every match shows the skills that would most improve it. That's what turns TryCareerMatch from a discovery tool into an active development one.
Stack, the rebuild, and what AI changed
The first version was deliberately minimal: vanilla HTML, CSS, and JavaScript, with all the scoring logic running client-side. That was exactly the right call to validate the idea quickly and cheaply. Once it proved genuinely useful, I rebuilt it as a full-stack product so the engine could grow.
The current stack: a Next.js 15 + TypeScript + Tailwind frontend on Vercel, a FastAPI + async SQLAlchemy backend on Railway, and PostgreSQL (Neon) for the roles, the 125+ skill taxonomy, and the importance profiles. The scoring engine now runs server-side, which let it carry far more than a single client-side script ever could.
Launch was quiet by design. I shared it in a few communities where the problem resonated (professionals in career transition, people with non-linear backgrounds) and let organic sharing do the rest. The no-registration model makes sharing frictionless: send someone a link, they use it immediately, no account required.
What worked, what I'd change
TryCareerMatch has had real users and real sessions. More importantly, it solved the problem I originally had, and I've heard from others who found it genuinely useful for their own career thinking. That's the metric that matters most at this stage.
But honest retrospectives require acknowledging what I'd still do differently. A few things stand out:
See it live
Map your profile against 85+ roles across 10 sectors. Free, no registration required.