Skip to case study
VK / 2026

01 CASE STUDY · REMOTEHIRE · 2024

Immibot.

An immigration research product that evolved across two shipped architectures: Flowise-based Advisor and eligibility workflows, followed by streamed Perplexity search grounded in official government sources.

RoleFull-Stack Engineer
CompanyRemoteHire
SurfaceAI Workflows · Full Stack · SaaS
PUBLIC INTERFACE CAPTURE / 01Immibot landing interface with country choices for Canada, the USA, and Australia, an immigration question field, and common question cards.
Users choose a country and enter an immigration question to begin their research.

Keeping answers and context together.

Immigration questions are high-context. A useful answer depends on country, intent, profile details, documents, and changing source material. The product challenge was to make that complexity feel like a sequence of clear next steps.

I owned the product layers around two generations of Immibot: the original Flowise Advisor/Search, tracking, orientation, and Federal Skilled Worker (FSW) workflows, and the later Perplexity-powered official-source search experience with persisted citations and guest-to-account continuity.

The system provides guidance and workflow software, not legal advice or a guarantee of eligibility.

The current product path.

From first question to an inspectable, saved answer.

  1. 01

    Guest entry

    A visitor could start in one click. The guest session gave the workflow enough continuity to be useful before account creation.

    low-friction start
  2. 02

    Country selection

    The selected destination configures the prompt and the official government domains allowed for research.

    Canada · USA · Australia
  3. 03

    Official-source search

    Perplexity Sonar researches restricted government sources and returns inspectable links with the answer.

    evidence beside answer
  4. 04

    Stream + persist

    The response reaches the UI incrementally while messages and numbered citations are stored through Prisma.

    responsive and durable
  5. 05

    History + account continuity

    Persisted history moved from the guest session into the Clerk account so users did not have to restart the workflow after signup.

    continuity after signup
EARLIER VERSION · 2024

Advisor/Search selection → Flowise chatflow → follow-ups and progress tracking → orientation/FSW tools → persisted recommendation

The earlier version used Flowise for follow-up questions, progress tracking, and eligibility tools. Search later moved to Perplexity.

Migrating from Flowise to Perplexity.

Search moved to Perplexity while sessions, accounts, and conversation storage remained part of the app.

Immibot architecture evolutionTwo horizontal system maps distinguish the historically shipped 2024 Flowise architecture from the current Perplexity official-source search architecture.2024 · FLOWISE ERA · HISTORICALLY SHIPPEDCURRENT · PERPLEXITY ERA01Sessionprofile + context02Mode routeAdvisor / Search03Flowisedistinct chatflows04Product toolstracking · FSW05Persistprogress + answerPROVIDER MIGRATIONFLOWISE → PERPLEXITY01Identityguest / Clerk02Country configCA · US · AU03Sonar searchofficial domains04Streamanswer + citations05PersistPrisma / PostgresSHARED PRODUCT LAYERS · AUTH · HISTORY · ADMIN · CREDITS · ANALYTICSImmibot mobile architecture evolutionA vertical comparison of the historical Flowise system and current Perplexity system.2024 · FLOWISE ERA · HISTORICALLY SHIPPED01Advisor / Search routingprofile context → distinct chatflow02Flowise toolsfollow-ups · tracking · orientation · FSW03Persisted resultprogress · recommendation · answerPROVIDER MIGRATIONCURRENT · PERPLEXITY ERA01Guest / Clerk identitycountry and conversation context02Perplexity Sonarofficial government domains03Stream + citationsinspectable answer in the live UI04Prisma / PostgreSQLmessages · sources · account continuitySHARED PRODUCT LAYERS SURVIVED THE MIGRATION

Why this mattered. The 2024 Flowise system used distinct Advisor, Search, follow-up, tracking, orientation, and FSW paths. The current system uses Perplexity Sonar for country-aware official-source research while retaining the surrounding session, persistence, account, and product layers.

Current · PerplexityHistorical · FlowiseFSWGuest → account

What I built

I built chat APIs, streaming UI, guest and authenticated sessions, Prisma persistence, administration, Clerk auth, document uploads, product analytics, payment credits, and deployment.

Stack: Next.js / TypeScript · AI search / Flowise workflows · Prisma / PostgreSQL · Clerk / Stripe credits · PostHog · Azure Blob / Vercel

The product around the model.

Alongside search, I worked on identity, administration, documents, consultation hand-offs, credits, and instrumentation.

01Admin modelPrograms, rules, provinces, users, professionals
02DocumentsAzure-backed uploads, persistence, notifications
03ConsultationDynamic Cal.com/live-chat CTAs and feedback
04InstrumentationChat, CTA, feedback and document events
Sessions · administration · documents · credits
GUEST → ACCOUNT

Guest entry and account continuity made the workflow usable before and after signup.

Product outcome · context carried forward

Keep the conversation after signup.

A guest could ask questions, return to saved history, and create an account without losing earlier conversations or citations.

I instrumented chat, response, feedback, consultation CTA, document, and application events through PostHog while preserving conversation continuity across guest and authenticated sessions.