HR / Recruiting
A verification of employment confirms where someone works, what they earn, and how long they have been there. The data arrives three ways: on Fannie Mae's Form 1005, in a Work Number printout, or in a free-form HR letter with no fixed layout. Sensible converts all three into structured JSON for underwriting, screening, and background checks.
Validated JSON
Schema-enforced output; every field matches your contract
Source coordinates
Every value links back to page + bounding box for audit
Per-document pricing
Predictable cost. No token-volatility surprises
Trusted by teams turning documents into production data






There is no single VOE document. A lender's Form 1005 is a fixed grid, a Work Number report is a dense earnings table, and an HR letter is a paragraph someone typed in Word. The same seven facts hide in three different shapes. Hybrid extraction reads each format; deterministic validation re-checks the earnings math before the data reaches your underwriter.
01
Form 1005 lays employer, employee, and compensation into labeled boxes. A Work Number printout stacks the same data in earnings tables. An HR letter buries it in prose with no labels at all. Anchored rules read the structured forms; LLM parsing pulls hire date, title, and salary out of the free-form letters and maps them to one schema.
02
Base pay, overtime, bonus, and commission split across current and prior years, with year-to-date and prior-year totals that are supposed to add up. Sensible reads the table as structured rows and checks that the components sum to the stated YTD figure, flagging the row for review when they do not rather than passing a bad number downstream.
03
A VOE is only valid if an authorized employer representative signed and dated it. Sensible captures the signer name, title, signature presence, and date, so an intake workflow can reject a stale or unsigned form before it reaches the file. Low-confidence fields are flagged for review instead of guessed.
Managed services
Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.
What's included
01Plan.Engineers review your samples and pick the right method
02Build.SenseML configs written from your samples
03Deploy.Same engine as self-serve, ready for production
04Adjust.We update configs when formats shift or new edge cases appear
05Integrate.Help with custom integration into your downstream systems
Every underwriting or screening pipeline maps the VOE to its own schema, so we build the config around your fields rather than a fixed list. These are the facts verification teams pull most often; we map whatever else your workflow needs.
01
Employer
Employer name, employer address, the lender or requesting party, verifier name and title, signature date, and probability of continued employment
02
Employee & role
Employee name, job title, employment status (full-time, part-time, contract), hire date, employment start and current dates, and whether employment is current or prior
03
Compensation & dates
Base salary or hourly rate, hours per week, overtime, bonus and commission, year-to-date earnings, prior-year earnings, and pay frequency
config.json
SenseML
{ /* SenseML: employment verification extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "employer_name", "description": "employer name, present employer, company name" },
{ "id": "employee_name", "description": "employee name, applicant name, name of employee" },
{ "id": "hire_date", "description": "hire date, date of employment, original hire date" },
{ "id": "annual_salary", "description": "base pay, current gross base pay, annual salary" }
// + role, status, and YTD earnings, mapped to your schema
]
}
}
]
}Sensible processes employment verifications across formats and submission channels. Fingerprints identify the document so the right configuration runs, and new formats can be configured in hours. The extraction logic is explicit in SenseML, not buried in prompt tuning.
Fannie Mae Form 1005, Freddie Mac Form 90, The Work Number printouts, payroll-provider exports, and free-form HR verification letters
System-generated PDFs, signed and scanned forms, emailed letters, and faxed copies that range from clean to degraded
Answers about Form 1005 versus free-form letters, year-to-date earnings extraction, and capturing the signer and date.
Sensible reads base pay, overtime, bonus, and commission as structured rows and checks that the components sum to the stated YTD figure, flagging the row for review when they do not rather than passing a bad number to your underwriter. It also captures whether the form was signed and dated so a stale or unsigned VOE can be rejected at intake.
Yes. Anchored rules read the structured forms, and LLM parsing pulls hire date, title, and salary out of free-form letters that have no labels at all. The same seven facts get mapped to one schema regardless of which of the three shapes they arrive in.
Employer, employee name and job title, employment status, hire date, base salary or hourly rate, hours, overtime, bonus, year-to-date and prior-year earnings, and the verifier signature and date are all extracted. Custom fields can be added in SenseML to match your underwriting or screening schema.
Sensible processes Fannie Mae Form 1005, Freddie Mac Form 90, The Work Number printouts, payroll-provider exports, and free-form HR verification letters. Fingerprints identify the document so the right config runs, whether it arrives as a system-generated PDF, a signed scan, or a faxed copy.
Start free
Free 14-day trial. No credit card required. Start extracting in minutes.