Fill official forms from data your agent already has.
The form is a PDF. The answers are JSON. fill_form is the missing verb.
fill_forminspect_documentextract
The problem
Government filings, insurance claims, HR onboarding packets, KYC forms — the official document is a fillable PDF, and it is non-negotiable: the receiving side wants their form, not your re-creation of it. Meanwhile the answers already exist as structured data — in your CRM, in an intake conversation your agent just had, in the output of a previous extraction.
The last mile is absurd: a human opens Acrobat and types values into boxes, one by one, form after form. Agents can't help, because "open Acrobat" isn't a tool call.
How Inkrun solves it
- 1Send the formInkrun detects its AcroForm fields — the same free inventory
inspect_documentgives you, so your agent can look before it leaps. - 2Send a JSON map of field names to valuesText fields, checkboxes, radio groups, dropdowns.
- 3Get back a presigned link to the filled PDFStored and swept under the same retention policy as any render.
one tool callMCP
agent → inspect_document(claim-form.pdf) # free
← { fields: ["applicant_name", "policy_no", "date_of_loss", …] }
agent → fill_form(claim-form.pdf,
{ applicant_name: "…", policy_no: "…", date_of_loss: "…" })
← { url: "https://…/renders/fill_3ab.pdf", warnings: [] }Why it holds up
The source form is never stored
Uploaded form bytes are processed in memory and discarded; only the filled output you asked for is kept, on render retention.
No silent drops
A field name in your JSON that doesn't exist on the form comes back as a warning, not a value quietly thrown away.
Bounded honestly
Text, checkbox, radio and dropdown fields are supported; exotic field types produce a warning, and XFA forms are rejected up front as unsupported rather than mangled.
Flat, legible pricing
1 credit per filled PDF — the same "1 credit per produced document" rule as a render.
Where it fits
- Insurance intake: the claim conversation happens in chat, the form comes out filled
- HR and onboarding: one candidate record fans out into the whole packet
- Compliance and KYC: CRM data lands on the regulator's own form
- Government paperwork: permit and benefit applications filled from case data
One MCP connector, both directions of the document layer.
Get API key