Use cases

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
  1. 1
    Send the form
    Inkrun detects its AcroForm fields — the same free inventory inspect_document gives you, so your agent can look before it leaps.
  2. 2
    Send a JSON map of field names to values
    Text fields, checkboxes, radio groups, dropdowns.
  3. 3
    Get back a presigned link to the filled PDF
    Stored 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