Free, open-source resume screener that simulates how 6 real enterprise ATS platforms parse, filter, and score your resume.
Workday • Taleo (Oracle) • iCIMS • Greenhouse • Lever • SuccessFactors (SAP)
Live App • Documentation • Issues • Contribute
I got tired of uploading my resume to "free ATS checkers" that would analyze it, show me a score preview, then lock the actual results behind a $30/month paywall. Every single one of them. They all give you one generic score based on made-up algorithms that have nothing to do with how real applicant tracking systems work.
The thing is, real ATS platforms don't all evaluate resumes the same way. Taleo does strict literal keyword matching. Greenhouse doesn't auto-score at all. iCIMS uses ML-based semantic matching. A single "ATS score" is meaningless if it doesn't tell you which system you're up against.
So I built ATS Screener to give students and job seekers what those paid tools won't: 6 honest scores from 6 real platforms, completely free, completely open source. No paywall, no upsell, no "premium tier" hiding your results. Create a free account and start scanning. Your resume file is parsed entirely in your browser and never uploaded to any server.
Built by Sunny Patel, a student who got tired of paying for meaningless ATS scores.
Caution
This is a independent research project and is not intended to defame, misrepresent, or make claims about any ATS platform or vendor. All scoring simulations are approximations based on publicly available documentation, community reports, and general industry knowledge. They do not reflect the actual proprietary algorithms of any platform. ATS Screener is not affiliated with or endorsed by Workday, Oracle (Taleo), iCIMS, Greenhouse, Lever, SAP (SuccessFactors), or any other ATS vendor. The goal is to help students and job seekers get a general sense of how their resume might perform across different types of resume screening approaches used by leading HCM providers.
Resume (PDF/DOCX) --> Client-Side Parser --> Extracted Text --> Gemma/Gemini AI --> 6 Platform Scores
(Web Worker) (sections, (server) (formatting, keywords,
file never uploaded skills, dates) experience, education)
Job Description (optional) --> Targeted Keyword Matching Against Each Platform's Strategy
- Upload your resume (PDF or DOCX). Parsed entirely client-side in a Web Worker. The file itself is never uploaded.
- Optionally paste a job description for targeted scoring with keyword matching.
- Get scored by 6 systems, each with different weights for formatting, keywords, sections, experience, and education.
- See what to fix with platform-specific suggestions ranked by impact, telling you exactly what to change and why.
Each profile is based on research into the platform's documented parsing and matching behavior:
| Platform | Vendor | Keyword Strategy | Key Behavior |
|---|---|---|---|
| Workday | Workday | Exact + HiredScore AI | Strict parser, skips headers/footers, penalizes creative formats |
| Taleo | Oracle | Literal exact match | Strictest keyword matching, auto-reject via Req Rank |
| iCIMS | iCIMS | Semantic (ML-based) | Role Fit AI, grammar-based NLP parser, most forgiving |
| Greenhouse | Greenhouse | Semantic (LLM-based) | No auto-scoring by design, human review with scorecards |
| Lever | Employ | Stemming-based | No ranking, search-dependent, abbreviation-blind |
| SuccessFactors | SAP | Taxonomy normalization | Textkernel parser, Joule AI skills matching |
| Layer | Choice | Why |
|---|---|---|
| Framework | SvelteKit 5 (Svelte 5 runes) | Compiled to vanilla JS, ~15KB runtime. No VDOM overhead. |
| Styling | Scoped CSS + CSS custom properties | Dark glassmorphic design. No Tailwind. Component-scoped. |
| PDF Parsing | pdfjs-dist (Web Worker) | Mozilla-maintained, fully client-side. |
| DOCX Parsing | mammoth | Client-side Word to text extraction. |
| NLP | Custom TF-IDF + tokenizer + skills taxonomy | Lightweight, browser-native, supports 8+ industries. |
| LLM | Gemma 3 27B (primary), Llama 3.3 70B via Groq (fallback) | Cross-provider fallback: Google (14,400 RPD) + Groq (14,400 RPD) on independent free tiers. |
| Auth | Firebase Authentication | Google + email/password sign-in. Free Spark plan. |
| Storage | Cloud Firestore | Scan history per user. Free Spark plan. |
| Hosting | Vercel | Free hobby tier. Edge functions for API. |
| Testing | Vitest + Playwright + @testing-library/svelte | Unit, integration, and E2E coverage. |
Total infrastructure cost: $0. Everything runs on free tiers.
git clone https://github.com/sunnypatell/ats-screener.git
cd ats-screener
pnpm installCopy .env.example to .env and add your API keys:
cp .env.example .env
# add GEMINI_API_KEY and PUBLIC_FIREBASE_* valuespnpm dev # start dev server
pnpm test # run tests
pnpm check # typecheck
pnpm lint # lint
pnpm build # production buildsrc/
├── routes/
│ ├── +page.svelte # Landing page
│ ├── scanner/+page.svelte # Scanner (upload, parse, score, results)
│ ├── login/+page.svelte # Auth (Google + email/password)
│ ├── history/+page.svelte # Scan history (past results)
│ └── api/analyze/+server.ts # LLM proxy endpoint
├── lib/
│ ├── components/
│ │ ├── landing/ # Hero, Features, HowItWorks, Footer
│ │ ├── scoring/ # ScoreDashboard, ScoreCard, ScoreBreakdown
│ │ ├── upload/ # ResumeUploader, JobDescriptionInput
│ │ └── ui/ # Navbar, UserMenu, AuthButton, Logo, animations
│ ├── engine/
│ │ ├── parser/ # PDF/DOCX parsing, section detection
│ │ ├── scorer/ # 6 ATS profiles + scoring engine
│ │ ├── nlp/ # Tokenizer, TF-IDF, skills taxonomy
│ │ └── llm/ # Gemini client, prompts, fallback
│ ├── stores/ # Svelte 5 rune stores (auth, resume, scores)
│ └── styles/ # CSS tokens, global styles
├── docs/ # Astro Starlight documentation site
└── tests/ # Vitest unit + integration tests
Each ATS profile applies different weights to 5 scoring dimensions:
- Formatting - parseability, structure, ATS-friendliness
- Keyword Match - exact/fuzzy/semantic matching (varies by platform)
- Sections - presence of required sections (contact, experience, education, skills)
- Experience - quantified achievements, action verbs, recency
- Education - degree, field relevance, institution
Two modes: General (resume only) for ATS readiness, or Targeted (resume + job description) for role-specific keyword matching.
See CONTRIBUTING.md for development setup and contribution guidelines.
See SECURITY.md for vulnerability reporting. Resume files are parsed client-side and never uploaded. Extracted text is sent to Google Gemini for AI analysis.