Inspiration
A lot of students around me — cousins, friends, classmates — hit the same wall right after school: they have no real idea what careers actually exist, what skills those careers need, or how to even start preparing. They just pick something because everyone else is picking it, or because it's the "safe" option their family suggests, not because they actually explored it.
What made it worse was watching how much fear was tied to it — fear of English, fear of interviews, fear of not knowing where to even begin. The information existed somewhere on the internet, but it wasn't put together in a way that felt approachable for a confused high schooler. I wanted to build the thing I wished existed when I was the one stuck staring at a career fair pamphlet with no clue what any of it meant.
What it does
CareerCompass is an AI-powered career and learning companion that takes a student from "I have no idea what I want to do" all the way to "I just finished a mock interview for a role I'm actually excited about." It's organized into six parts:
- Explore Careers – search any career and see the real skills it needs plus live job openings, not just a Wikipedia-style description.
- Learn – get a personalized study roadmap and the best free courses/platforms for any topic, in your preferred language.
- Resume – build a clean resume with multiple templates and download it as a PDF, with AI rewriting your bullet points to sound more professional.
- Interview & Confidence – practice common questions, run a mock interview, and take a full voice interview where the AI actually reads your resume and asks you about your own projects.
- Ask AI – chat with a tutor, summarize PDFs/images, and turn notes into flashcards.
- My Stuff – everything you've saved, in one place.
The core idea: real data (O*NET, live job listings, YouTube courses) tells you what's actually out there, and AI helps you understand it, plan around it, and build the confidence to go after it.
How I built it
The app is built on Next.js 16 (App Router) with React 19 and styled with Tailwind CSS v4, deployed on Vercel. For data persistence and caching, it uses MongoDB Atlas via Mongoose.
The AI layer is a three-model fallback system — Google Gemini as the primary model, with Mistral and Grok as backups — so if one provider is rate-limited or down, the app silently falls over to the next one instead of breaking for the student. Every AI response gets cached in MongoDB so repeated requests for the same career or topic are instant and don't burn API calls.
On the data side, O*NET powers real career/skill data, Adzuna pulls live job listings, and the YouTube Data API v3 sources free course videos. For documents and accessibility, unpdf and Tesseract.js handle reading text out of PDFs and images, and the Web Speech API drives the in-browser voice interview — no paid speech APIs needed, which kept the whole stack free-tier friendly.
Challenges I ran into
Two challenges stood out the most:
- MongoDB Atlas connectivity — early on, connections kept silently failing. Turned out to be a missing database name in the connection URI, combined with IP whitelisting issues and environment variables not reloading until a full server restart. Small things, but each one cost real debugging time before it clicked.
- O*NET API integration — the official docs didn't make it obvious which endpoints actually returned the data needed for search versus detailed occupation info. Had to dig through the API structure to land on the right combination —
/mnm/searchfor discovery and/online/occupations/{code}/details/for the deep skill data — and then build a 30-day cache plus an AI fallback for when O*NET simply didn't have a match.
Beyond the technical side, the bigger challenge was building this solo — every feature, every API integration, every UI decision, end to end, while also making sure it stayed simple enough for a student with weak English to actually use without getting overwhelmed.
Accomplishments that I'm proud of
- Getting a genuinely full pipeline working — exploration → learning → resume → interview — not just a single AI gimmick feature.
- The three-model AI fallback system, which means the app doesn't just stop working the moment one provider has issues.
- The voice interview feature: having the AI read an uploaded resume and ask personalized questions about the student's own projects feels like a real interview, not a generic Q&A bot.
- Keeping the entire stack on free tiers (Gemini, Adzuna, O*NET, YouTube API, Web Speech API) so cost is never a barrier to a student using it.
- Building and shipping this as a solo developer in the hackathon timeframe.
What I learned
- How much careful caching matters when you're stacking multiple external APIs and AI calls — without it, both cost and latency spiral fast.
- That AI fallback chains (Gemini → Mistral → Grok) are not optional for a real product; a single-provider dependency is a single point of failure waiting to happen.
- A lot about designing for a user who might be intimidated by English or by technology in general — simplicity and warmth in the AI's tone matter as much as the AI's accuracy.
- Practical lessons in API quirks (O*NET's endpoint structure, MongoDB URI gotchas) that no amount of reading docs replaces — you only really learn them by hitting the wall.
What's next for CareerCompass
- Expanding language support further, since a huge chunk of the target audience is more comfortable in their native language than in English.
- Adding peer/mentor connections — letting students who've already gone down a career path answer questions for those just starting out.
- Building a lightweight mobile app version so it's usable directly on a phone without needing a laptop.
- Partnering with schools or NGOs to get this in front of the students who need it most, not just the ones who happen to find it online.
- Adding more regional job-data sources beyond Adzuna so the live job openings feel relevant outside just a few countries.
Built With
- ai
- azura
- cache
- mongodb
- nextjs
- onet
Log in or sign up for Devpost to join the conversation.