Back to feed
Dev.to
Dev.to
7/12/2026
I thought my PDF parser was done — then I ran it on 80 real resumes

I thought my PDF parser was done — then I ran it on 80 real resumes

Short summary

A developer shares lessons from building pdfmuse, a deterministic PDF/DOCX parser for RAG pipelines. Despite passing all synthetic tests, running on 80 real resumes revealed a 10% silent failure rate caused by unhandled form XObjects in Canva-generated PDFs. The fix involved recursing into form XObjects in the content-stream interpreter, eliminating all failures.

  • pdfmuse is a deterministic Rust-based PDF parser with Python/Node/WASM bindings, ~7.7x faster than PyMuPDF
  • 10% silent failure rate on real resumes due to unhandled form XObjects in Canva/Chrome-generated PDFs
  • Lesson: synthetic test suites don't reveal real-world file distribution problems

Generated with AI, which can make mistakes.

Is this a good recommendation for you?

Comments

Failed to load comments. Please try again.

Explore more