Inspiration

Choosing a career path in tech can be confusing, especially for students who are constantly learning new technologies but do not know how close their current skills are to a particular role. A resume may list several skills and projects, but it does not necessarily tell someone what they should learn next.

That problem inspired me to build CareerLenz — a career-readiness and skill-gap analysis platform that turns a resume into an actionable career roadmap.

Instead of only evaluating a resume, CareerLenz tries to answer a more useful question:

"Where am I now, where do I want to go, and what should I learn next?"

What it does

CareerLenz allows a user to select a target career role and upload their resume for analysis.

The platform extracts information from the resume and compares the detected skills with the requirements of the selected career path. It then generates a detailed career analysis including:

  • Career readiness score
  • Resume-detected skills
  • Missing skills and focus areas
  • Best-fit career roles
  • Resume quality analysis
  • Personalized career insights
  • Actionable skill-gap recommendations
  • Learning paths and practice resources
  • Recommended project ideas
  • Resume bullet improvement suggestions
  • A structured 30-day action plan
  • A downloadable career report

CareerLenz does not just point out what is missing. It tries to turn those gaps into concrete next steps that the user can actually follow.

How we built it

CareerLenz was built as a full-stack web application.

The frontend was developed using React and Vite, with a custom responsive interface designed to make a large amount of career information easy to understand.

The backend was built using Python and Flask. It handles resume uploads, extracts information from PDF resumes, analyzes detected skills, compares them against role-specific requirements, and generates the career analysis returned to the frontend.

The system uses structured role and skill mappings to calculate career readiness, identify missing skills, rank possible career paths, and generate personalized recommendations.

I also built features for resume-quality evaluation, skill-gap learning paths, project recommendations, resume bullet improvement, and a 30-day career development plan.

For deployment, the frontend is hosted on Vercel, while the Flask backend is deployed separately on Render, allowing the application to work as a publicly accessible full-stack product.

Challenges we ran into

One of the biggest challenges was making the analysis useful rather than simply displaying a percentage.

A readiness score alone does not tell a user what to do next, so I had to design a system that connects detected skills, missing skills, learning resources, projects, resume feedback, and career recommendations into one coherent experience.

Resume analysis was another challenge because resumes can have very different structures and ways of describing the same skills.

Connecting the frontend and backend also required careful handling of API requests, PDF uploads, CORS configuration, error states, and deployment configuration.

Finally, deploying the frontend and backend independently introduced additional challenges involving environment variables, production API URLs, dependency management, and server configuration.

Solving these problems helped turn CareerLenz from a prototype into a working deployed application.

Accomplishments that we're proud of

I am especially proud that CareerLenz evolved into more than a simple resume checker.

The final application provides an end-to-end experience: a user can upload a real resume, choose a target role, receive a personalized career analysis, understand their skill gaps, see what they should learn, get a project recommendation, improve their resume, follow a 30-day plan, and download their career report.

I am also proud of building and deploying the complete system independently, including the frontend, backend, resume-processing pipeline, analysis logic, user experience, and production deployment.

Most importantly, CareerLenz produces recommendations that are actionable instead of stopping at a score.

What we learned

Building CareerLenz taught me a lot about developing a complete product rather than just implementing individual features.

I gained practical experience with React component design, state management, API integration, Flask backend development, PDF processing, data-driven recommendation logic, error handling, and deployment.

I also learned how important product design is when presenting complex information. Career analysis can easily become overwhelming, so organizing the results into readiness, insights, skill gaps, resume feedback, projects, and an action plan became an important part of the project.

Deployment taught me another important lesson: an application working locally is only one part of building a real product. Environment configuration, dependency management, CORS, production servers, and frontend-backend communication all matter when making software accessible to actual users.

What's next for CareerLenz

The next step is to make CareerLenz more intelligent, personalized, and useful over time.

Future improvements could include:

  • Supporting a larger library of career roles and technologies
  • More advanced resume parsing and contextual skill detection
  • Personalized learning recommendations based on experience level
  • Job-description-to-resume matching
  • Tracking skill progress over time
  • User accounts and saved career analyses
  • Multiple resume comparison
  • Internship and job recommendations based on readiness
  • More detailed project recommendations for specific skill gaps
  • Improved resume feedback and ATS-oriented analysis
  • Career progress dashboards

The long-term vision for CareerLenz is to move beyond being a one-time resume analyzer and become a personal career intelligence platform that continuously helps students and developers understand what to learn, what to build, and how to move closer to their target career.

Built With

Share this project:

Updates

Submission history