Team 106 GraduAId

GraduAId matches graduates to real jobs with semantic vector search, then shows exactly which skills they’re missing and actionable steps they can take to close the gap. Users not only can discover jobs easily based on their preferences via an AI chatbot, but also experience what the job is like using our Career Simulator.

Required Features

(Sit through with us, please see how we implemented them uniquely)

Centralized Data

Ingests multiple CSVs and normalizes fields via ingest-jobs.ts using Papa Parse and regex/keyword parsing (extractExperienceLevel, extractWorkType, extractIndustry, parseSalary).

Job Filtering

We did implement Standard filters (salary slider, company name, job title and job description search search, work type, experience) wired in JobFilters.tsx and app/dashboard/jobs/page.tsx.

Additional Feature On top of that, we also implemented an NLP filter via a chatbot that effectively allows for users to filter the job results with natural language so that they can effectively communicate their preferences and desires without being bounded to a discrete set of fields. For instance, they can ask about location, work culture, different combinations of jobs + skillsets etc.

Transparent Requirements

Skills extracted from job descriptions are clearly listed and even categorized in JobCard.tsx and dashboard pages. Explanations are also generated by an LLM for further insights on compatibility between the user and job.

Application Tracking

Users can easily track the different applications which they have applied for and their respective statuses (applied, rejected, approved) API routes route.ts GET/POST save and fetch matches; scores rounded to INT to satisfy DB constraints and avoid precision errors.

Extras

Generating Embeddings using Gemini Embedings-001

We first took the different datasets and cleaned by observing which fields were redudant due to not containing any useful information (e.g. job id) or mostly containing null values. After cleaning the csv files, we then loaded them into our central Supabase database in a single jobs table. As each job was loaded via a script (injest_jobs.ts), an embedding was also generated based on the job description and other useful columns.

User Resume Parsing

Users are able to upload their resume in pdf, docx or txt format and our system will parse their files, extracting key skills, qualifications and education that the user has. Parsing was done with a library while skill extraction was done with Gemini LLM. A user resume_embedding would also be generated and this would be used to match a user with potential jobs.

Job Matching and Ranking

Users are matched with jobs using a cosine similarity search between their resume_embedding and the job embeddings. This would effectively return the most suitable matches for the user.

We also made sure that search results are returned sorted, with job descriptions that matched more closely with user’s resume higher at the top. We have also included the similarity scores for our users’ convenience. This also includes a skill set analysis with 3 categories - (met, partial and lacking) based on the job and user. To determine each skill and its category, on a similar cosine similar search algorithm was implemented.

Career Simulator

Users can use this to role-play as an employee for the specific company in that specific job through an interactive session. This allows users “be in the role” and get a feel of how they may fair in likely situations if they were to be in that job The users would be presented 3 scenarios where their chat responses will be graded with feedback. At the end of all 3 scenarios, the users will be given a score based on their readiness and confidence.

Day-in-a-life videos TikTok Integration

Why? Day-in-a-life videos surfaces real day-to-day content tied to roles. This allows for users to get a glimpse of existing real and relevant experiences by people around them. The videos are also embedded directly in our app without needing our users to exit out of our app.

Generated Roadmap

These roadmaps help turns gaps into a guided plan with resources so that users can have clarity on how they may be able to work towards their desired jobs. It includes a linear and structured plan for them to easily follow to acquire the necessary skills for the specific job.

Conclusion

GraduAId is an end-to-end system: It includes data cleaning and ingestion from multiple CSV files to a central Supabase table -> resume parsing for easy onboarding of users -> semantic matching betwen users and jobs -> easy job discovery based on user's preferences with the AI chatbot -> job experience with the day-in-a-life video + career sim -> personalized roadmap

It makes the question “Am I a fit, and how do I get there?” immediately answerable.

Built With

Share this project:

Updates