Skip to content

Corpus expansion — add synthetic Google Docs / Pages / Preview / InDesign samples to hit ≥15 PDFs / ≥4 categories #12

Description

@Vaishnavi1709

Context

Follow-up to #1. PR #11 landed the snapshot harness and seeded the corpus with 6 PDFs across 3 generator categories (LaTeX, Word, react-pdf). The framework auto-detects any PDF dropped into tests/fixtures/pdfs/<category>/, so this issue is pure content work — no code changes needed.

Gap vs. #1's acceptance criteria:

Acceptance criterion After #11 Remaining
PDF count ≥15 6 9
Categories ≥4 3 (latex, word, unknown) ≥1 new category

Why these categories aren't already seeded

Unlike LaTeX templates (which ship rendered example PDFs in their GitHub repos), Google Docs / Pages / Preview / InDesign exports don't exist as committed artifacts anywhere public — they have to be generated manually. PR #11 couldn't curl them.

What to do

Pick a generator, open a resume template in that app, fill with synthetic data (Jane Smith / jane.smith@example.com / 555-0100 / San Francisco, CA — no real personas), export to PDF, drop into the matching tests/fixtures/pdfs/<category>/ subfolder, then:

npm run bake-fixtures   # writes the .expected.json snapshot
git add tests/fixtures/pdfs/<category>/

Filename convention: <generator>-<one-word-characterization>.pdf, e.g. google-docs-modern-template.pdf, mac-pages-creative-template.pdf. No real names in the filename either.

Concrete sourcing pointers

  • Google Docs: Docs → Template Gallery → "Resume" section → pick any (Serif / Coral / Modern Writer). Fill with synthetic data, File → Download → PDF.
  • Apple Pages: File → New → Resume templates. Same drill.
  • macOS Preview: Open one of the above PDFs in Preview, File → Export as PDF (re-saves through Quartz, which produces a meaningfully different byte structure — that's the value of this category).
  • InDesign: If accessible. Otherwise skip and note "InDesign sample pending access" in a comment; 4 categories without InDesign still meets the criterion.

Stretch — more LaTeX variety

While we're at it, adding 2–3 more LaTeX templates from different engines (XeLaTeX vs LuaTeX vs pdfTeX) would catch font-encoding edge cases the current LuaTeX-only Awesome-CV samples don't. Candidates: moderncv, cv-template, friggeri-cv.

Latent issue to investigate while you're in the corpus

PR #11 surfaced one finding worth triaging: laverne-resume.pdf parses with experienceCount: 0 but bulletCount: 6 — the cascade detects 6 bullets in raw text but doesn't attribute them to any role entry. Captured in its snapshot as a regression anchor. If you're adding more Word/Google-Docs samples here, watch whether they hit the same pattern — it'd be a useful corroborating signal for whether this is a real bug.

Acceptance

  • At least one PDF in google-docs/, mac-pages/, or mac-preview/ (any 1+ gets us to 4 categories)
  • Total corpus ≥15 PDFs
  • All snapshots committed alongside their PDFs
  • npm run test green
  • No real PII (filenames, content, or snapshot data) — see tests/fixtures/pdfs/README.md for the privacy guidance

Out of scope

  • Touching the harness in src/lib/heuristics/corpus.test.ts (works as-is)
  • Adding new category subfolders (the canonical list is already in tests/fixtures/pdfs/README.md)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

choreMaintenance, deps, CI config, code cleanupgood first issueGood for newcomerstestingTests, test infrastructure, coverage

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions