Skip to content

[FEATURE] AI Interview-Resume Upload & Basic Parsing #119

Description

@mrhat05

📝 Description

Add backend functionality to upload and parse candidate resumes (PDF/TXT) to extract key information like name, role, skills, and experience. This extracted data will be used to personalize AI-generated interview questions based on the candidate's background.

🎯 Goal

When completed, users should be able to upload their resume, and the system will automatically extract relevant information and store it for generating personalized interview questions.

📋 Tasks

  • Create POST /api/interviews/upload-resume endpoint
  • Add InterviewCandidate model in Prisma schema
  • Implement file upload handling (PDF/TXT, 5MB max)
  • Integrate pdf-parse library for PDF text extraction
  • Extract candidate data: name, role, skills, years of experience
  • Store parsed data in database with userId reference
  • Add authentication middleware to endpoint
  • Return parsed data as JSON response
  • Add error handling for invalid files/parsing failures
  • Write tests for successful and failed uploads

📁 Files to Modify

  • server/routes/interviews.js (create new)
  • server/prisma/schema.prisma (add InterviewCandidate model)
  • server/index.js (register new route)
  • server/package.json (add pdf-parse dependency)

💡 Hints

  • Use the existing multer middleware setup from server/routes/upload.js as reference
  • For PDF parsing: npm i pdf-parse then import pdfParse from 'pdf-parse'
  • Use regex patterns to find common resume sections (Skills, Experience, etc.)
  • Store the resume file URL using existing R2/Cloudinary storage setup
  • Check server/middleware/auth.js for authentication middleware usage
  • The Prisma model should include: id, userId, name, role, skills (String[]), yearsOfExperience, resumeUrl, parsedData (Json), createdAt

🏷️ Difficulty

  • Beginner Friendly
  • Intermediate
  • Advanced

Metadata

Metadata

Labels

Medium30 PointsSWOCIssue available for contributors participating in Social Winter of Code (SWOC).SWoC26Social Winter of Code 2026backendBackend relatedgood first issueGood for newcomershelp wantedExtra attention is needed

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions