Case Study · Web Application
CareerVexa
Resume building, analysis and job matching in one app.
- React
- Vite
- Tailwind CSS
- REST APIs
What it is
A multi-tool career application: users build a resume, run an analysis over it and explore job matches, with the interface split into focused task flows. It is aimed at early-career candidates who are iterating on a resume while applying.
The objective
Building a resume, checking it and finding matching roles usually means three disconnected tools. The objective was one application where the same resume data feeds every step.
How it was solved
A React and Vite front end with a shared resume model at its centre. The builder writes to that model, the analysis view reads from it, and job matching uses the same structured data through REST calls — so nothing has to be re-entered.
- One resume model shared across builder, analysis and matching views.
- Multi-step form state kept non-destructive when moving between sections.
- API responses normalised into view models before rendering.
- Explicit loading, empty and error branches for every request.
Key features
Resume builder
Sectioned form flow writing into a single structured resume model.
Resume analysis
An analysis view that reads the same model and reports back on it.
Job matching
Role exploration driven by the structured resume data.
API integration
REST calls with explicit loading and error states in the UI.
Technology
Frontend
- React
- Vite
- Tailwind CSS
Other
- REST API integration
- Client-side routing
Development approach
- One resume model shared across builder, analysis and matching views.
- Multi-step form state kept non-destructive when moving between sections.
- API responses normalised into view models before rendering.
- Explicit loading, empty and error branches for every request.
Interface decisions
- Each tool is a focused task flow instead of one crowded dashboard.
- Progress through the builder stays visible at all times.
- Forms validate inline rather than only on submit.
Challenges & solutions
Multi-step form data was lost when users navigated between tools.
Lifted resume state into a single store shared by every view.
Analysis and matching expected different data shapes.
Added a mapping layer so both read from one canonical resume model.
