Adarsh Kumar

Hey, I'm Adarsh

Software Engineer making the complex feel simple—and the useful feel exceptional.

Back to experience

AI product · Interview preparation · Full-stack

InterviewAI

An interview-preparation platform that turns a candidate profile and target job description into a structured interview blueprint, preparation roadmap, gap analysis, and ATS-oriented resume PDF.

Overview

An interview-preparation platform that turns a candidate profile and target job description into a structured interview blueprint, preparation roadmap, gap analysis, and ATS-oriented resume PDF.

FrontendReact · Vite · React Router
APINode.js · Express
Report storageMongoDB · Mongoose
AI and document outputGroq · Google GenAI · Puppeteer

System architecture

A high-level view of the components and boundaries described by the project source and documentation.

01
React applicationAuthentication · dashboard · blueprint reports
02
Express APIJWT guards · interview/report endpoints
03
AI servicesGroq Llama · Google GenAI · structured report generation
04
Data and documentsMongoDB reports · Puppeteer-generated PDF

User and data flow

1Provide context

Upload a PDF/DOCX resume or write a profile and add a job description

2Analyze

Generate match score, skills gaps, and role-specific content

3Prepare

Review questions, model answers, DSA patterns, and a 14-day plan

4Save/export

Return to saved reports or generate an ATS-oriented resume PDF

Product capabilities

Personalized interview blueprint

  • Compare a candidate resume or self-description with the target role description.
  • Create a circular candidate/job match score and a prioritized gap and vulnerability analysis with practical pivot suggestions.
  • Generate eight specialized technical questions with interviewer intent and model answers, plus eight tailored STAR-method behavioral questions.

Preparation plan and DSA practice

  • Produce a day-by-day 14-day interview preparation roadmap.
  • Build a DSA pattern guide covering common structures such as BFS/DFS, two pointers, trees, heaps, sliding window, and dynamic programming.
  • Attach role-relevant practice problems, conceptual strategies, and links for continued practice.

Resume and report workflow

  • Compile a one-page, ATS-oriented resume as styled HTML/CSS and use Puppeteer to produce an A4 PDF for download.
  • Save generated reports for later review, search report history, and delete completed reports.
  • Protect report and profile workflows with authenticated frontend routes and JWT-guarded backend endpoints.

Data model and domain

Candidate reports

UserCredentials · profile · authentication state
Interview reportCandidate/job context · generated blueprint sections
Resume inputUploaded PDF/DOCX or written profile
Resume outputRendered one-page PDF generated from report/profile data

A signed-in user can create and revisit interview reports; each report's structured data drives the blueprint UI and optional resume PDF.

Fast data retrieval and page delivery

This portfolio case study is statically generated at build time, so opening it does not wait for a case-study API or database query. The notes below describe the project's own data path; they distinguish implemented behavior from scale-up opportunities.

Separate report list and detail

The documented API separates a user's report history from fetching a specific report, so clients can load the overview and request full blueprint detail through distinct endpoints.

Authenticated report access

JWT-protected report routes scope saved interview material to a signed-in user; resume PDFs are generated on demand rather than stored as a repeated report payload.

Scale-up consideration

The documented history endpoint does not specify pagination or a report-list index. Add bounded pagination and indexes matching owner plus creation-time queries as report volume grows; no retrieval benchmark is published.

HTTP API surface

Authentication

POST /api/auth/register · POST /api/auth/login · GET /api/auth/me

Interview reports

POST /api/interview/ · GET /api/interview/ · GET /api/interview/report/:interviewId · POST /api/interview/delete-report/:interviewId

Resume export

POST /api/interview/resume/pdf/:interviewReportId

Engineering decisions

AI output boundary

The README describes structured generation with schema validation so the frontend receives predictable report sections rather than an unbounded free-form response.

Provider integration

Groq-hosted Llama 3.3 70B is documented for fast blueprint generation, with Google GenAI also listed as an integrated provider.

Document rendering

Puppeteer renders a styled HTML/CSS resume in a headless browser and streams an A4 PDF back for download.

Separation of concerns

The repository separates React feature areas, Express controllers/routes, authentication middleware, persistence models, and AI/PDF services.

Setup and delivery

  • Install backend and frontend dependencies separately; configure MongoDB and the backend JWT/AI credentials, then point the Vite client to the API URL.
  • The README documents a local frontend at the Vite development URL and a separately running Express server.
  • Separate backend and frontend Dockerfiles exist, providing independent Node.js runtime environments for the two application layers.

Technology

ReactViteReact RouterSCSSAxiosNode.jsExpressMongoDBMongooseJWTbcryptGroq SDKLlama 3.3 70BGoogle GenAIPuppeteerDocker

Explore the project

Open the project links above to review its source, documentation, or available deployment.

© 2026 Adarsh Kumar