NXT

V2 release notes

What changed in NXT V2 — plain-English summary

TL;DR

  • The matching engine is no longer guesswork. Every school now gets a clear Reach / Fit / Safety verdict based on real numbers — GPA, test scores, admit rates, financial fit. AI is still in the app, but only to write the short "why this might be for you" blurb. It no longer decides the match.
  • New users see real schools matched to them before they sign up. They get value first, then commit.
  • The app now has reasons to bring users back: deadline reminders, a weekly "new top matches" alert, and in-app nudges to finish their profile.
  • Dark mode, faster screens, full translation support, and a much more polished overall feel.

A note on the AI change

In v1 we used a retrieval-augmented system (RAG). The AI essentially read text descriptions of schools and tried to find ones that "sounded like" a fit for a given student.

I've spent the last several months building production apps with RAG, and over time I realized two things about our use case specifically:

  1. The retrieval layer didn't always fire when expected, so the same student could get different results on different days. That's confusing for users and impossible to support.
  2. The inputs that actually matter for college matching — GPA, test scores, admit rate, family budget — are all numeric. Math gives the same answer twice. AI doesn't.

So in v2 the matching is fully deterministic. A school is a Reach if the student is below the school's middle 50% test range. It's a Fit if they're inside it. It's a Safety if they're above it. We can show exactly why we said what we said. And it's faster and cheaper to run.

AI still has a job in the app — writing the short, friendly blurb that appears on each school card explaining why that school might be a good fit for that specific student. Turning structured data into nice sentences is what AI is genuinely good at. Making the actual decision isn't.

What's new

The first 5 minutes

Before: open the app, hit the sign-up wall. No way to see what NXT actually does without committing to an account.

Now: open the app, swipe through real schools matched to you on the spot. Tell us your interests, rough location, and GPA, and you get a personalized list before you sign up. When you do sign up, your list is already there waiting.

This is the single most impactful change for converting new visitors into actual users.

Reasons to come back

v1 had no notifications. Once a user closed the app, NXT was silent.

v2 sends:

  • Application deadline reminders at 14, 7, 3, and 1 days out, in the user's own timezone.
  • Weekly "new top matches" when their personalized list changes enough to be worth mentioning.
  • In-app nudges like "Add your test scores to unlock 12 more matches you haven't seen."

A real profile

v1 had a flat profile: name, GPA, location, test scores.

v2 has structured sections — academics, test scores, finances, background (race, gender, first-generation status), personal story, achievements, extracurriculars, community service. Users see a completion percentage that goes up as they fill it out.

Saved schools as a real college list

v1 saved schools went into a flat list.

v2 tags every save as Reach / Fit / Safety the moment it happens, so the list shows portfolio balance ("you have 12 reaches and 1 safety") and can be sorted by category, distance, cost, or admit chance. This mirrors how counselors actually advise.

Polish

  • Dark mode, with smooth switching between modes.
  • Every visible string set up for translation (English fully covered; adding another language later is a swap, not a rewrite).
  • Pull-to-refresh everywhere.
  • Heavy work pauses when a screen isn't visible or the app is backgrounded — saves battery and data.
  • School logos and photos appear instantly when scrolling instead of popping in late.
  • Modern slide-up sheets for filters and sort instead of cramped inline rows.
  • Centralized design system so future visual changes are a single edit instead of a hundred.

Account handling

Account deletion now properly cascades through every piece of user data and can't accidentally re-create a half-deleted account if someone signs in mid-deletion.

How we get college data

v1 ran a heavy ingestion pipeline. We downloaded the full College Scorecard dataset as raw CSVs, ran a long batch process over it, did AI-powered enrichment on each school, scraped images, and stored the fully-built college records in our own database. Adding a single school meant re-running the pipeline. Updating fields when the government released a new dataset meant re-running the pipeline. It was slow, expensive to operate, and a constant source of bugs.

v2 talks to the College Scorecard API directly and caches results as they're requested. The first time a user encounters a school, we fetch it; from then on we serve it instantly from the cache. School photos and logos are fetched the same way — once, then cached.

This is much smarter for a few reasons:

  • Always current. When the government updates Scorecard, we get the new data automatically. v1 needed a re-ingestion run to catch up.
  • Pay only for what's used. We don't store thousands of schools no one looks at. The cache fills naturally based on actual demand.
  • Zero maintenance. No batch jobs, no CSV downloads, no manual re-runs.
  • Easier to extend. Adding a new field from Scorecard is a one-line code change instead of a full re-ingestion.

The product looks the same to a user — school cards with photos, stats, and details — but the system behind it is dramatically less work to keep running.

What we deliberately simplified

The campus-setting quiz used to ask about sunny days, snowfall, religious affiliation, sports division preferences, and Greek life intensity. v2 cut those down to the four that actually drive matching: setting (rural/town/suburb/metro), student body size, how much politics matters, and how walkable the campus needs to be.

The longer version added a lot of friction without producing proportionally better matches. If any of these dimensions turn out to matter to users in practice, they're easy to add back later.

What user behavior shows so far

I pulled the analytics from PostHog. Numbers are small — this is a tight early-user base — so read these as direction, not statistics.

Real numbers

  • Around 11 people have actually installed the app and opened it.
  • The app has been opened 36 separate times across all users.
  • Two of those users have come back on 4 different days. That's the best signal we have that the core experience can hold someone's attention.
  • Most recent activity is today.

The wider 200+ user count comes from WorkOS, which counts everyone who's ever signed up (including people who never installed the app or opened it after install) plus visitors to the marketing website.

What users actually do

  • Open the app and come back.
  • Refresh their recommendations a lot. "Show me more matches" is the most-tapped action in the app.
  • Take the interests quiz. Of the three quizzes, this is the one users finish. The other two barely register.
  • Occasionally open a school's detail page (rare, but happening).

Where users drop off

  • Welcome screen → signed in is the biggest cliff. Around 70% of users who see the welcome screen never finish creating an account.
  • Once signed in, users do finish onboarding. The drop is before sign-up, not after.
  • Quizzes after the first one: users mostly stop at the interests quiz.

Quality

  • Stable. Only 1 sign-in error against 6 successful sign-ins. No meaningful crash volume.
  • Sessions are short — people dip in for a minute or two rather than long sessions.

How this maps to v2

The data backs up the v2 direction in three concrete ways:

  1. The 70% drop-off at sign-up is exactly what the new pre-signup swipe experience is built to fix.
  2. The most-tapped action is "show me more matches," which is precisely what the smarter matching engine + weekly "new top matches" notification feed.
  3. Users won't naturally finish their profile on their own — the new profile-completeness nudges on Discover ("unlock 12 more matches by adding your test scores") are designed exactly for this.

What v2 should track that v1 didn't

A few important events were missing from the v1 analytics. v2 should fire these from day one so we can actually measure whether the new product is working:

  • Saved schools (we couldn't see saves at all in v1 — this is the most important commitment metric).
  • Extended-profile completion percentage (so we can tell whether the profile-depth nudges are working).
  • First-session vs. returning-session distinction (so we can measure whether deadline + weekly notifications are doing their job).

In short

v2 is an upgrade across most of the things that determine whether a college discovery app gets used week after week:

  • Smarter, more honest matching.
  • An onboarding experience users can try before they sign up.
  • Real reasons to come back.
  • A saved-list that works like a real college list.
  • A polished, fast app that feels finished.

Every major bet in v2 maps onto something the existing user data already shows people want.

On this page