Dev.to
7/12/2026

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?



