Rezuma
A resume builder for PDFs with selectable text.
Build a resume in your browser without an account. Rezuma creates PDFs with embedded fonts and selectable text. A test script uses pdf.js to check text extraction across nine sample exports.

Why
A resume can look right in a preview and still lose text during PDF export. Rezuma checks text extraction from its sample PDFs with pdf.js.
A PDF with real text
The exporter uses jsPDF to draw text rather than turn the preview into an image. It embeds Source Serif 4 or Source Sans 3, or Noto Naskh Arabic and Noto Sans Arabic for Arabic. The fonts are subsetted and fetched at export time to keep them out of the initial bundle.
Layout uses two passes: content is measured into groups, then paginated. Grouping keeps job titles with their dates and section headings with their first entry, and limits widows and orphans. The preview uses the same font families as webfonts.
Verifying the export
pnpm verify:pdf generates sample PDFs, extracts their text with pdf.js, and checks that the names, employers, dates, bullets and skills in the sample resumes survive extraction, accents included.
AR / classic / sidebar
file ar-classic-sidebar.pdf (65 KB, 1 page)
extracted 2563 chars
checks 51/51 found
order summary → experience → skills → education
arabic 1554 letters (61% of the text)
The nine test cases cover three languages, two styles and four layouts. Expected section order comes from the layout configuration. These checks show what pdf.js extracts from the tested files; they do not establish how a particular applicant tracking system will interpret them.
Arabic and right-to-left
Switching the interface to Arabic sets dir="rtl" on the document. The stylesheets use logical properties to mirror the editor, toolbar and resume layout.
The PDF takes more work:
- Shaping. Letters are substituted with Arabic Presentation Forms before drawing, so they join, and measurement runs the same pass.
- Line breaking. Arabic uses a custom greedy wrap that measures the shaped text, rather than relying on jsPDF's wrapping of unshaped text.
- Extraction. Text comes back as presentation forms. The verification script uses NFKC normalisation to fold it back to base letters before checking it.
Dates use Latin digits in Arabic exports as a compatibility choice for date parsers.
Privacy
Rezuma works without an account and stores resume content in your browser's local storage. It generates PDFs locally. You can download a PDF, save your resume as JSON, or open a saved JSON file to continue editing.
Landing page effects
The landing page's effects (an aurora written as one fragment shader in raw WebGL2, a canvas dot grid, split and scrambled headings) add no dependency. With reduced motion enabled the page shows its final state, and animated text keeps an intact copy in the accessibility tree.
A closer look
A resume as plain text
An illustration of a formatted resume alongside its plain text, using an excerpt from my CV.
Brahim Boussadjra
Senior Fullstack Developer — TypeScript, Vue.js/Nuxt, NestJS
brahim.boussadjra@gmail.com • Bab Ezzouar, Algiers, Algeria
EXPERIENCE
Senior Fullstack Developer — Atqan Gulf Arab Co. Financial Technology Company
Led the migration of a legacy financial management codebase into a fullstack TypeScript monorepo of 2 apps, built on Turborepo and pnpm workspaces.
Architected an API layer with shared TS-Rest contracts, giving the Nuxt 3 frontend and NestJS controllers the same request and response types.
SKILLS
Frontend: Vue.js 3, Nuxt 3, React.js, Composition API, Pinia, Tailwind CSS, Vite
Brahim Boussadjra
Senior Fullstack Developer — TypeScript, Vue.js/Nuxt, NestJS
brahim.boussadjra@gmail.com • Bab Ezzouar, Algiers, Algeria
EXPERIENCE
Senior Fullstack Developer — Atqan Gulf Arab Co. Financial Technology Company
• Led the migration of a legacy financial management codebase into a fullstack TypeScript monorepo of 2 apps, built on Turborepo and pnpm workspaces.
• Architected an API layer with shared TS-Rest contracts, giving the Nuxt 3 frontend and NestJS controllers the same request and response types.
SKILLS
Frontend: Vue.js 3, Nuxt 3, React.js, Composition API, Pinia, Tailwind CSS, Vite
Screens




