Job Application for HTML
Careers-page form with role, resume URL, and cover letter. Free for 500 submissions per month — no backend, no SDK, no plugin.
Why HTML developers choose splitforms for job application
Plain HTML sites have zero built-in form delivery — <code>mailto:</code> links open broken email clients, shared-hosting PHP is vanishing, and setting up Node just for a contact form is overkill. splitforms gives you a production-grade submission pipeline from a single <code><form action></code>. No build step, no framework lock-in, no server-side code. The job application on this page posts standard <code>application/x-www-form-urlencoded</code> data — the same format browsers have used since 1999 — so it works on every host from GitHub Pages to S3 to Apache.
Yes — this is the shortest safe path for HTML.
Use the HTML snippet on this page, keep the job application fields visible in your HTML UI, and let splitforms handle delivery, spam filtering, storage, and webhooks.
Paste the HTML version, then replace YOUR_ACCESS_KEY.
The posted payload contains full name, email, position you're applying for, linkedin / portfolio url, resume url, cover letter. Required fields are full name, email, position you're applying for and cover letter.
Plain HTML has no built-in way to deliver a form submission anywhere — the spec only covers serializing fields and either GETting or POSTing them to whatever URL you put in action.
Most career-page application forms hide behind Greenhouse / Lever, which charge $200+/month per role. For a startup hiring 1-3 roles a year, a self-hosted form with resume upload does the job.
Built for HTML developers who hate operating a backend.
Splitforms is the form backend for HTML sites. One POST endpoint, no SDK, no plugin — drop the job application into a page and ship.
Splitforms is the form backend for HTML sites. One POST endpoint, spam filtering, and a real dashboard — drop-in, no server, no PHP. Free for 500 dashboard submissions per month; Starter adds email, signed webhooks, exports, and retained uploads; Pro is $5/mo for 5,000.
- ✓500 form submissions per month
- ✓2 forms on Free; unlimited forms on Pro
- ✓Spam protection (honeypot + classifier)
- ✓Webhooks: Slack, Discord, WhatsApp, custom
- ✓CSV export of all submissions
- ✓Email notifications (CC and BCC on Pro)
Drop into any HTML project.
Replace YOUR_ACCESS_KEY with your splitforms key, paste into a HTML page, and ship. No build-time integration required.
Generate, embed, receive.
Three actions stand between you and your first job application submission. None of them require a backend, a database, or a CAPTCHA library.
Generate a free splitforms key
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Paste the job application into your HTML project
Drop the form snippet into a HTML page, component, or layout. Replace YOUR_ACCESS_KEY with the key from your dashboard. The form action is a hard-coded URL — no env vars or build-time wiring needed.
Receive submissions
Dashboard updates live on Free. Starter adds email delivery, signed webhooks, CSV export, Slack/Discord forwarding, and BCC to your team.
The reason this job application exists.
Resume upload (Pro) · webhooks into Notion / Airtable / Greenhouse.
ATS subscriptions (Greenhouse, Lever, Workable) start at $6-15k/year for a small team — a lot of money for a startup that hires 2 engineers a year. A self-hosted application form on the careers page handles the inbound flow. The form captures name, email, role applying for, resume (PDF upload, often required), LinkedIn / portfolio URL, and a brief 'why us' textarea. The submission lands in the hiring manager's inbox or webhooks into Notion / Airtable / a Slack channel for triage. As soon as you're past 5 simultaneous open roles, an ATS pays off — until then, this works.
Capture role and basics
Required: name, email, role (dropdown of open positions), resume upload (PDF/DOCX). Optional: LinkedIn URL, portfolio URL, cover-letter textarea, location / timezone.
Receive resume upload
Storage-backed file upload keeps the resume connected to the submission. Attachments cap at 10 MB per file; resume PDFs are usually 100-500 KB, so headroom is generous.
Webhook to Notion / Airtable
Push the application as a row in a Notion / Airtable database (one per role). Hiring team triages from there — moves to interview stage, archives obvious passes, comments inline. Cheaper than Greenhouse for low-volume hiring.
What changes when this job application lives in HTML.
These notes come from the HTML platform registry and are rendered on this template page so crawlers see the framework-specific answer without opening a separate guide.
Plain HTML has no built-in way to deliver a form submission anywhere — the spec only covers serializing fields and either GETting or POSTing them to whatever URL you put in action. Without a backend, the historical fallback is mailto: links (broken on Gmail, Outlook web, and most mobile devices) or PHP on shared hosts (extinct on S3, GitHub Pages, Cloudflare Pages, Netlify-static). That's the gap splitforms fills: you keep using the same <form action method=POST> HTML you already wrote, and the action points at our endpoint instead of a server you'd otherwise have to operate.
Plain HTML deploys to anywhere that serves files: GitHub Pages, S3 + CloudFront, Cloudflare Pages, Netlify, Vercel, plain Apache/nginx, even Dropbox public folders (RIP). The form posts cross-origin from the browser to splitforms.com, so the host is irrelevant to delivery — but enforce HTTPS on your domain, otherwise the browser blocks the mixed-content POST. On GitHub Pages, toggle 'Enforce HTTPS' under Settings → Pages. On S3, terminate TLS at CloudFront. Lock the splitforms access key to your custom domain in the dashboard so a leaked key from View Source is inert elsewhere.
method="GET" turns your form into a URL query string
If you forget method="POST" (or omit it — GET is the HTML default), the browser appends form fields to the URL: ?name=Maya&email=…. Splitforms's endpoint returns 405 Method Not Allowed because it only accepts POST. Always specify the method explicitly.
Multiple inputs with the same `name` only send the last value
If you accidentally name two fields email, FormData posts both — but the splitforms dashboard shows the last one. For checkbox groups, use name="interests[]" or unique names per checkbox.
File inputs require enctype="multipart/form-data"
Standard forms submit as application/x-www-form-urlencoded, which can't carry binary file data. If you add <input type="file">, also add enctype="multipart/form-data" to the form tag — otherwise the file silently doesn't upload.
Hidden honeypot field needs to be invisible to bots' DOM parsers
style="display:none" is what splitforms uses, but some sophisticated bots ignore display:none. Stack defenses: display:none + tabindex="-1" + aria-hidden="true" + an off-screen label. Splitforms's classifier catches the rest.
Pattern A — pure HTML with redirect-on-success
The simplest possible setup: zero JavaScript, full graceful degradation, the browser handles the round-trip. Splitforms 302s to your redirect URL on success, so users always land on a thank-you page even with JavaScript disabled or a flaky network. Use the same wiring for the job application fields on this page.
Pattern B — HTML with progressive-enhancement fetch
Same HTML, plus a tiny inline <script> that intercepts the submit, posts via fetch, and renders inline status — without a framework. Falls back to native form behaviour if JS fails to load. Use the same wiring for the job application fields on this page.
What every field actually does.
Each field below ships in the job application template — rename, remove, or add your own. Splitforms accepts any name you POST.
Full name
Greeting + dashboard label so submissions don't all read 'anonymous'.
Reply-to address — splitforms wires this so hitting reply goes back to the sender.
Position you're applying for
Buyer-persona signal — IC vs decision-maker changes the follow-up cadence.
LinkedIn / portfolio URL
Out-of-band material reviewers can open in one click.
Resume URL
Out-of-band material reviewers can open in one click.
Cover letter
Free-text input — no character limit, expands as the visitor types.
One backend. Every framework.
The same job application template works on every framework splitforms supports. Pick yours.
Job Application on HTML — FAQ.
Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.
splitforms vs everything else.
Same drop-in API. More free submissions, Starter signed webhooks, MCP support no other backend has.
Other ready-to-ship HTML forms.
Same backend, different qualifying fields. Click through to copy the snippet.
Ship a job application on HTML in 60 seconds.
500 submissions per month, free forever. No credit card. Copy the snippet above and paste it into your HTML project.