AI web app

AI Resume Analyzer

A resume reviewer that scores a PDF against a specific job description and explains what to fix. I built it from a tutorial to learn how to ship an AI feature with no backend of my own.

Resume Review page: a sample resume beside an overall score of 78 out of 100 with Tone & Style, Content, Structure and Skills scores

The challenge

Most people send the same resume to every posting without knowing how an applicant tracking system will read it, or how well it lines up with the job they want.

I wanted to learn how to build an AI feature end to end, from file upload to structured model output, without standing up a server or paying for API keys.

The approach

The app follows JavaScript Mastery's Resumind tutorial. Its key idea is Puter.js: sign-in, file storage, a key-value store and the Claude call all run in the browser against the user's own Puter account, so there is no backend and no API key in the app. The prompt embeds the Feedback TypeScript interface and asks for bare JSON, so the reply parses straight into the review screen.

My changes were about getting it to run reliably once deployed. I pinned pdfjs-dist to 5.3.93 after the PDF-to-image step started failing on newer releases, and added fallbacks to the Zustand auth store's error path so a failed Puter call can't crash it.

  • Job-specific reviewCompany, job title and the full job description go into the prompt, so feedback is about this posting, not resumes in general.
  • ATS checkA separate ATS score with what already parses well and what to change.
  • Four scored sectionsTone & Style, Content, Structure and Skills, each with a score and expandable explanations.
  • Review historyEvery upload is saved to Puter's key-value store and listed on a dashboard with its score.

How a review runs

  1. 01UploadPDF saved to the user's Puter storage
  2. 02Renderpdf.js draws page 1 to a PNG preview
  3. 03AnalyzeClaude 3.7 Sonnet returns JSON feedback
  4. 04ReviewSaved to KV and opened at /resume/:id

Every review in one place.

The dashboard lists past reviews with the target company, the role and the overall score, each with a preview of the resume's first page.

Resumind dashboard with two sample resumes for Acme Corp and Contoso, scored 64 and 81

Tell it the job.

Paste the company, title and job description, then drop in a PDF. The file is stored first, then converted to an image for the preview before analysis starts.

Upload form filled in for a Data Analyst role with a sample resume PDF attached

Feedback you can act on.

Each section opens into short tips marked as strengths or fixes, with an explanation for each, next to the resume itself.

Review detail with the Content section expanded showing a fix and a strength beside a sample resume

Tools

  • React 19
  • React Router v7
  • TypeScript
  • Tailwind CSS
  • Zustand
  • Puter.js
  • pdf.js
  • Vite

Built while following JavaScript Mastery's Resumind tutorial (adrianhajdin/ai-resume-analyzer); I deployed it and fixed the PDF conversion and auth store issues. Screenshots are from a local run of the December 2025 code with Puter.js stubbed, so the resumes and scores shown are sample data, not real model output.

Next projectE-commerce Admin & StorefrontStorefront home page with the 002 logo, category links, a billboard banner and featured sample products