Inspiration

Every student knows the feeling that one notification, the “We regret to inform you…” email, the silence that follows, and the sinking question: Why not me?

With massive layoffs across the tech industry and increasing competition for internships and entry-level roles, students often don’t know why they were rejected or how to improve for the next opportunity. RejectionGPT was born from this problem, a tool to turn rejection into redirection.

What it does

RejectionGPT analyzes a student’s resume, job description, and interview performance, then generates:

  • A detailed match analysis (strengths, weaknesses, missing skills)
  • Tailored resume improvements
  • A mock interview simulator with AI-powered feedback
  • Personalized DSA practice questions mapped to LeetCode, based on weaknesses
  • A conversation chatbot where users can ask “Why was I rejected?” and get actionable insights
  • A curated retry plan that guides users toward better preparation and improved chances

In short: RejectionGPT becomes your personal career mentor available 24/7.

How we built it

  • Frontend & APIs: Next.js for the UI and server routes
  • AI & prompts: Gemini (Gemini-2.0-Flash) for analysis, interview simulation, and structured DSA question generation
  • Database & hosting: Supabase (Postgres) for user data, resumes, and question storage
  • RAG pipeline: Documents (JDs, resume text, standard interview answers, knowledge snippets) are embedded and stored in Supabase vectors. We use RAG-based retrieval to provide sharp, context-aware answers and to surface the most relevant interview questions and examples.
  • ORM & schema: Prisma style schema design for resume, job_desc, analysis_result, and questions with careful normalization and cascade rules
  • Caching & idempotency: Generated suggestions (DSA questions, rewrites) are cached per analysis_result_id to avoid repeated API calls and ensure consistent UX
  • Prompt-driven pipeline:
    1. Extract text from uploaded resume + JD
    2. Embed and store in Supabase vectors (for RAG retrieval)
    3. Run Gemini prompts with retrieved context to produce structured analysis and question suggestions
    4. Save results to DB and present to the user

Everything was built solo design, backend, prompt engineering, RAG integration, and launch video.

Challenges we ran into

Achieving consistent, schema-safe JSON responses from the model for structured storage

  • Tuning embeddings & vector search to reliably surface the most relevant JD/resume contexts in the RAG pipeline
  • Designing the Supabase schema and queries for fast retrieval while keeping data normalized (and implementing cascade deletes safely)
  • Preventing redundant AI calls by implementing idempotency and caching keyed to analysis_result_id
  • Balancing candid feedback tone with empathy prompt tuning was iterative
  • Producing a cinematic promo video alone, with no crew or gear, while maintaining narrative and production quality ## Accomplishments that we're proud of Built a working RAG-enabled AI career mentor end-to-end
  • Designed a robust Supabase-backed system that stores embeddings, analysis results, DSA suggestions and Roadmap generatiom
  • Implemented idempotent generation & caching so users get consistent results without wasting API budget
  • Developed a structured DSA question generator (difficulty, tags, reason) and persisted it to the DB for reuse
  • Created a mock interview simulator that uses retrieved examples to generate realistic, role-specific questions
  • Produced a cinematic launch video entirely solo to communicate emotional impact and product value

What we learned

How to design an effective RAG pipeline using Supabase vectors and careful retrieval strategies

  • Best practices for prompt engineering to get reliable, structured outputs for downstream storage
  • How to combine retrieval + generation to make explanations grounded and traceable (better trust)
  • Practical techniques for caching, idempotency, and schema design to scale affordably
  • How to deliver feedback with the right tone direct but constructive for student users
  • The value of simple, high-impact production techniques when making promotional material solo

What's next for RejectionGPT

  • Real-time voice interviews with speech-to-text scoring and RAG-grounded follow-up prompts
  • Auto-match & discovery: scanning new job postings and surfacing ones that match a user’s profile via vector similarity alerts
  • Growth analytics: weekly progress reports driven by historical analysis results and skill-gap trends (visualized)
  • Community features: an anonymized “Rejection Wall” where users share lessons and AI-curated takeaways
  • AI resume builder with live RAG-backed examples and editable components for instant export
  • Mobile-first experience and push notifications for quick practice and role alerts
  • Improved retrieval: multimodal RAG (resume PDFs + code samples + LinkedIn) for richer context and better question generation

RejectionGPT is only getting started our goal is to become the one-stop, evidence-driven AI mentor that helps students learn from rejection and build toward the roles they deserve

Built With

Share this project:

Updates