Recommendations
Every report ends with a ranked list of recommendations: concrete, plain-language actions the applicant can take before submitting to improve their odds. Recommendations are not generic advice — they reference the specific gaps detected in the documents you uploaded.
How they are produced
Each red flag, missing-field, or weak-signal event surfaced by the analysis pipeline maps to one or more recommendation templates. Templates are then filtered by category, destination, and applicant profile, scored by expected impact, and deduplicated.
Anatomy of a recommendation
| Field | Type | Description |
|---|---|---|
| id | string | Stable identifier you can use to dismiss or track. |
| priority | enum | high · medium · low — drives UI ordering. |
| category | enum | documents · finances · intent · history — matches the signal group it improves. |
| summary | string | One-line action the applicant should take. |
| detail | string | Optional longer explanation. |
| impact | string | Human-readable estimate of expected score improvement. |
| applies_to | string[] | Country codes for which this recommendation is relevant. |
Example output
{
"recommendations": [
{
"id": "rec_increase_funds_proof",
"priority": "high",
"category": "finances",
"summary": "Add a savings statement covering the last 3 months.",
"detail": "Your current statement covers 28 days; Schengen posts typically expect 90.",
"impact": "+8 expected score points",
"applies_to": ["DE", "FR", "ES", "IT", "NL"]
},
{
"id": "rec_employer_letter",
"priority": "medium",
"category": "intent",
"summary": "Attach an employer letter confirming approved leave.",
"impact": "+4 expected score points"
},
{
"id": "rec_book_return_flight",
"priority": "low",
"category": "intent",
"summary": "Add a refundable return ticket on the booked date."
}
]
}Personalisation
- Profile-aware. A self-employed applicant gets different finance recommendations than a salaried one.
- Destination-aware. US B-1/B-2 emphasises ties-to-home-country; Schengen Type C emphasises insurance and itinerary.
- Time-aware.If submission is < 14 days away, slow-to-obtain recommendations (e.g., notarised translations) are de-prioritised in favour of fast fixes.
Prioritisation logic
Recommendations are ranked by expected_score_uplift × feasibility_within_deadline. High-impact, easy-to-fix items always surface first.
Signal categories
Every recommendation belongs to one signal category. The category tells the applicant which part of their profile the action improves and drives how items are grouped in the UI.
| Category | What it covers | Typical recommendations |
|---|---|---|
documents | Completeness, legibility, and validity of uploaded files. | Re-upload a clearer scan; add a missing insurance certificate. |
finances | Proof of funds, balance stability, and coverage windows. | Add a 3-month statement; explain a recent large deposit. |
intent | Evidence the applicant will return and the trip is genuine. | Attach approved-leave letter; book a refundable return ticket. |
history | Prior travel, visa history, and overstay/ties signals. | Disclose prior Schengen entries; add property or family ties. |
Worked example
Consider a salaried applicant for a German (DE) tourism visa whose bank statement covers only 28 days and who has not attached an employer letter. The pipeline emits two events — a finances.coverage_short weak signal and an intent.no_leave_proof gap — which map to the first two recommendations in the response above. Because submission is three weeks out, both are feasible, so they rank by uplift: the savings statement (+8) sorts above the employer letter (+4). The refundable-ticket item is low priority and surfaces last. Acting on all three lifts the report from medium toward low risk.
impact figure is an estimated score uplift based on similar profiles, not a promise of approval. HeyVisa is not an embassy and cannot guarantee a visa decision — recommendations simply help you submit the strongest possible application.