Take a live AI-guided product tour with Lando.Launch AI demo
Document type

Extracting data from executive employment agreements

Companies sign an employment agreement with each senior executive, its terms negotiated clause by clause by counsel on both sides. Public companies file them as SEC exhibits, and a buyer reviews one for every executive at the target during diligence. Most arrive as executed PDFs or signed scans in a data room.

Diligence needs the term dates, base salary, target bonus, severance multiple and change-of-control trigger. A deal model totals the payments a sale would trigger and tests them against the golden parachute rules of Section 280G.

Page 2 of a sample Executive Employment Agreement, with extracted values outlined
34,175Markdown characters
68parse blocks
31fields extracted
The problem

What makes executive employment agreements hard

The terms are clauses

Salary and notice terms sit inside numbered clauses of running prose, often with two terms sharing one sentence.

Payouts depend on how employment ends

Severance turns on why employment ends: termination without cause, resignation for good reason or a change of control can each pay a different multiple.

The copy that counts is signed

In a data room, the copy that counts is the executed one: often a scan with handwritten dates and wet-ink signatures.

How it works

Parse, extract, verify

1

Parse

Parse turns the document into reading-order Markdown and a hierarchy of blocks (text, tables, figures), and grounds each block to its exact location on the page.

2

Extract

You define the fields in a JSON schema, and Extract returns their values in a consistent, structured format, each linked back to where it appears in the Markdown.

3

Verify

Each value links back to where it appears, down to the character range in the Markdown, and the page and bounding box in the source document, so every result can be verified.

Worked example

One executive employment agreement, end to end

About this document: An executed employment agreement between the Bethlehem Central School District in New York and its Superintendent of Schools, posted by the district as a public record. Thirteen portrait pages, scanned from the wet-ink original: recitals and 18 numbered sections, then signatures and two notary acknowledgments. Page 2 carries the term and compensation.

Processing objective: The objective is to capture the commercial core of the agreement: how long it runs and what it pays each year. Salary and the raise are each written in words and then in figures, and each value grounds to the line carrying the figure.

Demonstration fields: Term start, Term end, Base salary, Annual increase, Longevity payment

The document

4 of 13 pages
  • Page 1 of the sample Executive Employment AgreementPage 1
  • Page 2 of the sample Executive Employment AgreementPage 2shown below
  • Page 5 of the sample Executive Employment AgreementPage 5
  • Page 8 of the sample Executive Employment AgreementPage 8

Where each value came from

Page 2 of the sample Executive Employment Agreement, with every featured field outlined
Term startterm.start_date
July 1, 2025
The region of the sample Executive Employment Agreement containing Term start, with the extracted value outlined
extraction_metadata["term.start_date"]
{
  "value": "July 1, 2025",
  "page": 2,
  "range": {
    "end": 2742,
    "start": 2659
  },
  "box": {
    "xmin": 0.1855,
    "ymin": 0.21033,
    "xmax": 0.89516,
    "ymax": 0.22788
  }
}
Term endterm.end_date
June 30, 2030
The region of the sample Executive Employment Agreement containing Term end, with the extracted value outlined
extraction_metadata["term.end_date"]
{
  "value": "June 30, 2030",
  "page": 2,
  "range": {
    "end": 2742,
    "start": 2659
  },
  "box": {
    "xmin": 0.1855,
    "ymin": 0.21033,
    "xmax": 0.89516,
    "ymax": 0.22788
  }
}
Base salarycompensation.base_salary
235,553
The region of the sample Executive Employment Agreement containing Base salary, with the extracted value outlined
extraction_metadata["compensation.base_salary"]
{
  "value": 235553,
  "page": 2,
  "range": {
    "end": 3181,
    "start": 3104
  },
  "box": {
    "xmin": 0.24265,
    "ymin": 0.36209,
    "xmax": 0.89532,
    "ymax": 0.38013
  }
}
Annual increasecompensation.annual_increase_percent
4
The region of the sample Executive Employment Agreement containing Annual increase, with the extracted value outlined
extraction_metadata["compensation.annual_increase_percent"]
{
  "value": 4,
  "page": 2,
  "range": {
    "end": 3258,
    "start": 3182
  },
  "box": {
    "xmin": 0.24256,
    "ymin": 0.38017,
    "xmax": 0.89501,
    "ymax": 0.39755
  }
}
Longevity paymentcompensation.longevity_payments[2].amount
7,500
The region of the sample Executive Employment Agreement containing Longevity payment, with the extracted value outlined
extraction_metadata["compensation.longevity_payments[2].amount"]
{
  "value": 7500,
  "page": 2,
  "range": {
    "end": 4244,
    "start": 4163
  },
  "box": {
    "xmin": 0.24107,
    "ymin": 0.62136,
    "xmax": 0.89505,
    "ymax": 0.63904
  }
}

How to try it yourself

Everything on this page is reproducible. The sample, its schema, and the Parse and Extract API outputs are published. You can repeat the same two calls from whichever surface you already build on.

  • Claude Skilldescribe the job; the agent writes it
  • CLIno code at all
  • MCPexpose ADE docs as an agent tool
  • REST APIany language
  • Pythonlandingai-ade
  • TypeScriptlandingai-ade
Why LandingAI?

Documents into data

Accurate

The best accuracy on the difficult documents other tools get wrong, such as messy scans, complicated tables, checkboxes and handwriting.

Auditable

Every answer cites its sources. Values come back with an audit trail (page, bounding box, character range) so a human can review them.

Agentic

Applies multi-step reasoning, and plans before it acts. Handles documents it has never seen before and adapts to variations.

API-first

Composable APIs that drop into any tech stack and can be called from anywhere. Easy to build on and embed in your pipelines and products.

Affordable

Cost-competitive rates with complete price transparency. Spend controls before you run, and every job reports its exact cost.

Enterprise-grade

Built for production and scale from day one. Fully observable and monitored, running securely in our cloud or yours.

Built for high-volume, high-throughput production

  • Zero data retention
  • Priority rate limits
  • Enhanced support
  • VPC and on-prem deployment

Available on Team and Enterprise plans. VPC and on-prem deployment require an Enterprise plan.

Compare plans
Capabilities

Executive Employment Agreement processing highlights

Terms stated in prose
Term start and end dates
Base salary and raises
Bonus and incentive targets
Severance and notice periods
Change-of-control provisions
Amounts in words and figures
Tiered payment schedules
Benefits and leave entitlements
Renewal and termination clauses
Scanned executed copies
Bounding box for every value
FAQs

Questions, answered

Yes. A schema names each term, such as the base salary or the term end date, and extraction finds it in the clause that states it. Values come back typed, so a salary arrives as a number.

The amount returns once, as a number. Its grounding carries a range for each place the amount is stated. The Ground API maps each range to a page and a bounding box for a reviewer to check.

Yes. DPT-3 Pro parses scanned documents and handwriting. Signatures, stamps and seals come back as attestation blocks, labelled SIGNED, STAMPED or SEALED in the Markdown, so a reviewer can confirm the copy was executed.

Yes. Define the schedule as an array, each entry with its trigger and its amount. Every payment the clause lists comes back as its own entry, even when the whole schedule sits in one paragraph.

An agreement names the executive and states their pay. A schema can ask for the terms and leave the person out. Zero data retention is available, alongside SOC 2 Type II, GDPR and HIPAA compliance.

Start extracting executive employment agreement data

Reliable, structured outputs with full traceability in minutes