# Synthetic resume PDF native-text experiment This experiment creates six fictional, one-page resume PDFs and measures the text returned by `pdf-parse` 1.1.1. The fixtures cover single-column and two-column layouts, Korean text, mixed Korean and English text, a table with links, and an image-only scan used as a native-text negative control. They contain no personal resume data. ## Reproduce From the website root: ```sh npm install python3 -m venv /tmp/refresh-pdf-study-venv . /tmp/refresh-pdf-study-venv/bin/activate python -m pip install reportlab==4.4.9 pillow==12.3.0 python scripts/pdf-extraction-study/generate_fixtures.py node scripts/pdf-extraction-study/measure-native-text.mjs ``` The Korean fixtures use the included subset of Noto Sans KR under the SIL Open Font License. Keep the TTF beside the generator. Set `PDF_STUDY_OUTPUT_DIR` for a different output folder. The generator writes the PDFs and a public copy of itself. The measurement script writes exact extracted text, expected and observed anchors, file sizes, page counts, SHA-256 hashes, and a public copy of itself to `public/research/pdf-extraction/`. `native-text-results-v1.json` is an archival record of the original three-fixture run from 2026-09-11. The original two-column and image-only PDF binaries are not bundled; their historical hashes and byte counts cannot be reproduced from the current generator. `native-text-results.json` is the reproducible current six-fixture run. ## Scope This is a native text-layer test. It does not run OCR, score ATS compatibility, infer resume fields, test hiring outcomes, or exercise the refresh.cv production importer. The table/link fixture measures visible text only. It contains two PDF link annotations, but `pdf-parse` does not report their destination metadata.