Case study · Product · 2026
ATS Resume Checker
Upload a resume and get an ATS score, what is working, what is missing and concrete tips to fix it. You can try it on this site.
- Spring Boot
- Java
- Apache Tika
- Next.js
- Cohere

The problem
Many companies filter resumes with software before a person reads them. Most free checkers return a bare number. I wanted a free tool that explains the score in plain language and says exactly what to change.
How it works
- 01
A Next.js page sends the file to a route on the same site, which forwards it to a Spring Boot service.
- 02
Apache Tika reads the text out of PDF, DOCX and TXT files.
- 03
Cohere writes the review. If the AI service is missing or fails, a rules-based analysis answers instead, so there is always a score.
- 04
The PDF report is built in the browser with jsPDF, loaded only when the button is pressed.
Decisions worth explaining
The AI never blocks the result
A visitor with a good resume should not see an error because a third-party model had a bad minute. The local analysis is a real fallback, not a placeholder.
The backend is not public
The browser only talks to this site. The site adds a shared secret and the service rejects any call without it, so strangers cannot spend the AI budget. File type, size, same-origin and per-visitor limits are checked before anything is forwarded.
Hostile files are expected
Testing found that a 4 MB file with no spaces kept the service busy for over two minutes, because two search patterns slowed down quadratically on long unbroken text. I bounded the patterns, capped the text analysed and added a regression test. The same file now finishes in under a second.
Nothing is stored
Files are processed in memory. An earlier version kept a database and an admin panel; removing both removed most of its risks.
What I learned
- Test with hostile input, not only friendly input.
- Wake slow free-tier services ahead of time instead of showing a long spinner.
- A smaller surface has fewer bugs: deleting features was the best security fix.
Want something like this built?
Tell me what you need and I will reply within a day.