Netlify job application form

Add a job application form with resume upload to your Netlify site with no serverless function. The form posts multipart form data straight to Formpaste, so applications with attachments land in your inbox. No backend of your own.

How to build it

  1. Create a form in your Formpaste dashboard and copy its access key.
  2. Connect Storage in the dashboard so the form can accept file uploads.
  3. Add the HTML above to your careers page, add your access key, then deploy to Netlify.

Netlify gotchas

Netlify hosts your static site, and a Formpaste form is just HTML you deploy with it - no serverless function and no backend of your own. Point the form at Formpaste, deploy, and submissions land in your inbox. It works the same whether or not you use Netlify Forms.

It is just HTML you deploy

Netlify serves static files, so a form that posts to the Formpaste endpoint works with no function and no build-time form detection. Add the markup to your page and deploy as usual.

Not tied to Netlify Forms

You do not need Netlify Forms, and you are not tied to Netlify hosting. The same form works on any host. If you are weighing the two, see our [Netlify Forms alternative](/alternatives/netlifyforms/) comparison.

File uploads deploy the same way

A form with a file input posts multipart form data straight to Formpaste, so uploads work on a plain Netlify deploy with no extra setup on your side.

Keep the hidden access_key

Leave the generated hidden access_key input in place so Formpaste knows which form the submission belongs to.

What to get right

The resume is a file upload

A real job application needs the resume attached, so the form posts multipart form data. The generated code sets enctype and sends the file with the rest of the fields.

Accept common document types

Candidates send PDF and Word files. Do not restrict to a single type or you will lose applicants.

Route applications to the right inbox

Send applications to your hiring address, and reply-to is set to the applicant so you can respond directly.

How it works

Three simple steps for form submissions to land in your email inbox.
Create your form, set your form's action URL to Formpaste's endpoint, and add your access key.

1

Create your form

Sign up, verify your email, and create an access key in your dashboard.

2

Copy the code

Paste the snippet above into your project. Pick CSS or Tailwind to match your site.

<form action="https://api.formpaste.com/submit" method="POST" enctype="multipart/form-data" class="mx-auto flex w-full max-w-md flex-col gap-4 rounded-xl border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-800 dark:bg-gray-950">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Full name
    <input type="text" name="name" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Email
    <input type="email" name="email" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Role applying for
    <input type="text" name="role" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Cover note
    <textarea name="message" class="min-h-28 rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100"></textarea>
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Resume
    <input type="file" name="resume" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <button type="submit" class="w-full rounded-md bg-gray-900 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-gray-800 disabled:opacity-60 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-200">Submit application</button>
</form>
3

Add your access key

Replace the placeholder with your access key to start receiving submissions.

<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">

Netlify job application form FAQ

Paste a form. Get submissions.

Instantly without setting up any backend, servers or databases. 250 submissions/mo free - no credit card.