Skip to content

feat(resume-studio): add ATS resume score analyzer - #42

Closed
PrathamReddy888 wants to merge 3 commits into
pari-28:mainfrom
PrathamReddy888:Issue#7-ATS-Score-calculator
Closed

PrathamReddy888 wants to merge 3 commits into
pari-28:mainfrom
PrathamReddy888:Issue#7-ATS-Score-calculator

Conversation

@PrathamReddy888

Copy link
Copy Markdown

Pull Request

📌 Related Issue

Fixes #7


📝 Description

Adds a complete ATS Resume Score analyzer to the Resume Studio module. Users can now paste any resume text (or auto-fill from the existing builder form) and get an instant deep-analysis report covering scoring, missing-section detection, ATS compatibility checks, and actionable improvement suggestions.

The existing 7-check boolean "Quick ATS Score" on the builder tab is preserved unchanged; the new analyzer adds a much deeper, weighted evaluation on a separate "ATS Analyzer" tab.

New file

  • src/utils/atsAnalyzer.ts (~700 lines) — Pure-TS analysis engine, zero React/DOM dependencies, fully unit-testable.
  • 8 weighted category scorers: Contact (10%), Summary (10%), Experience (22%), Education (10%), Skills (13%), Action Verbs & Impact (12%), ATS Formatting (13%), Keyword Optimization (10%)
  • Missing-section detection for 5 required sections (Contact, Summary, Experience, Education, Skills) + 5 optional (Projects, Certifications, Awards, Languages, Publications)
  • 8 ATS formatting compatibility checks (standard headings, no tables, no special characters, parseable contact info, date ranges, standard bullets, keyword density, reasonable length)
  • Actionable suggestion generator sorted by severity (critical → warning → info)
  • Keyword extractor covering 100+ technical and business terms with frequency counts
  • serializeResumeData() helper bridging the existing ResumeData form object into plain-text analysis
  • SAMPLE_RESUME export for demos

Modified files

  • src/components/ResumeStudio.tsx — Preserves 100% of the existing builder logic (contact form, education/experience/projects, skills, AI bullet optimizer, live preview, quick ATS score, print). Adds a top-level Builder / ATS Analyzer tab toggle. New analyzer UI includes an animated SVG score gauge with letter grade, a 6-tile stats grid, a missing-sections panel + section checklist, an ATS compatibility grid with hover tooltips, and a 3-view detail panel (Categories / Suggestions / Keywords). A "Run deep analyzer →" link is added to the existing quick-score card.
  • src/index.css — Appends .pv-scroll custom scrollbar, pv-gauge-fill keyframe animation, and pv-fade-up transition. Original 6 lines untouched. No tailwind.config.js changes needed (Tailwind v4 supports plain CSS in the same file).

🚀 Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • UI/UX improvement
  • Performance improvement
  • Documentation update
  • Refactoring
  • Security enhancement
  • Breaking change

🧪 Testing

Please describe how you tested your changes.

  • Tested locally
  • Existing tests pass
  • Added/updated tests (if applicable)

📸 Screenshots / Demo

PrepVerse.-.Modern.Placement.Internship.Preparation.Platform.-.Google.Chrome.2026-07-13.18-43-33-compressed.mp4

✅ Checklist

  • My code follows the project's coding style.
  • I have performed a self-review of my code.
  • I have tested my changes locally.
  • I have not introduced unrelated changes.
  • Documentation has been updated where necessary.
  • My changes do not introduce new warnings or errors.
  • This PR is linked to the appropriate issue.

💬 Additional Notes

Add any additional information that reviewers should know.

Pure-TS scoring engine for 8 categories, missing sections, ATS checks, suggestions, keywords.
Adds Builder/Analyzer tab toggle. Analyzer runs the deep 8-category engine, preserves all existing builder logic.
@PrathamReddy888
PrathamReddy888 requested a review from pari-28 as a code owner July 13, 2026 13:17
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

@PrathamReddy888 is attempting to deploy a commit to the Pari's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added frontend Frontend development styles labels Jul 13, 2026
@PrathamReddy888

Copy link
Copy Markdown
Author
  • ECSoC26 — requesting labels ECSoC26 and ECSoC26-L3. Please add label.

I don't have permission to create these labels on the PrepVerse repo, so could the Project Admin please apply them when merging? This PR adds a complete new feature module with ~1300 lines of new/modified code across 3 files.

@PrathamReddy888

Copy link
Copy Markdown
Author

Heads-up: the welcome check failed due to a GitHub-side Service Unavailable / Internal server error (Correlation ID: 39132223-e21a-4f74-a99a-e997d709a48d) — not related to the code in this PR. PR is ready for review. Let me know if anything's needed from my end.

@pari-28 pari-28 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @PrathamReddy888,

Thank you for the contribution! The ATS Analyzer is an impressive feature and I appreciate the effort you've put into it.

Before this PR can be merged, I'd like to request a few changes:

The PR currently rewrites a very large portion of ResumeStudio.tsx, making it difficult to review. Please try to keep the existing Resume Builder intact and limit changes to the functionality required for the ATS Analyzer.
There appears to be duplicated code throughout the file (imports, state declarations, helper functions, and other sections). Please clean up any redundant code so the implementation remains maintainable.
This branch currently has merge conflicts with the latest main branch. Please rebase/merge the latest main, resolve the conflicts, and verify that the application builds successfully.

Once these issues are addressed, I'll be happy to review the updated implementation again.

@PrathamReddy888

Copy link
Copy Markdown
Author

Hi @PrathamReddy888,

Thank you for the contribution! The ATS Analyzer is an impressive feature and I appreciate the effort you've put into it.

Before this PR can be merged, I'd like to request a few changes:

The PR currently rewrites a very large portion of ResumeStudio.tsx, making it difficult to review. Please try to keep the existing Resume Builder intact and limit changes to the functionality required for the ATS Analyzer. There appears to be duplicated code throughout the file (imports, state declarations, helper functions, and other sections). Please clean up any redundant code so the implementation remains maintainable. This branch currently has merge conflicts with the latest main branch. Please rebase/merge the latest main, resolve the conflicts, and verify that the application builds successfully.

Once these issues are addressed, I'll be happy to review the updated implementation again.

I'll try to fix up the duplicate code and try to maintain the original file from the main branch while only adding modifications. It is quite a task but I will try to pr by tomorrow

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

This pull request has been marked as stale because it has been inactive for 30 days. It will be closed in 7 days if no further activity occurs.

@github-actions github-actions Bot added the stale label Sep 4, 2026
@github-actions

Copy link
Copy Markdown

Closing this pull request due to inactivity.

@github-actions github-actions Bot closed this Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend Frontend development stale styles

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Develop Resume ATS Score Calculator

2 participants