Hirastra 推出免費 ATS 履歷檢查器,履歷全程在瀏覽器處理
We built a free ATS resume checker that runs entirely in the browser
Hirastra 團隊推出免費 ATS 履歷檢查器,履歷會在用戶裝置的瀏覽器內讀取和評分,不會傳送至伺服器。工具分別檢查資格條件、PDF 解析狀況、履歷實力,以及履歷與職位描述的匹配度;匹配度按職位要求逐項比較,並區分實際使用與只列出的技能。
Every placement season, students in India pay for "ATS score" tools or upload their resumes to sites they've never heard of, hoping for a magic number. Most of those tools score keyword density, which isn't how applicant tracking systems actually work.
We run Hirastra, a site that lists fresher IT jobs verified on 1,300+ companies' own careers pages. Our users kept asking "is my resume ATS-friendly?", so we rebuilt our checker from how real ATS software screens resumes. It's free, and the resume never leaves your browser.
Try it: https://hirastra.com/ats-resume-checker
What real ATS software actually does
Before writing code, we read the documentation of the systems Indian employers use (Workday, Greenhouse, Lever, SuccessFactors, iCIMS) and how recruiters use them. Three things matter far more than "keyword score":
- Knock-out questions, not resume wording. Most automatic rejections come from the application form: graduating batch, degree or branch, CGPA cut-offs, backlogs. The resume text rarely rejects anyone on its own.
- Parsing. The ATS turns your PDF into fields (name, education, experience, skills). If parsing breaks (two columns read in the wrong order, text inside images, a table that scrambles your degree and year), recruiter search and any AI matching never see the real you.
- Recruiter search and matching. Recruiters filter and search for skills and titles. Newer matching features compare your resume with the job requirement by requirement: a required skill counts more than a preferred one, and a skill you used in a dated project or internship counts more than one you only listed.
We wrote that up in more detail here: How ATS software really screens fresher resumes.
So instead of one magic number, the checker gives four separate answers:
- Eligibility flags (batch, degree, years): pass or fail, never averaged into a score.
- Parse health: Clean, Risky or Broken, with the exact text a parser would see.
- Resume strength (without a job): weighted toward what has evidence behind it, like real internships or projects, measurable results and spelling.
- Job match (with a job description): requirement by requirement, required before preferred, used skills before listed ones. Repeating a keyword earns nothing.
Why it runs in the browser
A resume has your phone number, email, address and college. We didn't want to store any of that, so everything happens on the device:
- PDF reading uses PDF.js in the page. We read the text items with their positions, which lets us detect things a parser struggles with: multi-column layouts (we compare the natural reading order with a naive left-to-right reading), tables (rows of 3+ cells whose x-positions line up across rows), text hidden behind icons, and links attached to icons rather than written out.
- Skills are matched against a dictionary of roughly 270 tech skills with their aliases ("JS" and "JavaScript", "Postgres" and "PostgreSQL"), with care for ambiguous words ("Go", "R", "C").
- Spelling uses nspell with an English dictionary loaded on the client, plus a list of tech terms so "Kubernetes" isn't flagged.
- Job match reads the job's requirements and checks each one against where the skill appears in the resume (a dated experience or project bullet, or only a skills list).
Your resume is never sent to a server. The page only downloads things to your browser (the PDF reader, the spelling dictionary and a public list of open jobs to suggest matches); the resume itself is read and scored on your device.
Things that broke on real resumes
Real student resumes taught us more than any spec:
-
Letter-spaced headings. Many templates write headings like
W O R K E X P E R I E N C Eor use small caps that PDF.js returns asW ORK E XPERIENCE. Our section detection missed them, so the checker said "no experience" to students who had internships. We now normalise spaced and split headings before matching section names, and if there's no heading at all, any dated entry with a job title counts as experience. - Numbers before nouns. "Built 5+ production REST APIs" is a measurable result, but our first metric detector only looked for "%" and "₹". It now understands counts with words before the noun.
- Skills on a project's stack line. "Stack: React, Node, MongoDB" under a project means the skill was used, not just listed. Treating it as a listed skill under-scored good projects.
- "Low match" for good fits. Our first version suggested open jobs by skill overlap alone, then scored them lower on the real match. Now suggestions are re-scored with the full requirement-by-requirement match, ineligible jobs (wrong batch, too many years, student-only internships for graduates) are dropped, and nothing below 60 is shown.
What it doesn't do
We'd rather be honest about limits:
- It can't know a specific company's knock-out questions or internal ranking; it shows the patterns the major systems share.
- Scanned (image) PDFs have no text to read; the checker tells you, but can't fix them.
- A high score isn't a promise of a shortlist. It means a parser can read your resume and a recruiter searching for the job's skills will find them.
Try it
- Free ATS resume checker: https://hirastra.com/ats-resume-checker
- Verified fresher IT jobs with direct company apply links: https://hirastra.com/jobs
- Our method for verifying openings: https://hirastra.com/how-we-verify-jobs
If you try it on your resume and something looks wrong, tell us in the comments. Every bug report from a real resume has made it better.
The Hirastra team
來源:DEV Community · dev.to