*** September 2026 Major Release ***Read and watch
Document type

Extracting data from employment verification letters

An employer writes a verification letter whenever someone asks it to confirm that a person works there. The format is entirely the employer's own, drafted by each HR team on company letterhead. Lenders, landlords and visa officers collect them by the thousand, as emailed PDFs and scans of the signed page.

A verifier needs the employer, the employee's start date and title, and the signature that attests to them. A background screening system files the result against the applicant, and an underwriter treats the letter as the employment evidence in the file.

Page 1 of a sample Employment Verification Letter, with extracted values outlined
1,462Markdown characters
14parse blocks
15fields extracted
The problem

What makes employment verification letters hard

The signature is the payload

A verification letter carries its weight through the signature, which sits on the page as an image among the printed text.

Two dates, different meanings

The letter is dated at the top and the signature carries its own timestamp underneath, and a verifier needs both.

The issuer is the letterhead

Who vouches for the employee is carried by the logo and letterhead block, where a reader recognizes the company by sight.

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 employment verification letter, end to end

About this document: An employment certificate from Deloitte Consulting India. One portrait page on company letterhead, confirming a start date and designation in two justified sentences, with a residential address, an office address and a signature block. This is a real certificate. The employee's name, ID and home address were replaced before publication; the signatory's signature is kept.

Processing objective: The objective is to establish the whole attestation: who issued the letter, on what date, for which role, and whether it carries a signature. The signature field grounds to the signature image itself, so the crop shows the mark the boolean was read from.

Demonstration fields: Letter date, Employer (letterhead), Designation, Signed, Signature date

The document

1 page
  • Page 1 of the sample Employment Verification LetterPage 1shown below

Where each value came from

Page 1 of the sample Employment Verification Letter, with every featured field outlined
Letter dateletter_date
April 25, 2022
The region of the sample Employment Verification Letter containing Letter date, with the extracted value outlined
extraction_metadata["letter_date"]
{
  "value": "April 25, 2022",
  "page": 1,
  "range": {
    "end": 234,
    "start": 220
  },
  "box": {
    "xmin": 0.08993,
    "ymin": 0.22735,
    "xmax": 0.19751,
    "ymax": 0.24161
  }
}
Employer (letterhead)employer.name
Deloitte Consulting India Private Limited
The region of the sample Employment Verification Letter containing Employer (letterhead), with the extracted value outlined
extraction_metadata["employer.name"]
{
  "value": "Deloitte Consulting India Private Limited",
  "page": 1,
  "range": {
    "end": 57,
    "start": 12
  },
  "box": {
    "xmin": 0.5888,
    "ymin": 0.06824,
    "xmax": 0.84435,
    "ymax": 0.08026
  }
}
Designationemployee.designation
XIN-DC SENIOR CONSULTANT
The region of the sample Employment Verification Letter containing Designation, with the extracted value outlined
extraction_metadata["employee.designation"]
{
  "value": "XIN-DC SENIOR CONSULTANT",
  "page": 1,
  "range": {
    "end": 460,
    "start": 363
  },
  "box": {
    "xmin": 0.08843,
    "ymin": 0.34496,
    "xmax": 0.80922,
    "ymax": 0.35956
  }
}
Signedsignatures[0].is_signed
true
The region of the sample Employment Verification Letter containing Signed, with the extracted value outlined
extraction_metadata["signatures[0].is_signed"]
{
  "value": true,
  "page": 1,
  "range": {
    "end": 1077,
    "start": 1069
  },
  "box": {
    "xmin": 0.08599,
    "ymin": 0.68161,
    "xmax": 0.30896,
    "ymax": 0.75164
  }
}
Signature datesignatures[0].signature_date
04.25.2022; 19:22:46 IST
The region of the sample Employment Verification Letter containing Signature date, with the extracted value outlined
extraction_metadata["signatures[0].signature_date"]
{
  "value": "04.25.2022; 19:22:46 IST",
  "page": 1,
  "range": {
    "end": 1130,
    "start": 1100
  },
  "box": {
    "xmin": 0.08685,
    "ymin": 0.7531,
    "xmax": 0.24983,
    "ymax": 0.76366
  }
}

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.

Compare plans
Capabilities

Employment Verification Letter processing highlights

Signature detection and dates
Employer from the letterhead
Start date and designation
Current employment status
Facts stated in prose
Office and residential addresses
Signer title and mailbox
Illegible signature handling
Stamps, seals and signatures
Letters from any employer
Scans of signed pages
Bounding box for every value
FAQs

Questions, answered

Yes. Parsing labels a signature block as signed, and the value grounds to the signature itself, so a yes answer comes with the mark it was read from. Stamps and seals are labelled the same way.

No. A signature block is detected as a mark, so the letter returns as signed whether or not a name can be made out. A signer name is returned when one is printed, and left empty when the page never states it.

Yes. The letterhead parses as a region like any other, so the company name, office address and contact details return as fields, with the logo classified separately.

Every value comes back with its page, a bounding box and the character range in the parsed Markdown. For an attested document that matters most on the signature, where the box is the image a reviewer needs to see.

A verification letter names an employee and often gives their home address, while the requester only needs the employment facts. A schema can ask for the employer, dates and title alone. Accounts are available with zero data retention, alongside SOC 2 Type II, GDPR and HIPAA compliance.

Start extracting employment verification letter data

Reliable, structured outputs with full traceability in minutes