💡 The Inspiration
Immigration is one of the most stressful life events. Applicants are stuck between two bad options:
- Expensive Consultants: Cost thousands of dollars and are often inaccessible.
- Generic AI Tools: Chatbots like ChatGPT "hallucinate" fake visa laws or give dangerously optimistic advice to ineligible candidates.
We wanted to build a third option: A "Neuro-Symbolic" AI Consultant. One that combines the cold, hard math of approval probabilities with the strategic empathy of a human expert and knows exactly when to say "stop."
🤖 What it does
VisaExpert AI is a dual-engine immigration platform:
- The Analyst (Deterministic ML): It takes hard biographical data (Age, Income, Travel History) and uses a Scikit-Learn Random Forest model to predict a raw "Approval Probability" (e.g., 78%).
- The Strategist (Generative AI): A Llama-3 70B agent (via Groq) interprets that score. It uses RAG (Retrieval-Augmented Generation) to access a database of visa rules and generates a strategic roadmap.
🛡️ The Safety Valve (Our Secret Sauce): Unlike standard chatbots, VisaExpert AI has Context-Aware Guardrails. If a user inputs a "Red Flag" (like a criminal record), the backend intercepts the conversation. It forces a "Critical Override," refusing to discuss travel itineraries until the legal inadmissibility is addressed. This prevents the AI from giving bad legal advice.
⚙️ How we built it
We used a modern, distributed architecture hosted entirely on Vercel:
- Frontend: Built with React + Vite and Tailwind CSS. We designed a "Premium Consultancy" aesthetic using Navy/Cream tones and custom "Typewriter" animations to build trust.
- Engine A (Prediction): A Python FastAPI backend serving a trained Scikit-Learn model. We used
joblibto serialize the model and serve real-time predictions. - Engine B (Consultation): A Node.js + Express backend connecting to Groq. It manages the chat state and injects the RAG context (Visa Knowledge Base) into the Llama-3 system prompt.
- Orchestration: Both backends and the frontend operate as independent Microservices on Vercel and Render, communicating via REST APIs secured by CORS whitelisting.
🚧 Challenges we ran into
- The "Serverless Amnesia": Deploying a RAG system on Vercel serverless functions was tough. The file system is ephemeral, so our
knowledge.txtkept disappearing during the build. We had to mastervercel.jsonconfiguration andprocess.cwd()logic to ensure the knowledge base was bundled correctly. - The "Polite Bot" Problem: The LLM wanted to be helpful, even to ineligible users. We had to engineer a "State Manager" in Node.js that overrides the system prompt based on specific JSON flags from the ML model, effectively forcing the AI to be "stern" when necessary.
🏅 Accomplishments that we're proud of
- Successfully deploying a Multi-Runtime (Python + Node.js) project on Vercel and Render.
- Achieving <1s inference speeds using Groq's LPU units for the LLM.
- Building a UI that doesn't look like a dashboard, but feels like a conversation with a professional.
🚀 What's next for VisaExpert AI
- Document OCR: Letting users upload bank statements for automatic income verification.
- More Countries: Expanding the ML dataset to include Schengen and Asian visa policies.
- Lawyer Handoff: A "Book Consultation" button that connects complex cases to real humans.
Built With
- fastapi
- groq
- llama-3
- node.js
- python
- react
- render
- scikit-learn
- tailwind
- vercel
- vite
Log in or sign up for Devpost to join the conversation.