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.
Job Application · Astro
Careers-page form with role, resume URL, and cover letter. Free for 200 submissions total — no backend, no SDK, no plugin.

Copy-paste code
Replace YOUR_ACCESS_KEY with your splitforms key, paste into a Astro page, and ship. No build-time integration required.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New job application">
<label for="name">Full name *</label>
<input id="name" type="text" name="name" placeholder="Jane Builder" required>
<label for="email">Email *</label>
<input id="email" type="email" name="email" placeholder="[email protected]" required>
<label for="role">Position you're applying for *</label>
<select id="role" name="role" required>
<option value="">Choose…</option>
<option>Engineering</option>
<option>Design</option>
<option>Marketing</option>
<option>Sales</option>
<option>Operations</option>
<option>Other</option>
</select>
<label for="linkedin">LinkedIn / portfolio URL</label>
<input id="linkedin" type="url" name="linkedin" placeholder="https://linkedin.com/in/janebuilder">
<label for="resume_url">Resume URL</label>
<input id="resume_url" type="url" name="resume_url" placeholder="https://...">
<label for="cover_letter">Cover letter *</label>
<textarea id="cover_letter" name="cover_letter" placeholder="Why this role, why us." required></textarea>
<!-- honeypot — bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Send</button>
</form>Astro + Job Application
Astro's static-first architecture means your form HTML ships pre-rendered with zero client JavaScript — perfect for fast page loads, but it also means you can't call a server-side endpoint on static hosts. splitforms is designed for exactly this: the browser POSTs directly to our edge endpoint, so the form works on Netlify, Cloudflare Pages, Vercel, or any static host without an Astro API route. The job application is pure HTML — no <script> tag, no client component, no island. Astro's view transitions and partial hydration don't interfere with the form submission because it uses a standard browser POST.

Job Application fields
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. Rename, remove, or add your own — splitforms accepts any name you POST.

Template playbook
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.

Setup
Three actions stand between you and your first job application submission — no backend, no database, no CAPTCHA library.
Sign in at splitforms.com — your access key is created instantly. No credit card, no setup wizard, no SDK to install.
Drop the form snippet into a Astro 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.
Dashboard updates live on Free. Free includes owner email delivery; Starter adds signed webhooks, CSV export, Slack/Discord forwarding, and BCC to your team.
How SplitForms works
Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

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

We instantly capture and organize every submission in your inbox.

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

No credit card required. Set up in under 60 seconds.
Connect & automate
SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js. And with Stripe connected, your forms can take payments too.

Trusted by indie teams and agencies shipping forms worldwide
Testimonials
40 quotes on record — from indie hacks to agency migrations.
“Email notifications on every plan, including free, was the deciding factor. I was about to pay a competitor purely to get an email when a lead came in.”
“The dashboard is genuinely usable. I can read, filter, and export submissions without exporting to a spreadsheet first. That alone saves me an hour a week.”
“We added file uploads to a job-application form and the attachments just showed up, retained and downloadable. No S3 bucket policy nightmare.”
“Honest pricing is rare. The $59 three-year plan meant I paid once and stopped thinking about it. No surprise renewal, no per-seat creep.”
“I shipped a React contact form in a Vite app in one sitting. The docs answered every question before I had to ask it.”
“Our WordPress site dropped its plugin-heavy form for a plain HTML one pointed at splitforms. The site got faster and the spam stopped.”
Common questions
Yes. The form is plain HTML with a single POST endpoint, so it runs on any Astro site without server-side code, plugins, or SDKs. Drop the snippet into a Astro page or component and submissions land in your splitforms dashboard.
Free for 200 submissions total — no credit card, no trial. Pro is $5/mo for 5,000 submissions, and there's a one-time $59 3-year plan (15,000 submissions/mo for 36 months). The same pricing applies regardless of which framework hosts the form.
Yes. The template ships with sensible defaults (full name, email, position you're applying for, linkedin / portfolio url…) — add, remove, or rename any of them. Splitforms accepts whatever fields you POST.
A hidden honeypot field catches dumb bots, and a tuned classifier scores the rest. You only see real submissions in your dashboard. No CAPTCHA, no friction for human users — and it works the same on Astro as on any other framework.
Yes. Webhooks are available on paid plans, with auto-formatted payloads for Slack, Discord, and WhatsApp (via CallMeBot). Or send raw signed JSON to any URL — Zapier, n8n, your own server. Configure in the splitforms dashboard.
Yes — the form posts directly to splitforms from the browser, so no server is involved. Works on Vercel, Netlify, GitHub Pages, Cloudflare Pages, S3, or any plain Apache host.
If you're under the regulated thresholds (15 employees for most EEOC requirements; federal contractor for OFCCP), basic forms are fine. If you're regulated, you need to collect voluntary self-ID demographics on a separate page (race, gender, veteran, disability) with explicit non-discrimination language. Your employment lawyer should review the final flow.
Hidden honeypot field plus splitforms' spam classifier catches most. For persistent agency spam, add a 'are you applying directly or through an agency?' radio — direct applications get the role-specific reply; agency applications get a 'we don't accept third-party submissions' auto-response.
For senior or specialised roles, yes — quality goes up with the friction. For volume hiring (support, ops, junior eng), no — required cover letters drop application count 60-80% and the cover-letter quality is mostly noise anyway. Tune by role.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime