Job application API
The API to apply on jobs.
You send a POST request with a job URL and a candidate profile. We fill out the application — every field, every dropdown, every “please re-enter your resume” — and file it with the employer’s ATS. You get a webhook.
40+ ATSs · ~3 min median submit · Consent required
Definition
What is a job application API?
A job application API is a web service that applies to jobs programmatically. A developer submits a job posting URL and structured candidate data; the API completes the employer’s ATS form — fields, resume upload, screening questions — and submits it, returning a confirmation. It replaces manual form-filling with a single request.
Products
Which product do you need?
Answer one question and we’ll point you to the right one.
What do you have?
Product A
Apply API
The core primitive. POST a job URL + candidate object, receive a submitted application. Built for job-search products that already know where to apply.
- —REST, JSON in, webhook out
- —40+ ATSs, one schema
- —Screening-question engine
Product B
Search + Apply
Job discovery bundled with submission. Query open roles by title, location, and ATS, then apply through the same pipeline — one integration, both halves.
- —Structured job feed
- —Dedup + freshness checks
- —Same apply pipeline
Product C
Managed Applies
Send us a spreadsheet, get back confirmations. We run the API on your behalf — no integration, no infrastructure, per-application pricing.
- —CSV in, receipts out
- —Human review queue
- —No code required
Procedure
How the job application API works
Four steps between your request and a filed application, processed in order.
You POST
One request: the job posting URL and a candidate object — name, contact, work history, resume file, answers to common screeners.
We identify the ATS
The URL resolves to its underlying applicant tracking system — Workday, Greenhouse, Lever, or 40+ others — and the matching form adapter loads.
The form gets filled
Every field mapped, resume uploaded, screening questions answered from candidate data. Anything we can’t answer truthfully pauses for input — we never guess.
You get a webhook
Every application resolves: submitted, needs_input, or failed — with a screenshot receipt of the confirmation page.
The request
Apply to a job in one request
The entire integration surface of an API to apply on jobs. Send a candidate profile and a job URL; we detect the ATS, fill every field, answer screening questions, and confirm submission — then fire a webhook.
# POST https://apply-api.boringproject.ai/api/v1/sessions/apply
{
"candidateProfileId": "prof_xyz789",
"jobs": [
{
"companyName": "Acme Corp",
"title": "Senior Software Engineer",
"jobId": "12345",
"link": "https://boards.greenhouse.io/acme/jobs/12345"
}
]
}{
"sessionId": "sess_abc123",
"type": "run_once",
"userId": "usr_abc123",
"candidateProfileId": "prof_xyz789",
"status": "active",
"stats": {
"totalRuns": 1,
"totalApplications": 0,
"successfulApplications": 0,
"failedApplications": 0,
"applicationsSkipped": 0,
"jobsQueued": 1
},
"searchContext": { "titles": ["Senior Software Engineer"], "locations": [] },
"createdAt": "2024-02-14T11:00:00Z"
}The alternatives
API vs. building it yourself vs. browser bots
Three ways to apply on jobs programmatically, side by side.
| The Boring Project | Build in-house | Browser RPA / scrapers | |
|---|---|---|---|
| Time to first application | Under an hour | 3–6 months per ATS family | Days, per site |
| ATS coverage | 40+ systems, one schema | Whatever you build | Per-site scripts |
| Breaks when forms change | Our problem — adapters monitored 24/7 | Your problem | Constantly, silently |
| Screening questions | Answered from candidate data; pauses if unsure | You build the logic | Usually skipped or guessed |
| Proof of submission | Webhook + screenshot receipt | If you build it | Rarely |
| Cost model | Per application | 2–3 engineers, indefinitely | Cheap until it breaks |
Coverage
Is your ATS supported?
Type the name of an applicant tracking system and we’ll check it against the list.
Currently supported: Workday, Greenhouse, Lever, Ashby, Rippling, and more. Missing one? It becomes our backlog, not yours.
Full disclosure
The parts that are genuinely hard
Applying to jobs by API sounds simple. It isn't. Here's what actually breaks, and what we do about it.
Workday is a labyrinth
Multi-step, tenant-specific, occasionally requires account creation. Our Workday adapter handles account provisioning and step detection per tenant, and it's the single largest file in our codebase. Median submit time is longer here — we publish it rather than hide it.
Screening questions have stakes
“Are you willing to relocate?” isn't a field, it's a decision. Anything not answerable from the candidate profile returns needs_input instead of a guess. Fabricated answers get candidates rejected and get APIs banned. We do neither.
Forms change without notice
ATS vendors ship UI updates weekly. Every adapter runs synthetic test applications daily; a failed canary pages us before it fails you. Breakage windows are published on the status page, not discovered in your error logs.
Rate limits protect everyone
Employers don't want a flood, and candidates don't benefit from one. We enforce per-employer pacing and require candidate consent on every application. This keeps the pipes open for everybody — including you.
Common questions
Questions, answered first
What is an API to apply on jobs?
It's a web service that submits job applications programmatically. You send a POST request with a job posting URL and candidate data; the API completes the employer's ATS form — every field, the resume upload, the screening questions — and submits it, returning a confirmation webhook. It turns a 20-minute manual chore into one request.
Which ATSs does the job application API support?
40+ applicant tracking systems, including Workday, Greenhouse, Lever, iCIMS, Taleo, SuccessFactors, SmartRecruiters, Ashby, and Workable. Use the coverage checker above, or ask — unsupported ATSs are typically added within days of a request.
Is applying to jobs through an API allowed?
Yes — when it's a real candidate, with their consent, using accurate data. That's not a loophole, it's our terms of service. We require candidate consent per application, never fabricate answers, and enforce per-employer rate limits. What we automate is the paperwork, not the honesty.
How fast are applications submitted?
Median is about three minutes. Simple forms (Greenhouse, Lever, Ashby) usually finish in under a minute; multi-step enterprise systems like Workday take longer. Every request resolves to a webhook — submitted, needs_input, or failed — with a screenshot receipt.
Who is The Boring Project for?
Developers and founders building job-search products — auto-apply tools, career copilots, staffing platforms, university career services. We're the infrastructure layer, not the consumer app: your users, your interface, our paperwork.
Applying on jobs is boring. Ship the interesting part.
Your product is the matching, the coaching, the experience. The form-filling is ours. Get an API key and file your first application today.