Inspiration
Every year, over $100 billion in financial aid goes unclaimed in the United States alone , not because students aren't qualified, but because they simply don't know the opportunities exist. I've watched this happen firsthand: talented, hardworking peers missing application deadlines for scholarships they would have won, internships they would have landed with their skillset, and competitions they would have dominated , all because no one told them where to look.
The students who consistently land the best opportunities aren't always the most talented. They're the ones with the right guidance, the right network, and someone in their corner who knows the landscape. A student from India shouldn't have less access to that guidance than someone whose parents went to Harvard.
I built OpportuNest to be that person — an AI advisor available to every student, everywhere, at any hour, for free.
What It Does
OpportuNest is a full-stack AI-powered opportunity discovery and career coaching platform with two sides: students who need opportunities, and recruiters who post them.
For students:
- 🔍 AI Opportunity Matcher — fill out your profile once; the AI generates personalized scholarships, competitions, grants, and internships with a match score and a "why you fit" explanation written specifically for your background
- 🎤 Voice Mock Interview Coach — speak your answers out loud across 3 tracks (Software Engineering, Product Management, Entrepreneurship); AI scores your response, reads feedback aloud, and gives a model answer
- 📄 Resume AI — drag and drop your PDF resume; get section-by-section scores, a rewritten professional summary, and the exact ATS keywords you're missing
- 🗺️ Personal Roadmap — a milestone tracker showing exactly what to do next, in order, with urgency flags
- 💬 AI Career Advisor — persistent chat coach with full knowledge of your profile
- ✍️ Essay Draft Generator — pick any opportunity, get a personalized first draft of your application essay in seconds
For recruiters:
- Post internships, scholarships, grants, and fellowships
- Browse and filter a talent pool of pre-screened student profiles
- Shortlist candidates and run AI analysis — fit score, strengths, growth areas, and AI-generated interview questions per student
- AI Recruiter Assistant for writing job descriptions, outreach emails, and screening criteria
How We Built It
OpportuNest is a zero-backend single-page application — no server, no database, no authentication infrastructure. Everything runs in the browser.
Core stack:
- React + Vite — fast, modular component architecture with no external UI library; every component, animation, and layout is custom-built
- Groq API (
llama-3.3-70b-versatile) — powers all AI features: opportunity matching, interview scoring, resume analysis, essay generation, and both student and recruiter chat - CSS custom properties — a full design system with true black dark mode and pure white light mode, toggled via React context and persisted to localStorage
- FileReader API — browser-native PDF text extraction for resume upload, with no server needed; all data stays client-side except for the Groq API call
- Web Speech API — browser-native speech recognition for voice interview answers and speech synthesis for AI reading questions and feedback aloud
- Netlify — instant deployment with environment variable injection so the Groq key is never exposed in the repository
The core AI design principle: rather than asking the model to search for opportunities, we prompt it to reason about fit — providing a structured student profile and asking it to explain the match in specific, personal terms. The difference between "list scholarships" and "given this student's profile, explain in 2-3 sentences why they are a strong candidate for this specific opportunity" is the entire product.
The match score is calculated as:
$$\text{Match Score} = \frac{\sum_{i=1}^{n} w_i \cdot s_i}{\sum_{i=1}^{n} w_i} \times 100$$
where $w_i$ are weights for each profile dimension (skills, grade, location, GPA, interests) and $s_i$ is the AI-assessed alignment score for each dimension against the opportunity's requirements.
Challenges We Ran Into
Structured AI output consistency was the hardest engineering challenge. Every feature — opportunity matching, interview feedback, resume analysis, essay generation, recruiter AI analysis — requires the LLM to return a different JSON schema. A single malformed response breaks the UI entirely. The solution was a combination of extremely explicit field-level prompting, strict JSON-only output directives, and a graceful fallback to realistic demo data on every single feature so the app never shows a broken state.
PDF text extraction without a backend took significant iteration. Most resume parsing solutions run server-side. Building a reliable client-only PDF reader using the FileReader API and binary text extraction meant handling dozens of PDF encoding variations — text-based, layout-heavy, multi-column — all without a library. The result works well for standard exported PDFs and degrades gracefully for scanned documents.
Voice interview mode required coordinating three browser APIs simultaneously: Web Speech Recognition for transcription, Web Speech Synthesis for TTS, and a custom timer — all without them interfering with each other. Safari's limited Speech Recognition support added extra complexity.
Designing for zero friction was a deliberate product constraint. The deployed link had to work the moment a judge opened it — no sign-up required to explore, no setup, no loading screen. Every AI feature needed a meaningful demo state. Every failure mode needed a graceful fallback. This forced cleaner architecture throughout.
Building the full product solo in two weeks meant making hard prioritization calls constantly. The discipline was: if a feature doesn't directly serve a student finding an opportunity or a recruiter finding talent, cut it.
Accomplishments That We're Proud Of
- A complete, deployed product — not a prototype or a mockup, but something a real student could open right now and use to find a real scholarship with a real deadline
- The "why you fit" explainer — this is the feature no other opportunity finder has. Every other platform shows you a list. OpportuNest tells you exactly why you're a strong candidate, in language specific to your actual profile. That's the difference between a search engine and a mentor
- Two-sided marketplace — students and recruiters in one app, with completely separate experiences and a talent-matching layer connecting them
- Voice interview — speaking your answer out loud and hearing AI feedback read back to you is a qualitatively different experience from typing. It actually builds interview confidence
- Zero external UI dependencies — the entire design system, animation library, dark/light mode, and component library is custom-built in ~400 lines of CSS variables. Bundle stays small, performance stays fast
- PDF resume upload with no backend — resume analysis works entirely client-side; no student data touches a server except the encrypted Groq API call
What We Learned
- Agentic prompting is a product skill — structuring prompts so an LLM reasons about a problem rather than retrieves an answer requires iteration and precision. The model was the same throughout development; what changed was how well we described the task
- UX is a feature, not polish — the card animations, shimmer loading states, voice feedback, dark/light toggle, and zoom-on-hover interactions aren't cosmetic. They're what makes a judge stop and say "this feels like a real product." In a hackathon, that distinction wins prizes
- Constraint-driven design produces better software — having no backend forced every feature to be simpler, faster, and more privacy-respecting. The constraint was the architecture
- Demo fallbacks are not optional — in a live demo environment, API calls can fail. Every feature in OpportuNest has a realistic fallback that makes it look intentional, not broken. This is the difference between a demo and a prototype
- Solo builds require ruthless scoping — the features that didn't make it were often technically interesting. Cutting them was the right call every time
What's Next for OpportuNest
- Live opportunity database — integrate real-time APIs (Scholarship America, Handshake, LinkedIn, USAJobs) so every match includes currently open opportunities with verified deadlines
- Application tracker — let students save opportunities, track status (researching → drafting → submitted → decision), set deadline reminders, and store essay drafts per application
- School counselor dashboard — let counselors manage multiple student profiles, monitor their match lists, and track application progress across an entire class or grade
- Essay coach — paste a scholarship prompt and your draft; AI gives feedback on structure, voice, how directly it answers the prompt, and line-level suggestions
- Mobile app — React Native version with push notifications for new matches and upcoming deadlines
- Verified recruiter network — partner with real companies, nonprofits, and universities to post actual opportunities that flow directly into student match feeds
- Multilingual support — serve non-English-speaking students and immigrant families who are disproportionately affected by the opportunity gap OpportuNest was built to close
Built With
- groq
- html
- javascript
- llama-3.3-70b-versatile
- netlify
- react
- vercel
- vite
Log in or sign up for Devpost to join the conversation.