EasyVisa Approval Prediction
Predicting whether a US work-visa application is likely to be certified, so case officers can prioritize review capacity toward the applications most likely to need it.
The problem
The Office of Foreign Labor Certification processes tens of thousands of visa applications every year with a limited review team. Manually reviewing every case is slow, and a wrong denial or a wrong approval both carry real cost — so the model is deliberately optimized to catch likely denials before they consume review time, rather than to maximize plain accuracy.
Approach
The dataset (25,000+ historical applications) was cleaned and feature-engineered from applicant education, job experience, prevailing wage, employer region, and full-time status. Because approvals substantially outnumber denials in the raw data, the model comparison specifically tracked recall on the denied class as the optimization target, not just overall accuracy — missing a likely denial is more expensive than double-checking a likely approval.
Four ensemble classifiers were tuned with grid search and 5-fold cross-validation, each under both oversampled and undersampled variants:
Model comparison (validation set)
| Model | Recall | Precision | F1 |
|---|---|---|---|
| AdaBoost (oversampled) | 93.0% | 71.5% | 80.8% |
| Random Forest (undersampled) | 72.2% | 81.7% | 76.7% |
| Gradient Boosting (oversampled) — selected | 80.5% | 78.7% | 79.6% |
| XGBoost (oversampled) | 84.5% | 78.0% | 81.1% |
Gradient Boosting (oversampled) is the model the notebook carries forward. It does not win every validation metric: AdaBoost has the highest recall (93.0%) but lower precision (71.5%), and XGBoost has a slightly higher F1 (81.1%). The choice reflects a recall-versus-precision trade-off. On the held-out test set, Gradient Boosting scored: 75.4% accuracy, 86.7% recall, 78.7% precision, 82.5% F1.
A pure-accuracy model would have looked better on paper but would have quietly let more denials slip through unreviewed. Optimizing for recall on the minority (denied) class, even at a moderate precision cost, is what actually reduces reviewer workload downstream.