Free tool

Job application form generator

Accept job applications on your careers page without a backend. Build a form for applicant details and a cover letter, style it, and copy the code.

Fields

Submission

Where submissions go. Paste your form ID to make the code real — or keep the placeholder while you experiment.

On submit

Spam & privacy

Design

Styling

Adds Tailwind utility classes. Your project needs Tailwind installed.

Live preview

You are collecting data about people you will mostly reject

An application form holds personal data belonging to people who do not work for you, and most of whom you will turn down. That makes what you ask and how long you keep it a legal question before it is a design one.

Résumé or CV upload
The reason this form needs file uploads and a multipart encoding. The generator sets that up; the backend has to accept it.
Portfolio or repository link
For technical and design roles this tells you more in thirty seconds than a cover letter does in five minutes.
Why this role — kept short
A two-sentence box gets read. A cover letter field gets a generic paragraph that helps nobody.
What to leave out
Date of birth, photo, marital status and nationality. In the UK and EU these invite discrimination claims and you rarely need them before an offer.

The mistake to avoid: Keeping applications forever

Unsuccessful applicants' CVs sitting in an inbox for years is the quiet liability in most hiring processes. Agree a retention window up front — six to twelve months is common — tell applicants what it is, and actually delete on schedule. A form backend with a retention setting does this without anyone remembering to.

Right-to-work and background checks belong after an offer, not on the application form. Collecting them from every applicant means holding sensitive documents for people you never hire.

How it works

  1. Choose a template and fields. Pick a template, then add, remove, or reorder fields and mark the required ones. Add step breaks to turn a long form into a multi-step form.
  2. Style it. Pick CSS, Tailwind, or unstyled output and tune the theme: accent color, light or dark, rounded corners.
  3. Copy your framework's code. Switch to HTML, React, Vue, Svelte, Astro, or a fetch() version and copy, download, or open it in CodePen.
  4. Connect an endpoint. Create a free ShipMyForm form to get a real endpoint, then drop your form ID in so submissions actually arrive.

Want the background? Read what a form backend is and how to stop form spam without reCAPTCHA. Want the submissions in your inbox? See how to send an HTML form to email. Already have a Google Form? Convert it to HTML. Got a form that submits but delivers nothing? Check its HTML.

Frequently asked questions

How do I accept a CV or résumé upload on an application form?
Add a file input and set enctype="multipart/form-data" on the form tag — without that attribute the browser sends the filename and not the file. The backend then has to accept and store the upload; on ShipMyForm that is a paid-plan feature, with per-file size limits by plan.
What should a job application form not ask?
Date of birth, photograph, marital status, nationality and anything else that identifies a protected characteristic. In the UK and EU asking before an offer invites a discrimination claim and you rarely need the answer. Right-to-work documents belong after an offer, not on the application form.
How long should I keep unsuccessful applications?
Decide a window, tell applicants, and delete on schedule. Six to twelve months is common and lets you revisit near-misses for a later role. The failure mode is keeping CVs indefinitely in an inbox, which is personal data you have no basis to hold and no process to remove.
Is a cover letter field worth having?
A short, specific prompt is. A two-sentence box asking why this role gets read and tells you something; an open cover-letter field produces a generic paragraph that was pasted into ten other applications. For technical roles a portfolio or repository link is usually more informative than either.