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

Extracting data from service manuals

Manufacturers write a service manual for each product line, and each brand lays out its troubleshooting charts and repair procedures its own way. Service contractors keep manuals for every brand and model they repair, often hundreds of them. Most arrive as PDF downloads from manufacturer and distributor sites.

Field service needs each troubleshooting row: the symptom, the possible cause, the test or remedy and the service procedure it points to. A field service management system turns those rows into guided diagnostics, so a technician on a work order goes from symptom to procedure.

Page 2 of a sample Service Manual, with extracted values outlined
26,024Markdown characters
1,418parse blocks
583fields extracted
The problem

What makes service manuals hard

Column labels turned sideways

Symptom columns carry labels turned on their side, packed tight under merged group headers such as No Cooling.

Dots stand in for answers

A dot in a cell links a cause to a symptom, read from the column label far above it.

Procedures cited by code

A chart row cites its service procedure by code, such as S-103, and that procedure is printed many pages later in the manual.

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 service manual, end to end

About this document: Five portrait pages from a manufacturer's service manual for a packaged gas and electric rooftop unit. The excerpt holds the cover, a cooling analysis chart, a gas heating analysis chart, the servicing table of contents and the first voltage check procedure. Page 2, the cooling chart, is featured. The kept pages hold equipment data only and are shown unredacted.

Processing objective: The objective is to read one troubleshooting lookup from the chart: a possible cause, the test or remedy for it and the service procedure that covers the repair. Each value grounds to its own cell, in a row that runs the full width of the page.

Demonstration fields: Chart title, Possible cause, Test method / remedy, Service procedure reference

The document

4 of 5 pages
  • Page 1 of the sample Service ManualPage 1
  • Page 2 of the sample Service ManualPage 2shown below
  • Page 3 of the sample Service ManualPage 3
  • Page 4 of the sample Service ManualPage 4

Where each value came from

Page 2 of the sample Service Manual, with every featured field outlined
Chart titlecooling_analysis_chart.chart_title
COOLING ANALYSIS CHART
The region of the sample Service Manual containing Chart title, with the extracted value outlined
extraction_metadata["cooling_analysis_chart.chart_title"]
{
  "value": "COOLING ANALYSIS CHART",
  "page": 2,
  "range": {
    "end": 1384,
    "start": 1362
  },
  "box": {
    "xmin": 0.33372,
    "ymin": 0.08584,
    "xmax": 0.61677,
    "ymax": 0.10915
  }
}
Possible causecooling_analysis_chart.rows[18].possible_cause
Shortage of Refrigerant
The region of the sample Service Manual containing Possible cause, with the extracted value outlined
extraction_metadata["cooling_analysis_chart.rows[18].possible_cause"]
{
  "value": "Shortage of Refrigerant",
  "page": 2,
  "range": {
    "end": 6597,
    "start": 6574
  },
  "box": {
    "xmin": 0.04598,
    "ymin": 0.55998,
    "xmax": 0.24087,
    "ymax": 0.57139
  }
}
Test method / remedycooling_analysis_chart.rows[18].test_method_remedy
Test For Leaks, Add Refrigerant
The region of the sample Service Manual containing Test method / remedy, with the extracted value outlined
extraction_metadata["cooling_analysis_chart.rows[18].test_method_remedy"]
{
  "value": "Test For Leaks, Add Refrigerant",
  "page": 2,
  "range": {
    "end": 6785,
    "start": 6754
  },
  "box": {
    "xmin": 0.5894,
    "ymin": 0.55992,
    "xmax": 0.8487,
    "ymax": 0.57136
  }
}
Service procedure referencecooling_analysis_chart.rows[18].service_procedure_ref
S-103
The region of the sample Service Manual containing Service procedure reference, with the extracted value outlined
extraction_metadata["cooling_analysis_chart.rows[18].service_procedure_ref"]
{
  "value": "S-103",
  "page": 2,
  "range": {
    "end": 6799,
    "start": 6794
  },
  "box": {
    "xmin": 0.8487,
    "ymin": 0.55991,
    "xmax": 0.89785,
    "ymax": 0.57134
  }
}

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

Service Manual processing highlights

Symptom and cause matrices
Rotated column headers
Dot-marked chart cells
Test methods and remedies
Service procedure references
Merged group headers
Servicing tables of contents
Step-by-step procedures
Operating limits tables
Unit and wiring diagrams
Native PDFs and scans
Bounding boxes for quoted values
FAQs

Questions, answered

Yes. Parsing reads the chart as an HTML table, with each rotated label as header text and each dot in its own cell. A schema can return each cause row with the list of symptom columns its dots fall under.

Yes. Short tables inside a procedure, such as the acceptable voltage range for each supply rating, parse as HTML tables. A schema can return each limit as a number, ready to compare against a meter reading.

No. A schema names the fields you want, such as cause, remedy and procedure reference, and describes them in plain language. Where a column sits on the page is not part of it, so one schema reads charts from different manufacturers.

Yes. Parsing works from the page image, so a scanned page from a printed manual reads the same way as a digital PDF. Grounding coordinates come back against the page image either way.

A value quoted from the document carries the character range it came from in the parsed Markdown. The Ground API maps that range to a page and a bounding box, so a reviewer sees each chart value in its own cell.

Start extracting service manual data

Reliable, structured outputs with full traceability in minutes