fix: include 2-3 char keywords in ATS scoring (AI, ML, AWS, API, SQL, Git) #25
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🐛 Problem
The ATS keyword extraction incorrectly filters out all keywords with 3 or fewer characters, causing critical tech industry terms to be completely ignored in scoring calculations.
Lost Keywords
Common tech terms being filtered out:
Impact on Users
Real-World Example
Job Description:
Resume:
Current (Buggy) Behavior:
['developer', 'experience', 'strong', 'skills', 'years', ...]Expected (Fixed) Behavior:
['ai', 'ml', 'aws', 'api', 'sql', 'git', 'developer', 'experience']🔍 Root Cause
File:
backend/utils/atsScoring.jsLine: 11
Function:
extractKeywords()The Logic Error:
length > 2means "only keep keywords with MORE than 2 characters"✅ Solution
Changed the filter condition from
> 2to> 1:Why This Works
> 2)> 1)What This Allows
✅ 2-character keywords: AI, ML, UI, UX, Go, R
✅ 3-character keywords: AWS, GCP, SQL, Git, CSS, API, PHP, iOS
✅ Longer keywords: Python, JavaScript, React, Docker (unchanged)
❌ Single characters: a, i, e, o (still filtered as noise)
🧪 Testing
Test Scenario
Created comprehensive test with real-world tech keywords to verify the fix works correctly.
Job Description:
Resume:
Results
Before Fix:
After Fix:
Test Output
📝 Code Changes
File Modified
backend/utils/atsScoring.js(1 line changed)Before
After
Diff Summary
Impact: 1 line changed, fixes data loss for all short tech keywords
� Why Keep Filtering?
The filter is still necessary to remove single-character noise:
> 1FilterConclusion:
> 1strikes the perfect balance between capturing meaningful 2-3 char keywords and filtering single-character noise.📊 Impact
📋 Checklist
🔗 Related Information
Similar Issues in Tech
This is a common problem in NLP/text processing:
🎯 Reviewer Notes
This fix addresses a fundamental bug in the ATS scoring algorithm that affects every user with tech skills.