Extract data from mortgage applications
Unstract reads the Uniform Residential Loan Application and the loan estimates, employment verifications and loan schedules filed with it, wet-signed scans or e-signed PDFs, and sends each borrower, income, asset and loan field to your loan origination system.
base pay per offer letter, raise eff. 9/1 — PN
Fannie Mae Form 1003 · Freddie Mac Form 65 · 1/2021
{ "form": "Uniform Residential Loan Application", "borrower": "Andrew J. Kessler", "ssn": "***-**-4471", "date_of_birth": "09/22/1988", "marital_status": "Married", "employer": "Granite Peak Engineering LLC", "base_monthly_income": 9250, "account_balance": 48620.15, "loan_amount": 412000, "loan_purpose": "Purchase", "occupancy": "Primary residence", "confidence": 0.94}
Trusted by lending and onboarding teams around the globe
Every loan officer's file comes in a different shape
A 1003 keyed in the point-of-sale system prints cleanly. Applications taken at an open house, at a branch desk or from a broker partner look like this.
Signed at the branch, scanned on a copier that crops the margins
The pre-2021 1003, the redesigned URLA and a broker's own form
Income rewritten by hand after the borrower found a newer pay stub
Application, VOE, loan estimate and schedule in a single upload
Amortization tables from servicers, next to a student loan agreement
Processors retype a nine-page application into the LOS, field by field, and recheck the income against the pay stubs by hand, so the file sits in a queue while the borrower's rate lock runs down.
Unstract reads the 1003 in whichever edition it arrived, extracts the borrower, employment, asset and loan fields, checks them against the rest of the file and delivers a clean record to your loan origination system.
From a signed 1003 to a loan file ready for underwriting
LLMWhisperer reads the application, Document Studio turns it into fields and Flow runs the origination file around them. Start with any one of the three and add the others when the volume asks for it.
Read every section of a mortgage application with its boxes intact
A Uniform Residential Loan Application spreads one borrower across nine sections, with tick boxes for marital status, loan purpose and occupancy and a run of declarations answered yes or no. LLMWhisperer is the loan application form OCR layer: it keeps every ticked and unticked box beside its label, holds each asset row together across the table, and reads a handwritten income figure where the borrower wrote it.
Hand the text to your own LLM, or make it the first step of your loan file intake.
Learn more about LLMWhispererTurn mortgage applications into one borrower record for every edition
Loan application data extraction starts from the fields your underwriters check: borrower and co-borrower identity, years at the current address, employer, position and base income, each asset account with its balance, and the loan amount, purpose, property and occupancy. The old 1003, the 2021 URLA and a broker's own layout return the same JSON. Values are compared with the documents around them, so a base income that the pay stubs don't support comes back flagged with the figure it disagrees with.
Call it as an API from your point-of-sale system, run it as an ETL pipeline over the loan documents folder, or make it one step of an orchestrated origination file.
Learn more about Document StudioRun mortgage loan origination from the first upload to underwriting
Describe how your team builds a loan file around the 1003 in plain English, and Flow's agents build the workflow. The upload is split into the application, pay stubs, W-2s, bank statements, VOEs and the purchase contract, each one indexed to the loan, and the 1003 income and assets are recalculated from the documents that support them. Clean fields land in your loan origination system, such as ICE Encompass or Dark Matter Empower. You approve the workflow once, and each new application follows the same path.
Decide which files need a person: stated income outside your tolerance, a large deposit nobody has explained, a statement month missing from the assets or a low-confidence read. Those files wait for a loan processor with the page that raised the question; the rest move on to underwriting.
Learn more about FlowRead your own 1003s today. Add the origination workflow later.
Start for free and run signed applications through parsing and extraction on your own. Income checks, conditions and posting to your loan origination system start with a consultation.
The 1003, the loan estimate and the paperwork that follows a loan
Documents
- Uniform Residential Loan Application (Fannie Mae Form 1003)
- Freddie Mac Form 65
- Pre-2021 Form 1003 editions
- Lender and broker loan applications
- Additional borrower and continuation sheets
- Loan estimates
- Verification of employment forms
- Verification of deposit forms
- Loan information and verification forms
- Loan data verifications
- Loan amortization schedules
- Student loan agreements
- Student loan guarantor forms
- Uniform underwriting and transmittal summaries (Form 1008)
- Pay stubs
- Purchase contracts
Fields captured
For the teams who take an application and close the loan
Loan officers send a signed application from an open house and see the borrower's income and assets in the file that afternoon, before issuing the loan estimate.
Processors stop keying nine pages per borrower, and underwriters open a file where each stated figure on the 1003 already sits beside the pay stub or statement that proves it.
Members walk in with paper applications and older 1003 editions, and a small mortgage desk turns them into LOS records without adding staff for data entry.
Personal, auto and student loan applications follow the same rules, with employer, income and repayment terms read off each one and amortization schedules captured for the debt calculation.
Applications set up while the borrower is still on the phone
A borrower's whole financial life sits on one form
A mortgage application lists a borrower's Social Security number, date of birth, employer and income, every bank and retirement account with its balance, and every debt they owe. That full financial profile is what an identity thief needs to take out credit in the borrower's name.




- Encrypted in transit and at rest.
- Borrower applications are never used for model training.
- Access set by role, branch and loan, with every edited field and cleared condition logged against the loan number.
- Retention follows your policy, so applications are removed when your record-keeping rules allow.
- Self-hosted deployment for lenders and credit unions that keep borrower data inside their own network.
What lenders ask about reading loan applications
Unstract does. LLMWhisperer reads scanned, faxed and e-signed applications into text with every tick box and table row in place, and Document Studio returns the fields as JSON from one API endpoint per document type. A lending app posts the 1003 and gets the borrower record back.
Judge it on the files you already have: it should read the old 1003, the 2021 URLA and a broker's own form without a template for each, check stated income and assets against the supporting documents, and post to your loan origination system. Unstract runs as an API, an ETL pipeline or an MCP server.
Point an ETL pipeline at the folder or inbox your borrower portal writes to, define the fields once, and each new PDF is read on arrival. Records go to your LOS or a database such as Postgres or Snowflake.
Document Studio. It uses LLMs to find each field by meaning, so the same schema works on a Form 1003, a Freddie Mac Form 65, a personal loan application and a student loan agreement. Two models check each value, and a figure they disagree on comes back empty for review.
Yes. Brokers, credit unions and older 1003 editions all place the income and asset boxes differently. No template or training is needed per layout, and every version returns the same JSON keys.
A mortgage application form data extractor should return one record per borrower: name, masked SSN, date of birth, marital status, addresses with years at each, employers with position and monthly income, asset accounts with balances, liabilities, the loan amount, purpose, property and occupancy, and the declarations answers.
A template-based mortgage application form parser breaks when a broker sends its own layout or a borrower fills in a continuation sheet. Document Studio reads by meaning, so a new layout needs no new rules.
Yes. Loan estimates return the rate, loan terms, closing costs and cash to close. Verification of employment forms return the employer, dates of employment and pay history. Amortization schedules and student loan agreements return balances, payments and terms for the debt-to-income calculation.
LLMWhisperer reads handwriting alongside printed text, including figures a borrower corrects by hand. The Highlight API shows where on the page each value came from, so a processor can confirm a handwritten income in one look.
Unstract is SOC 2, ISO 27001, GDPR and HIPAA compliant. Applications are encrypted in transit and at rest, never used to train models, and deleted on your schedule. Lenders can also self-host; see the Trust Center.
Bring ten signed loan applications to the consultation
A wet-signed 1003 from a branch, an older edition from a broker, an e-signed URLA and the one with income rewritten in pen. We read them live and show the borrower record, the income check and each flag.









