Resource library

QA Resume

QA Resume PDF Versus HTML File Guide

Compare QA resume PDF versus HTML export behavior, use cases, security controls, file naming, page handling, and checks before sending either format.

19 min read | 3,975 words

TL;DR

Choose PDF for a fixed application document only after confirming the portal can extract its image-based content. Choose HTML for source-level editing, local review, or controlled portfolio hosting, then inspect the sanitized standalone file before sharing it.

Key Takeaways

  • QAJobFit creates its PDF from a PNG image of the rendered preview, while HTML keeps sanitized markup with copied inline styles.
  • Use the required delivery format first, then inspect the actual downloaded artifact instead of assuming its extension guarantees compatibility.
  • The PDF path uses A4 pages and 10mm margins but does not add semantic page-break rules for resume sections.
  • The HTML path removes listed active or embedding tags, keeps style attributes, and wraps the result in a standalone browser document.
  • Both formats derive the file name from the preview H1, so rename job-specific versions when the candidate name alone is not enough.
  • Test text extraction, links, page boundaries, browser rendering, private data, and the employer's upload rules before sending.

Choose PDF when a recruiter or application portal expects a fixed document, and choose HTML when you need an editable browser document for review or hosting. In QAJobFit, QA resume PDF versus HTML is also a technical choice: PDF rasterizes the preview into page images, while HTML preserves sanitized markup and inline computed styles.

use-resume-export.tsx proves this split. The QA resume builder sends one live preview through two code paths. This guide shows what each document holds, where it can fail, and what to check before you send it.

1. What Does QA Resume PDF Versus HTML Mean?

QA resume PDF versus HTML means two document forms made from one Resume Studio representation. The PDF stores a fixed A4 representation as a PNG image. The HTML stores clean markup, inline styles, a small page shell, and none of the Resume Studio controls.

The choice should follow the way you plan to send the document. A fixed PDF helps when a reader asks for that type and wants a set visual representation. HTML helps when you want to inspect tags, edit the source, open the resume in a browser, or host a checked copy.

Decision factor QAJobFit PDF QAJobFit HTML Practical choice
Main representation PNG image placed in a PDF Sanitized HTML elements with inline styles Match the recipient's accepted format
Editability Requires a PDF or image editing workflow Can be edited as HTML and CSS Use HTML for controlled source edits
Visual stability Fixed page canvas after export Browser rendering can vary by environment Use PDF for a reviewed snapshot
Text structure The exporter adds an image, not PDF text objects Text remains in HTML elements Test extraction before an ATS upload
Page behavior A4 pages with repeated, shifted image placement Continuous browser document Inspect PDF section splits carefully
Portability Opens in common PDF readers Opens in browsers but may need hosting for a URL Use the requested channel
Security step Captures the rendered clone Sanitizes the clone before serialization Review private content in both files
Best code-proven use Recruiter, ATS, and direct application UI path Editing, portfolio hosting, and quick sharing UI path Treat the UI copy as guidance, not a guarantee
  • What the UI says: Resume Studio marks PDF as best for recruiters, ATS uploads, and direct job use. It marks HTML as best for light edits, portfolio hosting, and quick sharing. These labels show the planned use, while the export code shows the limits you must test.

A sound choice has two gates. First, follow the employer's exact document requirement. Second, prove that the saved document keeps the text and representation that the reader needs. The ATS-friendly QA resume guide can help simplify content, but you must still test the document that leaves your browser.

2. How Does QA Resume PDF Versus HTML Export Start?

The export starts with the resume representation on screen, not the raw ResumeData object. ResumePreview.tsx draws one of five ResumeTemplate values: modern, classic, minimal, professional, or technical. Its outer resume box has the resumePreview class, and both export areas send either pdf or html through the same callback.

  • Shared state: The ExportFormat type in types.ts permits only those two values. ResumeBuilderTabs.tsx gets exportResume and exporting from useResumeBuilder, sends them to the preview, and locks both buttons while work runs. This stops a second click through the shown controls before the first task ends.
Pipeline stage Shared behavior PDF branch HTML branch
Selection Find .resumePreview, then use a class-fragment fallback Same element Same element
Snapshot Deep-clone the preview Same clone Same clone
Styling Copy computed styles recursively and remove preview transform Same styles Same styles
Isolation Put the clone in a fixed wrapper far off screen Render clone to canvas Serialize clone after sanitizing
File creation Build name from preview H1 Save with jsPDF Create a UTF-8 HTML Blob
User state Set exporting, show a toast, catch failures Return true on success Return true on success
Cleanup Remove the hidden wrapper in finally Wrapper removed Wrapper and later object URL removed

The core lookup and clone code is shown below. It keeps the live screen in place while it makes a copy.

const findResumeElement = () => {
  return document.querySelector('.resumePreview') as HTMLElement ||
    document.querySelector('[class*="shadow-inner bg-white"]') as HTMLElement ||
    null;
};

const cloneResumeForExport = (sourceElement: HTMLElement) => {
  const wrapper = document.createElement('div');
  const clone = sourceElement.cloneNode(true) as HTMLElement;
  const width = Math.max(sourceElement.scrollWidth, sourceElement.offsetWidth, 794);

  wrapper.style.position = 'fixed';
  wrapper.style.left = '-100000px';
  wrapper.style.width = `${width + 48}px`;
  copyComputedStyles(sourceElement, clone);
  wrapper.appendChild(clone);
  document.body.appendChild(wrapper);

  return { clone, cleanup: () => wrapper.remove() };
};
  • Style copy: copyComputedStyles walks each source child and its cloned match by index. It writes each set style into the target's style field, turns off motion and transitions, and clears the root transform, shadow, and hidden overflow. The live view uses a 0.85 scale, but the saved copy needs its full measured width.
  • Off-screen work area: The wrapper has 24 pixels of pad, a gray fill, a width 48 pixels wider than the clone, and a far-left fixed spot. It stays in the page only while one branch runs. If the hook cannot find the preview, it shows an error and returns null before either path starts.

The saved document reflects the resume that is on screen at that moment. Saving a named version and exporting it are distinct tasks, so load the right version first. Check the QA resume keywords guide before the snapshot when the role needs a new evidence mix.

This same start point is key to the QA resume PDF versus HTML choice. A change in the live template, text, or links affects both branches. Export both again after any source change if you want a fair document check.

3. What Does the PDF Export Pipeline Create?

When you export QA resume as PDF, exportAsPdf loads html2canvas and jsPDF after the click. It clones the resume first, then asks html2canvas to draw that clone at scale 2, with a white fill, cross-origin image handling on, logs off, and the clone's full scroll size used as the draw window.

The official html2canvas documentation says that the tool builds a representation from DOM facts rather than taking a native screen shot. It also notes that unsupported CSS and cross-origin content can affect the result. A clean in-app representation is useful evidence, but it does not show that each canvas detail will match.

The code turns the finished canvas into a PNG data URL. It then makes a portrait A4 document in millimeters, reads page width and height from jsPDF, and takes 10mm from each edge. The image is fit to that content width while its canvas ratio stays the same.

const canvas = await html2canvas(clone, {
  scale: 2,
  useCORS: true,
  logging: false,
  backgroundColor: '#ffffff',
  windowWidth: clone.scrollWidth,
  windowHeight: clone.scrollHeight
});

const imageData = canvas.toDataURL('image/png');
const pdf = new jsPDF('p', 'mm', 'a4');
const pageWidth = pdf.internal.pageSize.getWidth();
const pageHeight = pdf.internal.pageSize.getHeight();
const contentWidth = pageWidth - PDF_MARGIN_MM * 2;
const contentHeight = pageHeight - PDF_MARGIN_MM * 2;
const imageHeight = (canvas.height * contentWidth) / canvas.width;

The first page gets the whole PNG at the top margin. When more height remains, the code adds a page and puts the same tall image at a negative vertical offset. It repeats until all of the measured image has moved through the page area. The jsPDF documentation lists the client-side image, page, and save calls used here.

This path keeps a fixed visual copy, but it does not make PDF text, heads, or links from the resume DOM. The code calls addImage, not a text call. Text select, copy, link clicks, screen-reader tags, and ATS text read must be checked in the saved document instead of assumed from the source representation.

The page math also does not scan for section edges. A head, job row, or line can cross a page edge because the code cuts one long image by page position. Check each page at normal size and high zoom, with close care near work bullets and contact details at each split.

The UI still points to this branch for recruiters, ATS uploads, and direct application use. That can be right when PDF is asked for and the target site can read the result. Use the ATS-friendly resume checklist, then prove that this exact PDF works in the application flow.

In the QA resume PDF versus HTML choice, the PDF is the set snapshot. Its strength is a fixed reviewed representation, while its image-based text and page cuts are the main facts to test. Keep both points in view before you send it.

4. What Does the HTML Export Pipeline Preserve?

When you export QA resume as HTML, the hook starts with the same deep clone and copied styles. It does not save the React app, editor forms, tabs, saved-version list, or template buttons. It saves only the cloned resume representation inside a small page shell.

  • Clean step: The code loads DOMPurify and uses its HTML profile. It allows style, blocks script, iframe, object, embed, link, meta, base, and form tags, and blocks srcdoc. The official DOMPurify project documentation explains the HTML-only profile and the allow and block rules used by this call.
const sanitizedResumeHtml = DOMPurify.sanitize(clone.outerHTML, {
  USE_PROFILES: { html: true },
  ADD_ATTR: ['style'],
  FORBID_TAGS: [
    'script', 'iframe', 'object', 'embed',
    'link', 'meta', 'base', 'form'
  ],
  FORBID_ATTR: ['srcdoc'],
});

const documentHtml = `<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>QA Resume</title>
  </head>
  <body style="margin:0;padding:32px;background:#f3f4f6;font-family:Arial,sans-serif;">
    <main style="max-width:960px;margin:0 auto;">
      ${sanitizedResumeHtml}
    </main>
  </body>
</html>`;
  • Page shell: The file sets UTF-8, adds a small-screen viewport, uses the fixed title QA Resume, and puts the clean clone in a centered main. The copy step runs before the clean step, and style is allowed. Much of the view can thus travel with the tags without the app's Tailwind file.

HTML keeps text and tag order instead of turning the whole representation into one image. A reader can inspect heads, text blocks, lists, and links with browser tools. You can also edit text or CSS in a code editor, though that is source work and not the same as the Resume Studio forms.

The clean step is not a privacy check. It blocks or allows markup based on set sanitization rules, but it cannot know if an email, phone, client name, project name, or link should be public. Read the content itself before using HTML resume for portfolio sharing.

  • Browser check: Open the file in the browser where you plan to view or host it. Inline styles may keep the current look, but font choice and browser rules can still shift line wraps. Compare it with sound QA tester resume examples, then judge your own text and layout on their own facts.

5. Which Format Should You Send to Recruiters and ATS Portals?

A PDF versus HTML resume for ATS use should follow the portal requirement and a real text check. If the post asks for PDF and the saved document is accepted and read well, use the checked PDF. If the site asks for some other type, a renamed PDF or HTML document does not meet that requirement.

  • Why the PDF needs care: QAJobFit's PDF pages hold a PNG image. A target tool may show that image yet fail to get useful text or links from it. The codebase gives no ATS fit pledge, so the .pdf suffix and the Export tab label do not prove that parsing will work.

Run a short evidence test before upload. Open the saved PDF in a second reader, try to select one sentence, search for a rare skill, and click any shown link. If these checks fail, a person may still see the page, but you have not shown that a parser can read it.

  • Why HTML is not the default upload: HTML keeps text tags, but many job sites do not list .html in the file picker. Read the real control and help text on the target site. Do not change the suffix just to pass the picker because the data type stays the same.

For email or recruiter chat, PDF is often the simpler checked document when PDF is accepted. Give it a clear job-based name after export, reopen that exact copy, and check each page. Do not send a screen shot of the live representation because it may include scale, scroll crop, or app controls.

Content quality does not depend on the document type. Use the ATS-friendly QA resume guide for clear order and the QA resume keyword guide for true role fit. Then check your evidence against QA tester resume examples without adding tools or results you cannot defend.

  • Keep the source: Save an edit-ready version even when PDF is the file you send. Resume Studio can hold Playwright-heavy, API-heavy, CI/CD-heavy, and cyber QA copies. Load the right one, check its target role and company fields, and only then save the live view.

The safest flow is requirement first, code path second, document check third. A polished document that breaks text read, hides a bad page cut, or holds the wrong role version is not ready. This QA resume PDF versus HTML decision keeps the send choice tied to facts, not to the document icon.

6. When Is HTML Better for Editing or Portfolio Sharing?

HTML resume for portfolio sharing is useful when you control the page and need text you can inspect. The document can open on your machine, live in source control, or start a hosted page. Its inline styles make it less tied to the QAJobFit app's CSS files.

  • Source edits: Use HTML when you plan to make careful code changes after export. You can change the page title, tune space, add safe page tags, or place the resume in a larger site. Keep the first saved copy next to the edit so you know what changed after Resume Studio.
  • No round trip: The file is not a Resume Studio import type. A markup edit does not change ResumeData, saved versions, target role fields, or the forms in ResumeBuilderTabs.tsx. Return to the QA resume builder when the edit must stay useful across job-specific copies.

A public page changes who can see the data. A local document may hold contact facts meant for one recruiter, while a public URL can be found and copied by others. Remove home details, client names, internal links, repo secrets, or employer facts that should not be public.

  • Text order: HTML lets you inspect the tag order with styles off or through browser tools. Check that profile, skills, work, projects, and school facts still make sense in that view. Use QA tester resume examples to check proof depth, not to add stock parts that do not fit your work.
  • Hosting gap: The saved shell has a fixed title and no page description, canonical URL, data tool, publish step, or host setup in use-resume-export.tsx. Treat it as a file you can move. Add only the host rules you know, need, and can keep safe.

QA resume PDF versus HTML also affects how you make later edits. Change the Resume Studio source when the new text should feed both outputs. Change HTML only when the hosted copy needs a web-only requirement and you can track that split.

7. How Are Styles, File Names, and Downloads Built?

The QA resume export file name comes from the first h1 inside .resumePreview. buildFileName falls back to qa-resume, trims the text, swaps each run of non-letter or non-number marks for a hyphen, cuts edge hyphens, makes the name lowercase, and adds the chosen suffix.

  • Name result: A preview head such as Asha Rao, Senior SDET becomes asha-rao-senior-sdet.pdf or asha-rao-senior-sdet.html. The function does not use ResumeMetadata.versionName, targetRole, or targetCompany. Two job copies with the same H1 can download with the same base name, based on how the browser treats duplicate names.
const buildFileName = (extension: 'pdf' | 'html') => {
  const heading = document.querySelector('.resumePreview h1')?.textContent || 'qa-resume';
  const baseName = sanitizeFileName(heading) || 'qa-resume';
  return `${baseName}.${extension}`;
};

const exportResume = async (format: ExportFormat) => {
  const resumeElement = findResumeElement();
  if (!resumeElement) return null;

  try {
    setExporting(true);
    return format === 'pdf'
      ? await exportAsPdf(resumeElement)
      : await exportAsHtml(resumeElement);
  } finally {
    setExporting(false);
  }
};

Rename the document when the send case needs more detail. A clear name can use your name, role, and company while leaving out private notes. Open the renamed document once more to prove that its suffix and data did not change.

  • HTML save path: The HTML branch makes a Blob with text/html;charset=utf-8, gets a short-lived URL, adds a download link, clicks it, removes it, and clears the URL after one second. MDN's URL.createObjectURL() reference says the call returns a blob URL and revokeObjectURL() frees it. The PDF branch lets jsPDF save its file at once.
  • User feedback: Both paths share success and fail signals. Each good branch returns true and shows a toast. The main function catches an error, logs the type, shows a fail toast, returns null, and clears exporting in finally.

Read how QAJobFit works for the wider product flow, but check the saved document on its own. The toast shows that the save code ran. It does not prove that the name, text, links, and page breaks are ready.

8. What Security and Rendering Limits Should You Check?

To sanitize exported resume HTML, QAJobFit runs DOMPurify after it copies the representation and its styles. It then puts the clean result in a fixed page shell. The path does not add active scripts after that step, so later edits should not add copied widgets, forms, or third-party code without a fresh safety review.

  • Allowed styles: Style fields stay so the file can keep much of the resume look. The clean step does not remove all visual data. Check links and any tag that can load a resource, and do not host a file that points to a private system or has track values you did not mean to share.
  • Canvas limits: html2canvas reads the DOM and the CSS it knows. A web font, icon, image, or rule may not draw as planned, and cross-origin content can affect the canvas. Check each template in the same browser and device used to save the file.
  • Page cuts: QA resume PDF page handling uses math on one tall image rather than section-aware page rules. The code does not seek heads, job blocks, bullet groups, or page-break styles before it adds a page. A new page can start with the tail of one section or cut through a line.

Neither path hides private resume data. PDF capture takes what the clone shows, and HTML keeps what passes the sanitization rules. Remove secrets, client facts, internal URLs, hidden notes drawn by the template, and any claim that should not leave your work area.

  • Access checks: The image PDF does not gain heading tags from the first DOM. HTML keeps more tag order, but its markup and copied styles still need keyboard, contrast, link text, read order, and zoom checks before a public post. Test the file with the tools your reader will use.

Safety and fit are facts to test, not traits granted by a suffix. If the target needs text search, prove it. If the target is public, share less private data. For a key application, compare both outputs with the ATS-friendly QA resume checks before you send one.

This QA resume PDF versus HTML check should end with a risk call. Pick the document whose known limits fit the target use, then note any gap you still need to fix. Do not let a good preview hide a weak saved result.

9. Step by Step: Export and Inspect Both Files

Use this process to verify downloaded QA resume documents from the same source version. It keeps content review, document creation, and send checks apart, so a success toast is not the only evidence that the export is ready.

  1. Load the intended saved version. Confirm the shown version name, target role, and target company in the Export tab before you change a field.
  2. Review the source content. Check profile, skills, work, projects, and school facts in the QA resume builder, then prove that each claim fits this job.
  3. Check keyword proof. Use the QA resume keyword guide to find gaps, but add a term only when your work backs it.
  4. Choose and inspect the template. Switch among Modern, Classic, Minimal, Pro, and Tech, then read the whole preview from top to foot.
  5. Export the PDF. Wait for the load state to clear and the success toast to show, then find the new file instead of an old copy.
  6. Inspect each PDF page. Check margins, font shape, page count, section cuts, contact facts, bullet ends, and text close to a page edge.
  7. Test PDF text read. Search for your surname and one rare skill, try to select a line, and click shown links where the reader allows it.
  8. Export the HTML. Open the new file in a browser, change the window width, tab through links, and compare text order with the preview.
  9. Inspect HTML source. Check that the file has the right text, inline styles, and no stray private link or fact. Search for place marks before you host it.
  10. Confirm both file names. Rename job copies with clear terms, keep the right suffix, and remove old copies from the send folder.
  11. Follow the target rule. Upload only a type the site accepts, read any parsed view it shows, and replace the file if facts are gone or out of order.
  12. Run a final proof check. Compare the sent copy with the job facts and keep only claims you can explain in an interview.
Inspection area PDF check HTML check Failure response
Content order Read pages in order and watch image splits Read without styles and inspect DOM order Return to Resume Studio for structural changes
Links Click visible contact and portfolio links Use keyboard and click each anchor Correct the source value, then export again
Fonts Zoom in and inspect every glyph Test the target browser and fallback font Choose a safer template or adjust source content
Page handling Check every A4 boundary Confirm continuous flow at narrow widths Shorten or reorganize sections before PDF export
File name Confirm person, role, company, and .pdf Confirm person, role, company, and .html Rename the downloaded copy without changing type
Text access Search and select distinctive text Select text and inspect heading order Use a destination-compatible artifact
Privacy Review every visible page Search source and visible text Remove private data before any sharing
Requirements Match the portal's accepted formats Host or attach only when explicitly suitable Follow the stated channel instead of guessing

Use the same resume version for both documents. If the source text differs, you cannot tell if the document type or the text caused the fault. If you change a bullet, template, or link after the first export, make both documents again before you judge them.

Do not stop at the browser's download mark. A good save event shows that the client reached its save path, not that each page, glyph, link, parser field, or privacy choice is right. Keep the final application copy away from drafts, and open it one last time from that folder.

The best document still needs strong evidence. Review the section patterns in the QA tester resume guide, then use only what fits your own work. A document type cannot fix vague ownership, false metrics, or a skill list with no project evidence.

Conclusion: Choose the Format for the Delivery Channel

QA resume PDF versus HTML is a send choice backed by two code paths. The PDF branch draws one PNG and places it across A4 pages with 10mm margins. The HTML branch keeps clean tags and copied styles inside one browser document.

Choose the type the target asks for, then test its known risks. For PDF, check text access, page cuts, links, fonts, and portal text read. For HTML, check source text, browser representation, tag order, links, privacy, and each change made after the clean step.

Keep the source in Resume Studio and save a job-based version before export. A download should stand for one named application, not a broad draft that just looks done. Rename the document when the H1-based name does not show the role or company.

Open the QA resume builder, load the copy for your next application, save both types, and run the matrix above. Send only the document that meets the target requirements and keeps the evidence you want the reader to see.

Interview Questions and Answers

What is the main technical difference between QAJobFit's PDF and HTML resume exports?

The PDF path rasterizes the rendered preview to a PNG and places that image into A4 pages. The HTML path sanitizes the cloned preview and serializes its text elements with copied inline styles. That difference changes text extraction, editability, pagination, and the checks required before delivery.

How would you test the PDF export before an ATS submission?

I would open the exact downloaded file in a separate reader, inspect every page boundary, search for distinctive text, try selecting a sentence, and test visible links. I would then upload it to the real portal and review any parsed preview. I would not assume the PDF extension proves ATS readability.

Why does the export workflow clone the resume preview?

The clone lets the exporter remove preview scaling, copy computed styles, and measure full content without changing the visible editor. It is mounted in an off-screen wrapper for rendering or serialization. A cleanup function removes that temporary DOM after either branch finishes, including when an error occurs.

How does QAJobFit handle multi-page PDF output?

It scales one canvas image to the PDF content width, uses 10mm margins, and calculates the resulting image height. When content remains, it adds another A4 page and shifts the same image upward. Because the code has no section-aware break logic, I would test for split headings and bullets.

What security controls are present in the HTML export?

The exporter applies DOMPurify with the HTML profile, keeps style attributes, forbids several executable or embedding tags, and blocks `srcdoc`. It places the sanitized result in a fixed document shell. I would still review private content, links, resource references, and every post-export edit before public hosting.

How would you prevent sending the wrong targeted resume version?

I would load the named saved version, confirm its target role and company in the Export tab, and compare the visible content with the job posting. After export, I would rename the H1-based file with clear job context and reopen it. I would keep final artifacts separate from older downloads.

What would you verify in a QA resume export regression test?

I would cover both format buttons, shared loading state, missing-preview errors, success and failure toasts, file naming, hidden-clone cleanup, and HTML object URL cleanup. I would also inspect PDF page slicing, HTML sanitization, template fidelity, text order, links, and behavior with long resume content.

Frequently Asked Questions

Is PDF always better than HTML for a QA resume?

No. PDF is the practical choice when a recruiter or portal requests a fixed document and the exported file passes extraction and page checks. HTML is better for source editing, browser review, or controlled hosting. The right format is the one the receiving channel accepts and your inspection proves usable.

Can an ATS read the QAJobFit PDF export?

QAJobFit builds the PDF from a PNG image of the resume preview, so the code does not create semantic PDF text objects. ATS behavior can differ, and the repository makes no compatibility guarantee. Test search, selection, and the portal's parsed preview before relying on that PDF for an application.

Does QAJobFit sanitize exported resume HTML?

Yes. The HTML branch runs the cloned preview through DOMPurify's HTML profile, permits style attributes, blocks several active or embedding tags, and rejects `srcdoc`. Sanitization does not remove private resume details or validate later edits, so review the source and visible content before hosting or sharing it.

Why can a resume section split across PDF pages?

The exporter renders one tall canvas, places its PNG on the first A4 page, then adds pages with the same image shifted upward. It does not detect headings, bullets, or experience blocks before each boundary. Inspect every page and shorten or reorganize content when a split harms readability.

How does QAJobFit choose the resume export file name?

The exporter reads the first H1 inside the resume preview, replaces runs of non-alphanumeric characters with hyphens, trims edge hyphens, converts the result to lowercase, and adds `.pdf` or `.html`. It does not use the saved version name, target role, or target company metadata.

Does HTML preserve the selected QA resume template?

It preserves the cloned template structure and copies computed styles into inline style attributes before sanitization. The standalone document can therefore resemble the preview without the application's style sheet. Browser fonts, unsupported values, later edits, and different viewport widths can still alter wrapping, spacing, or visual details.

Which format should I use for a QA portfolio?

HTML is the more adaptable starting point for browser review or controlled portfolio hosting because its text and markup remain inspectable. Remove private data, update the fixed document title, test links and responsive behavior, and add the publishing controls your site needs. Use PDF when visitors need a reviewed download.

Related Guides