init
This commit is contained in:
commit
d295c7f139
1527 files changed
+270726
No files matched your search
@@ -0,0 +1,49 @@
|
||||
# ATS Normalization Test Fixture
|
||||
|
||||
This file is a regression fixture for the text normalization pass added in `generate-pdf.mjs` (issue #1). It contains the Unicode artifacts that can cause parsing errors or display issues in ATS systems and legacy parsers. Use it to verify that the normalizer converts them to ASCII-safe equivalents.
|
||||
|
||||
## Problematic Unicode (normalizer must convert these)
|
||||
|
||||
| Name | Codepoint | Sample line | Converts to |
|
||||
|------|-----------|-------------|-------------|
|
||||
| Em-dash | U+2014 | Built and sold a SaaS — now shipping AI in production. | Built and sold a SaaS - now shipping AI in production. |
|
||||
| En-dash | U+2013 | 2020–2024 at Acme Corp. | 2020-2024 at Acme Corp. |
|
||||
| Curly double quote | U+201C / U+201D | "Led the migration" was a real bullet. | "Led the migration" was a real bullet. |
|
||||
| Curly single quote | U+2018 / U+2019 | The team's velocity tripled. | The team's velocity tripled. |
|
||||
| Ellipsis | U+2026 | And so on… | And so on... |
|
||||
| Zero-width space | U+200B | Helloworld (there is a ZWSP between the two words) | Helloworld (removed) |
|
||||
| Non-breaking space | U+00A0 | 5 years experience | 5 years experience (regular space) |
|
||||
|
||||
## Writing quality guidelines (writer must follow these)
|
||||
|
||||
The normalizer does NOT fix writing style. These are enforced by the rules in `modes/_shared.md` and should never appear in generated CV text in the first place.
|
||||
|
||||
- "passionate about machine learning"
|
||||
- "results-oriented professional with a proven track record"
|
||||
- "leveraged cutting-edge LLM technology"
|
||||
- "spearheaded a strategic initiative"
|
||||
- "facilitated cross-functional synergies"
|
||||
- "crafted robust, scalable solutions"
|
||||
- "in today's fast-paced digital world"
|
||||
- "5+ years of experience in artificial intelligence"
|
||||
- "demonstrated ability to drive innovative outcomes"
|
||||
|
||||
## How to verify the normalizer
|
||||
|
||||
```bash
|
||||
# From the project root, after editing generate-pdf.mjs:
|
||||
node --check generate-pdf.mjs
|
||||
|
||||
# Quick smoke test of the normalizer logic (no Playwright needed):
|
||||
node -e "
|
||||
import('./generate-pdf.mjs').catch(()=>{});
|
||||
" 2>/dev/null || true
|
||||
```
|
||||
|
||||
For an end-to-end test, generate a CV PDF from a known dirty HTML file and inspect the output:
|
||||
|
||||
```bash
|
||||
node generate-pdf.mjs /tmp/dirty-cv.html /tmp/clean-cv.pdf --format=a4
|
||||
# Expected log line:
|
||||
# 🧹 ATS normalization: N replacements (em-dash=X, smart-double-quote=Y, ...)
|
||||
```
|
||||
Reference in new issue
Block a user