{
  "generatedAt": "2026-09-11T14:56:03.781Z",
  "method": {
    "parser": "pdf-parse 1.1.1 default text extraction",
    "fixtureTools": "ReportLab 4.4.9 and Pillow 12.3.0",
    "scope": "Native PDF text layer only; no OCR and no resume field inference.",
    "productionDifference": "refresh.cv uses a customized per-page native text inventory plus page rendering and visual OCR/reconciliation by default. These measurements are not the full production importer.",
    "reproductionFiles": [
      "/research/pdf-extraction/generate-fixtures.py.txt",
      "/research/pdf-extraction/measure-native-text.mjs.txt"
    ]
  },
  "results": [
    {
      "file": "synthetic-single-column.pdf",
      "layout": "single-column text layer",
      "bytes": 1912,
      "sha256": "f73043edc406f1e7e9c56a1829712fd4926dd87ac7b4ef16c6a16803929501d1",
      "pages": 1,
      "extractedCharacters": 378,
      "expectedAnchorCount": 10,
      "foundAnchorCount": 10,
      "missingAnchors": [],
      "expectedAnchorOrder": [
        "single-contact",
        "SUMMARY",
        "single-summary",
        "EXPERIENCE",
        "single-role",
        "single-impact",
        "EDUCATION",
        "single-school",
        "SKILLS",
        "single-skills"
      ],
      "observedAnchorOrder": [
        "single-contact",
        "SUMMARY",
        "single-summary",
        "EXPERIENCE",
        "single-role",
        "single-impact",
        "EDUCATION",
        "single-school",
        "SKILLS",
        "single-skills"
      ],
      "anchorOrderMatches": true,
      "extractedText": "ALEX RIVERA - SYNTHETIC RESUME\nsingle-contact synthetic@example.invalid\nSUMMARY\nsingle-summary Builds accessible data tools for small teams.\nEXPERIENCE\nsingle-role Product Engineer | Example Lab | 2023-2026\nsingle-impact Reduced report setup time from 40 to 12 minutes.\nEDUCATION\nsingle-school Example Institute | 2023\nSKILLS\nsingle-skills TypeScript, SQL, accessibility testing"
    },
    {
      "file": "synthetic-two-column.pdf",
      "layout": "two-column text layer",
      "bytes": 1842,
      "sha256": "3f24fe0ed54904a66719722366b6503bedb48bf14e30c1d428b8a7f03a6cbf0c",
      "pages": 1,
      "extractedCharacters": 287,
      "expectedAnchorCount": 10,
      "foundAnchorCount": 10,
      "missingAnchors": [],
      "expectedAnchorOrder": [
        "LEFT-SUMMARY",
        "left-focus",
        "LEFT-EXPERIENCE",
        "left-role",
        "left-result",
        "RIGHT-SKILLS",
        "right-skill SQL",
        "right-skill Forecasting",
        "RIGHT-EDUCATION",
        "right-school"
      ],
      "observedAnchorOrder": [
        "LEFT-SUMMARY",
        "left-focus",
        "LEFT-EXPERIENCE",
        "left-role",
        "left-result",
        "RIGHT-SKILLS",
        "right-skill SQL",
        "right-skill Forecasting",
        "RIGHT-EDUCATION",
        "right-school"
      ],
      "anchorOrderMatches": true,
      "extractedText": "MORGAN LEE - SYNTHETIC TWO-COLUMN RESUME\nLEFT-SUMMARY\nleft-focus Operations analyst\nLEFT-EXPERIENCE\nleft-role Analyst | Sample Works\nleft-result Cut weekly review time by 25 percent.\nRIGHT-SKILLS\nright-skill SQL\nright-skill Forecasting\nRIGHT-EDUCATION\nright-school Demo University | 2022"
    },
    {
      "file": "synthetic-scanned-image.pdf",
      "layout": "image-only scan",
      "bytes": 30032,
      "sha256": "a177c4dd129943db739ea1aab6dc0afe9a1d85bd546c041b3274740992f36c3f",
      "pages": 1,
      "extractedCharacters": 0,
      "expectedAnchorCount": 6,
      "foundAnchorCount": 0,
      "missingAnchors": [
        "scan-contact",
        "EXPERIENCE",
        "scan-role",
        "scan-result",
        "SKILLS",
        "scan-skills"
      ],
      "expectedAnchorOrder": [
        "scan-contact",
        "EXPERIENCE",
        "scan-role",
        "scan-result",
        "SKILLS",
        "scan-skills"
      ],
      "observedAnchorOrder": [],
      "anchorOrderMatches": null,
      "extractedText": ""
    }
  ]
}
