Inspiration

We built Arrive because we have seen firsthand what it looks like when a newcomer arrives in Canada without the right information. Resources are scattered, government chatbots fail (Canada's Auditor General found in October 2025 that the CRA's "Charlie" chatbot cost $18M and answered correctly only one third of the time), and general AI tools hallucinate services that don't exist. For a refugee claimant with a 45-day filing deadline, wrong information is not an inconvenience. It can cost them their case.

What it does

Arrive connects refugees and immigrants in Canada with verified housing, legal aid, and employment resources through a personalized conversational interface powered by IBM watsonx.ai.

Three questions at onboarding (province, needs, immigration status) personalize every AI response. The AI only recommends from a manually curated database of 39 verified Canadian settlement resources, each with a visible verified date stamp. If no confirmed resource exists for a user's situation, Arrive directs them to call 211. It never invents an answer.

How we built it

  • AI: IBM watsonx.ai (meta-llama/llama-3-3-70b-instruct) via SSE streaming, with IBM Cloud IAM token exchange
  • Frontend: React + Vite + Tailwind CSS v4, deployed on Vercel
  • API: Vercel serverless function proxying all watsonx calls server-side (API key never reaches the browser)
  • Data: Manually curated resources.json with 39 verified entries, filtered by province, status, and category
  • Quality: 21-case eval suite (all passing), automated URL healthcheck (37/38 live)

Challenges we ran into

Keeping the AI grounded. Getting Llama 3.3 70B to reliably fall back to 211 for unsupported situations and resist prompt injection required careful system prompt engineering and an adversarial eval suite to verify.

Resource curation under time pressure. Every entry required manual verification from the source website. 39 entries, four to six hours. No shortcut for this in a high-stakes domain.

Accomplishments that we're proud of

21/21 eval cases passing including 6 adversarial tests. Zero hallucinated resources in testing. A working deployed application with real verified data that a real newcomer could use today.

What we learned

The data layer is the product. The AI is a delivery mechanism. If the data is wrong, the AI is wrong. Manual curation is slow but for high-stakes immigration information it is the only honest approach.

What's next for Arrive

Phase 2: Live RAG over 211.ca via IBM watsonx Discovery, all provinces, 10 languages via translation API. Phase 3: Partnerships with settlement agencies (COSTI, ACCES Employment, JVS Toronto) and a government procurement pathway via IRCC settlement funding. The same architecture with a swapped resource database works for any country with a newcomer intake system.

Built With

Share this project:

Updates