Skip to content

[Feature]: Add editable profile photos to resume templates #890

Description

@RedMoonnn

Is your feature request related to a problem? Please describe.

Resume Matcher can parse, tailor, edit, preview, and export a resume, but users cannot currently include a profile photo as part of the structured resume. This is limiting for regions and roles where a photo is a normal part of the resume format. The current workaround is to add the photo after export in another editor, which breaks the in-app editing workflow and makes the preview differ from the downloaded PDF.

A profile photo also needs different behavior from ordinary resume fields: it should be visually placed over the document without reflowing the name, contact line, section widths, or body content.

Describe the solution you'd like

Add an optional profile-photo field to the resume builder with the following behavior:

  • Accept JPEG, PNG, and WebP images with server-side validation and safe normalization.
  • Let users upload, replace, edit, or remove the photo from the Personal Information section.
  • Provide a familiar freeform crop editor with draggable edges and corners, adaptive portrait/landscape/square shapes, and adjustable display size.
  • Render the photo as a top-corner overlay so enabling it does not change existing resume layout or section widths.
  • Keep preview and downloaded PDF output consistent across all registered resume templates.
  • Preserve the photo when creating tailored/derived resumes while keeping each copy independently editable.
  • Keep binary image data server-managed rather than embedding it in the LLM payload or editable resume JSON.
  • Localize the editing experience for the locales already supported by the frontend.

Describe alternatives you've considered

  • Add the image after PDF export: simple, but the in-app preview is no longer trustworthy and every new export must be edited again.
  • Place the photo in normal document flow: easier to implement, but it shifts the header and body layout and can change pagination.
  • Store a data URL directly in resume JSON: portable, but bloats API/LLM payloads and makes validation, replacement, and lifecycle management harder.
  • Automatically extract a headshot from an uploaded resume: useful as a future enhancement, but embedded logos and other images make confirmation necessary. This request focuses on explicit user-controlled upload and editing.

Additional context

Expected interaction

  1. Open a resume in the builder.
  2. In Personal Information, choose Add photo.
  3. Select a JPEG, PNG, or WebP image.
  4. Drag the crop edges/corners and adjust the rendered size.
  5. Apply the edit and see the same result in the resume preview and generated PDF.
  6. Reopen the editor later to crop, resize, replace, or remove the photo.

Acceptance criteria

  • Resumes without photos remain visually and structurally unchanged.
  • Adding a photo does not shrink or reflow the resume body.
  • Invalid, oversized, malformed, or decompression-bomb images are rejected safely.
  • Photo metadata cannot be overwritten accidentally by ordinary resume saves or LLM-generated content.
  • Deleting a resume also deletes its stored photo.
  • Tailored resume copies receive an independent copy of the source photo.
  • Preview and PDF rendering wait for the image to be ready before capture.

Screenshots

To be added with the implementation PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions