Run Underwriter CLI
Purpose
Execute and debug the mortgage underwriter tool for document analysis.
Prerequisites
1. Set API Key
export GEMINI_API_KEY="your-gemini-api-key"
2. Build the Binary
make build
3. Fetch Guidelines (if needed)
make fetch-guidelines
Usage
Analyze a Directory of Documents
./bin/underwriter -docs /path/to/documents
Analyze Specific Files
./bin/underwriter -files w2.pdf,paystub.pdf,bank_statement.pdf
JSON Output (for programmatic use)
./bin/underwriter -docs /path/to/documents -json
Custom Guidelines Path
./bin/underwriter -docs /path/to/documents -guidelines /custom/path
All CLI Flags
-docs string Directory containing documents to analyze
-files string Comma-separated list of document files
-guidelines string Path to Fannie Mae guidelines (default "configs/guidelines")
-app-id string Application ID (default "test-001")
-json Output results as JSON
Test with Sample Documents
# Generate test documents first (if needed)
cd test_loan_files && python3 generate_loan_docs.py && cd ..
# Run on test loan file
./bin/underwriter -docs test_loan_files/loan_file_1_LN-2024-001847
Understanding Output
Analysis Result Structure
- status:
approved | conditional | denied | needs_review | incomplete
- confidence: 0.0 to 1.0 score
- findings: Observations with category, description, evidence, document ID
- risks: Identified risks with severity (low/medium/high/critical) and mitigation
- missing_documents: Required documents not provided
- summary: Brief description of analysis
Status Meanings
| Status |
Meaning |
| approved |
Meets all guidelines |
| conditional |
Approved with conditions |
| denied |
Does not meet guidelines |
| needs_review |
Manual review required |
| incomplete |
Missing required documents |
Troubleshooting
"GEMINI_API_KEY not set"
export GEMINI_API_KEY="your-key"
"No documents found"
- Check file paths exist
- Supported extensions: .pdf, .png, .jpg, .jpeg
Document Type Misdetection
Files are typed by filename patterns:
*w2* or *w-2* -> W2
*paystub* or *pay* -> Paystub
*bank* -> Bank Statement
*tax* or *1040* -> Tax Return
*1099* -> 1099
Guidelines Not Loading
make fetch-guidelines
ls configs/guidelines/
Related Files
cmd/underwriter/main.go - CLI implementation
internal/agent/income/income.go - Income agent logic
internal/model/analysis.go - Result structures