Inspiration

Finding internships is one of the biggest challenges students face today. We realized there is a major disconnect: students have the skills from their rigorous SFU coursework, but they struggle to translate that experience and their resumes into industry-ready language. Many students don't know how to map their academic background to actual live job listings in Vancouver and across BC. Therefore, we built SFU CareerConnect to bridge this gap between academic transcripts and the professional world.

What it does

CareerConnect is our AI-driven career strategist.

  1. Users select their completed SFU courses and upload their resume.
  2. Leveraging Gemini AI, the app analyzes academic trajectory and suggest roles.
  3. The platform actively scrapes the LinkedIn Jobs API to provide live data on current openings specifically within Vancouver and the broader British Columbia region.
  4. The system performs a "Skill Insights" audit, identifying the user's professional identity and highlighting critical skill gaps. It uniquely maps competencies back to specific SFU courses or research projects, providing a clear lineage for every strength.
  5. A detailed analysis that identifies your unique professional identity and highlights skill gaps. It provides a breakdown of your top competencies and links them back to their original sources, such as specific SFU courses or research projects, so you can see exactly where your strengths come from.

How we built it

  1. PDF Processing (unpdf): Extracts raw text from resumes to feed clean data into the AI pipeline.
  2. AI Orchestration (Gemini): Uses gemma-3-27b to predict job titles, rank compatibility, and generate personalized interview strategies.
  3. Performance Caching (Redis): Caches internship search results and database queries, allowing for faster load times.
  4. Data Persistence (MongoDB): Stores user profiles, regex-validated SFU course lists, and persistent AI results.
  5. Secure Auth (Google OAuth): Links Google identities to MongoDB records via a secure session handler.
  6. Location-Aware Ranking: A custom algorithm that "boosts" jobs in Vancouver, Burnaby, Richmond, and Surrey to prioritize local BC opportunities.
  7. Core Framework: Built with Next.js, Tailwind CSS, and Framer Motion for a high-end, responsive dashboard.

Challenges we ran into

  • Dealing with merge conflicts when multiple people were working on similar things simutaneously.
  • Prompting Gemma 3 to produce the desired output format.
  • Optimizing application speed by caching data with Redis.

Accomplishments that we're proud of

  1. Successfully built a ranking system that prioritizes local jobs in the Greater Vancouver Area (Burnaby, Richmond, Surrey) over remote or out-of-province roles.
  2. Integrated Redis to make the app actually fast. Users don't have to wait for the LinkedIn API or Gemini to re-run every single time they refresh.
  3. Perfected the prompt engineering so the AI accurately links SFU course codes (like CMPT 120) to real-world job skills.
  4. We built a complete flow, from courses selection, raw PDF extraction, Linkedin job matching, to secure Google login and persistent data storage in MongoDB.

What we learned

Everything

What's next for SFU CareerConnect

We plan to scale the platform by building specialized course-to-skill mappings for every university, ensuring students everywhere get the same hyper-accurate career insights based on their specific curriculum.

Built With

Share this project:

Updates