splitforms.com

Job application form

Job application form with resume upload.

A careers-page form that collects a candidate's name, email, role, and resume — posted to one splitforms endpoint, with no backend code to write.

  • 500 free / mo
  • No backend code
  • Resume upload
A candidate submitting a job application with a resume to the splitforms dashboard

Resume upload

Add a file input and applicants attach a PDF/DOCX resume and cover letter — 5 files, 5 MB each on Starter and above.

Spam-screened

A botcheck honeypot, a form_loaded_at time-trap, content heuristics, and IP rate limiting block bot applications before anything is stored.

Routed to your ATS

Owner email on every plan; signed webhooks and 1-click Notion, Airtable, Google Sheets, or Slack on Starter and above.

Copy-paste ready

Your job application form, ready to paste.

Drop this into your careers page — it posts directly to splitforms with no server, PHP, or API route to write. Swap in your own access_key from the dashboard. Want field-by-field notes with LinkedIn and portfolio fields? The job application form HTML guide walks through both; on WordPress, use the WordPress form guide or plugin instead of raw HTML.

Generate access key
careers.html
<form action="https://splitforms.com/api/submit" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="access_key" value="YOUR_KEY">
  <input type="hidden" name="subject" value="New job application">
  <input type="hidden" name="form_loaded_at" id="form_loaded_at">

  <input type="text" name="name" placeholder="Full Name" required>
  <input type="email" name="email" placeholder="Email" required>
  <select name="position" required>
    <option value="">Select position</option>
    <option value="frontend">Frontend Developer</option>
    <option value="backend">Backend Developer</option>
    <option value="designer">Designer</option>
  </select>

  <!-- File upload (Starter plan and above) -->
  <label>Resume (PDF)</label>
  <input type="file" name="resume" accept=".pdf,.doc,.docx">

  <textarea name="cover_letter" placeholder="Cover letter" rows="5" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
  <button type="submit">Submit Application</button>
</form>
<script>
  document.getElementById('form_loaded_at').value = Date.now();
</script>

Setup

How to add a job application form to your careers page.

Six steps from a blank careers page to applications landing in your dashboard and inbox — a free access key, the candidate fields, the resume upload, the spam traps, a test submission, and routing to your hiring workflow.

Get a free access key

Sign in to splitforms and create a form to get an access key. The Free plan needs no credit card and covers 500 applications a month.

Add the candidate fields

Name, email, and the role they're applying for at minimum. LinkedIn or portfolio URL and years of experience are common optional additions.

Turn on the resume upload

Set enctype="multipart/form-data" on the form and add an input type="file" field. File uploads are stored on Starter ($1/month) and above — 5 files per submission, 5 MB each.

Add the spam traps

Include the hidden botcheck honeypot (leave it empty) and a form_loaded_at hidden field set to the page-load timestamp — both are checked server-side before anything is stored.

Test a submission

Submit a test application from the live page and confirm it shows up in your dashboard and inbox — owner email notifications are included free on every plan.

Route applications to your hiring workflow

Connect Notion, Airtable, Google Sheets, or Slack with one click, or forward each application to your ATS with a signed webhook (Starter and above).

What it does

What does a job application form need to do?

A job application form collects a candidate's name, email, the role they're applying for, and a resume — posted straight to one splitforms endpoint with your access_key as a hidden field, so applications land in your dashboard and inbox with no backend code to write. Resume and cover-letter file uploads work from the Starter plan; Free covers 500 applications a month.

  • Collect name, email, role, resume, and cover letter
  • PDF/DOCX resume uploads — 5 files, 5 MB each on Starter
  • Screened for spam, stored, and emailed on every plan
A job application received, screened for spam, stored, and routed to your ATS, Notion, or Slack

What to ask

What to ask on a job application form.

Keep the required list short — every extra required field costs completion rate. A minimal, high-converting job application form requires the essentials and makes the rest optional:

  • Full name and email — required, so you can reply
  • Role — a dropdown of open positions, routed to the right hiring manager
  • Resume — a PDF/DOCX upload, required for most roles
  • Cover letter or “why us” — a short textarea for senior or specialized roles
  • LinkedIn or portfolio URL and years of experience — optional
Choosing the fields for a job application form

Routing

Route job application form submissions to your ATS, Notion, or Slack.

A self-hosted job application form isn't a replacement for Greenhouse, Lever, or Workable at high volume — but if you're hiring a handful of roles a year, every application still needs somewhere to go. On Starter and above, forward each application's JSON to your ATS with a signed webhook (or Zapier, Make, or n8n), or connect Notion, Airtable, Google Sheets, or Slack as a one-click integration so the hiring team triages from a database or channel instead of an inbox. Every application is also available over the REST API or through the free MCP server for AI recruiting agents.

  • Signed webhooks to Greenhouse, Lever, Workable, or any ATS
  • 1-click Notion, Airtable, Google Sheets, or Slack
  • REST API and free MCP server for your own tools
Routing job applications to an ATS, Notion, Airtable, Google Sheets, or Slack

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Questions

Job application form questions.

View all FAQs
Can I accept resumes via a form?

Yes. File uploads are available on Starter ($1/mo) and above — set enctype="multipart/form-data" on the form and add an input type="file" field, and applicants can attach a resume when they apply.

Where do job application form submissions go?

Each application is stored in your dashboard with all fields, files, and metadata. You also get an email notification with the application details — that's included free on every plan, including Free.

Can I forward applications to my ATS or hiring tool?

Yes. Use a signed webhook (Starter+) to forward each application's JSON to Greenhouse, Lever, Workable, or any ATS/tool that accepts webhook data, or route through Zapier, Make, or n8n (splitforms has no native Zapier app, but the generic webhook works with all three).

Is a job application form backend free?

Yes. Free covers 500 applications a month with unlimited forms, spam filtering, and email notifications included. Starter is $1/month for 1,000 submissions with file uploads, webhooks, integrations, and an auto-responder; Pro is $5/month for 5,000 with CC/BCC and priority support.

How do I stop spam job applications?

Every submission passes through the hidden botcheck honeypot and the form_loaded_at time-trap, plus server-side content heuristics and rate limiting (6 submissions/minute per IP, 20 per 15 minutes). Add per-form allowed domains, strict origin mode, or your own reCAPTCHA v2 key for extra coverage.

Can I collect a resume and a cover letter as separate files?

Yes, on Starter and above. Each submission accepts up to 5 files (5 MB each), so add a second input type="file" field and a resume plus a standalone cover-letter PDF upload together in one application.

Can I redirect applicants after they submit, or set a custom email subject?

Yes. Add a hidden redirect field with a URL to send applicants to a thank-you or next-steps page, and a hidden subject field to control the notification email's subject line — both work with no extra setup.

What's the difference between this page and the job application form template?

This page is the code you paste into an existing careers page. The job application form template gives you the same form pre-built with fields already chosen; for high-volume hiring (retail, warehouse, hospitality) the employment application form template uses a shorter field set.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

Pro

$5/ month
was $15 · save 67% · new-user price

For agencies and growing products.

  • 5,000 submissions / mo
  • Unlimited forms
  • Everything in Starter
  • Priority support (under 4hr)
  • 5× Starter submission volume
  • Cancel anytime

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime