Inspiration
We were inspired to build this project due to the increasingly competitive nature of applying to jobs and to counter the automatic filtering processes that many job recruiters employ when finding employees. We wanted a product that would be able to tell the user whether or not they had a good chance of getting the job, and what they could change in order to meet the basic requirements to get past the first step in that process.
What it does
Our project takes a CV/resume file as an input as well as a job description, or a job link. Once the CV is uploaded and the job description is obtained, once the "Analyze Match" button is pressed, a calculated score is shown which shows the compatibility between the CV and the job description. From this score, a further score breakdown is given to see the individual components of the CV compatibility. Furthermore, it provides the strengths and weaknesses of the CV in terms of how well it fits the job description.
As a bonus feature, there is a button that can be pressed that retrieves jobs that the CV is most suited towards and has the best match for as a recommendation to apply for.
How we built it
- Parsing: Used Python to extract and categorize raw CV data into a structured class-based architecture.
- Embeddings: Implemented Word Embeddings to recognize semantic similarities (e.g., AWS ≈ Azure) instead of basic keyword matching.
- Weighted Scoring: Developed a custom algorithm to prioritize Technical Skills and Experience over secondary attributes.
- Matching Engine: Built a similarity-search tool to instantly recommend jobs where the candidate's profile yields a high potential score.
Challenges we ran into
Custom Weighting Logic: A standard dot product treats all resume data equally. We engineered a custom class-based scoring system to prioritize Technical Skills and Experience over secondary factors like Soft Skills, ensuring the most relevant qualifications drive the ranking.
Semantic vs. Keyword Matching: To avoid penalizing qualified candidates who use different jargon (e.g., AWS/SQL vs. Azure/Postgres), we implemented Word Embeddings. This allows the system to recognize functional similarities rather than relying on exact keyword matches, leading to a fairer and more intelligent evaluation.
Accomplishments that we're proud of
Semantic Intelligence: We moved beyond "exact match" searching. By implementing Word Embeddings, our system recognizes that a candidate with AWS skills is a strong fit for Azure roles, ensuring no talent is overlooked due to jargon.
Custom Scoring Engine: We engineered a weighted algorithm that prioritizes Technical Skills and Experience over secondary data, providing a more professional and accurate "Fit Score."
Predictive Job Matching: We successfully built a recommendation feature that scans our database to instantly display similar job opportunities where the candidate has a high potential score, maximizing their career reach.
What we learned
The Power of NLP: We discovered how high-dimensional vectors can solve real-world bias in recruiting by focusing on competency rather than just keywords.
Modular Architecture: We learned that a class-based structure was essential to fine-tune our scoring weights and scale the system to handle multiple job-to-resume comparisons.
User-Centric Design: By adding the "Similar Jobs" feature, we realized the importance of providing value to the candidate as much as the recruiter, turning a filtering tool into a career discovery engine.
What's next for JobMaxxer
The next steps for JobMaxxer are to give more options to users and improve convenience for them. One of the next features that will be implemented is an automatic application feature, where if the user wants to, the site will automatically apply to the recommended jobs that our website provides using the CV that they uploaded.
Furthermore, we are looking to improve the quality of feedback that we provide, giving them more detailed explanations and better tips for tailoring their CV to the job that they want. In the future, we are also looking to add features that can take the CV and return an edited or rewritten version that is much better for applying to the job that the user wants.
Built With
- css
- fastapi
- gemini
- next.js
- numpy
- python
- typescript
Log in or sign up for Devpost to join the conversation.