Inspiration

When a refugee arrives in a new country, they face three walls simultaneously: a language barrier, a knowledge gap about what services they're entitled to, and a trust barrier rooted in fear that identifying themselves could lead to detention or deportation. Existing solutions like government websites, hotlines, and NGO pamphlets fail on all three walls because they are monolingual, static, and require the user to already know exactly what to search for. We were inspired to build a tool that knocks down all three walls at once, making public services instantly and anonymously accessible to displaced populations in their own language.

What it does

Arrive is a multilingual AI platform that helps refugees and asylum seekers navigate public services instantly and anonymously.

  • Language-First Interface: Automatically detects the user's device language via the browser and pre-selects from 16 refugee-priority languages (including Arabic, Dari, Tigrinya, Ukrainian, Burmese, and Somali) in their native scripts.
  • Intelligent Recommendation Engine: Users describe their situation in natural language, and the platform scores and ranks relevant public services based on their query and demographic profile, displaying a live relevance percentage.
  • Arrive AI Chat: An integrated conversational assistant powered by Google Gemini allows users to ask about asylum rights, healthcare, or school enrollment, receiving answers in their own language.
  • Crisis Escalation: If a user's message contains crisis signals (such as danger, trafficking, or suicidal ideation), the platform immediately surfaces emergency contacts before any other response.
  • Total Anonymity: To build trust, no names, emails, phone numbers, or nationalities are ever collected or stored. ## How we built it
  • Frontend: Built using a single HTML file with no frameworks, build steps, or dependency chains. This allows an NGO or support worker to deploy Arrive from a USB stick without any external cloud bills or installation processes.
  • Language Detection: Uses the browser's native navigator.languages API mapped against a 20-locale table to pre-select the correct language on load.
  • Recommendation Engine: A weighted scoring function that combines keyword semantic overlap, urgency flags, and demographic multipliers (e.g., matching "with children" or "just arrived" to specific service priority points) entirely in the browser.
  • AI Chat Proxy: A Node.js proxy server sits securely between the browser and the Gemini API to hold the API key and forward requests. The Gemini model uses a custom system prompt engineered to respond empathetically, avoid collecting data, escalate crises, and break complex legal processes into simple steps.
  • Data Layer: A structured, hand-curated resource database of 15 archetypal services (e.g., emergency shelter, legal aid, food programs, anti-trafficking) featuring keyword arrays for semantic matching. ## Challenges we ran into
  • CORS Blocking: We initially tried to call the AI API directly from the frontend, which triggered browser CORS blocks and misleading connection errors. We solved this by building a lightweight Node.js proxy server to handle the API key server-side.
  • Relevance Without a Vector Database: True semantic search usually requires heavy infrastructure like embedding models and vector databases. We bypassed this by engineering our own browser-based weighted keyword scoring function that runs in under 10ms.
  • Language at Every Layer: Supporting 16 languages meant ensuring the AI could handle mid-conversation language switches, processing non-English scripts in the search engine, and properly rendering Right-to-Left (RTL) languages like Arabic. We solved this using the system prompt and native browser font rendering.
  • Designing for Trust: Overcoming refugees' fear of exposure to authorities required intentional omissions—eliminating signs-ups, name fields, and data storage in favor of anonymous session tokens. ## Accomplishments that we're proud of
  • Designing a language-first onboarding flow that prioritizes comfort and respect over transaction ("What language are you comfortable in?" instead of "Create an account").
  • Building a fully functional, deployable platform in just a single HTML file and one server file with zero npm dependency chains.
  • Creating a rapid browser-based relevance engine that produces meaningful, explainable rankings with zero external infrastructure.
  • Engineering a dual-layer crisis detection system that intercepts dangerous situations and surfaces emergency hotlines immediately. ## What we learned
  • Humanitarian Tech Priorities: The most critical design decisions in this space are about what you choose not to collect, not to ask, and not to show.
  • Language as Infrastructure: Language is not a mere UI feature; it is the absolute foundation of accessibility. Integrating language detection from day one fundamentally changes product capability.
  • Scoring Efficiency: A well-engineered, lightweight scoring function can successfully approximate semantic search for tightly focused domains without massive backend infrastructure.
  • Architecture Security: Proxy architecture is non-negotiable for AI-powered web apps due to browser security and CORS guardrails.

Built With

Share this project:

Updates