Concepts

Form Filling

How DeepRead's AI-powered form filling works under the hood

Form Filling

DeepRead's form fill system uses visual AI to detect and fill PDF forms. Unlike traditional form-filling tools that require digital form fields, DeepRead works with any PDF—including scanned documents and forms without embedded field definitions.

Visual field detection

The system uses vision AI to analyze each page of your PDF and detect all fillable areas:

PDF Pages → Vision AI → Detected Fields with Coordinates

For each detected field, the system captures:

  • Label: The visible text near the field (e.g., "Full Name:", "Date of Birth")
  • Context: What data the field expects (e.g., "applicant's legal name")
  • Field type: text, checkbox, dropdown, or signature
  • Coordinates: Precise bounding box for text placement

This approach means DeepRead can fill forms that other tools cannot—scanned government forms, handwritten templates, or legacy documents without AcroForm metadata.

Semantic data mapping

After detecting fields, the AI maps your JSON data to the appropriate fields using semantic understanding:

// Your input
{
  "full_name": "Jane Smith",
  "dob": "1985-03-15",
  "address": "123 Main Street, New York, NY 10001"
}

The mapping handles:

  • One-to-many: A single key like address can populate multiple related fields
  • Value transformation: Values may be formatted to match field expectations
  • Confidence scoring: Each mapping includes a confidence level
  • Unmapped tracking: Keys without matches are reported in the response

Fill and verify

Once mappings are established, the system:

  1. Renders the PDF and inserts text at calculated coordinates
  2. Runs QA using vision AI to verify each filled field
  3. Repairs any issues (overlapping text, cut-off values, wrong positioning)
  4. Marks stuck fields when issues can't be resolved automatically

The QA process checks:

  • Is the text visible and readable?
  • Does text overlap with labels or other fields?
  • Is the value in the correct field?
  • Does the font size fit the available space?

Job lifecycle

Form fill jobs follow the same lifecycle as processing jobs:

queued → processing → completed
                   ↘ failed

Job states

StateDescription
queuedJob created, waiting to start
processingAI is detecting fields, mapping data, and filling
completedForm filled successfully, download URL available
failedUnrecoverable error occurred

Result fields

When a job completes, you receive:

FieldDescription
filled_form_urlSigned URL to download the filled PDF
fields_detectedTotal form fields found by vision AI
fields_filledFields that received values
fields_verifiedFields that passed QA checks
fields_hil_flaggedFields flagged for human review
reportDetailed breakdown of mappings and adjustments
errorsList of any issues encountered

Best practices

Provide descriptive field keys

Use keys that describe the data semantically. The AI uses these to match fields:

{
  "full_name": "John Doe",
  "date_of_birth": "1990-01-15",
  "mailing_address": "123 Main St, City, ST 12345"
}

Include all data you want filled

The AI only fills fields that have matching data in your input.

Webhooks

Configure a webhook_url when creating a job to receive completion notifications. See the Form Fill API Reference for webhook payload structure.

Limitations

  • File size and page limits: Plan-dependent (see Pricing)
  • Complex layouts: Forms with unusual layouts may have lower accuracy