Luka Hadzic.
← Back to work

next4

A college-matching app for high school students, built on a knowledge base of 1,400 institutions and 145,000+ facts sourced entirely from federal data. A student sorts 86 preference cards; the app returns a ranked list of real schools and shows, per school, exactly which of their own answers put it there. The ranking is computed, not generated, so a language model can never invent a school statistic.

RoleCo-founder & Developer
Type0→1 Consumer EdTech · iOS
TimelineAug 2025 – Present
LiveApp Store ↗
Siteyournext4.com ↗

My role

I co-founded next4 and built it. I built the onboarding that captures what a student values, and the backend and custom college database the matching runs on. next4 is designed for the full range of college-bound high schoolers and is live on the App Store.

Co-founderCo-founded and built next4, a college-matching app that replaces generic rankings with a personalized search built around what each student actually values.
OnboardingBuilt the card-sort onboarding. Instead of filling out a survey, students sort a deck of cards spanning academics, location, campus culture and support resources into five priority tiers, from "must have" to "not for me."
DatabaseBuilt a custom database covering every college in the country from institutional data sources, so matches run on real, comprehensive college data instead of generic or incomplete school data.
Backend & matchingBuilt the backend that pairs each student's priorities with their academic stats and returns a ranked shortlist of ten schools, each labeled Likely, Target or Reach, scored for fit against what the student said mattered most, and explained.
AudienceDesigned for the full range of college-bound high schoolers.
LaunchLive on the App Store.
App Development Backend & Database Development Onboarding UX Product Launch

The problem

The college search runs backwards. A student takes a standardized test, checks a box, and their information goes onto a list that colleges buy access to. Then several hundred brochures arrive. Those are schools that bought their demographic, not schools that fit them.

The tools meant to fix this mostly have the same problem underneath. Many of the free ones are paid by colleges rather than by families, which makes "who fits you" and "who is paying us" the same question. And the tool most students actually use is ChatGPT, which will confidently assemble a college list out of whatever it finds on school marketing pages, with no way for a 17-year-old to catch a number that's wrong.

We ran a demand study before we committed to building anything: 1,226 Reddit comments across 39 threads, coded and adversarially verified. It found that the funded competitors had close to zero organic mindshare. The things students actually named as their alternatives were ChatGPT, free guides, and expensive consultants they didn't trust. That reframed the whole opportunity: the competition wasn't a startup, it was a general-purpose chatbot that can't compare anything.

The insight & the wedge

Two mechanisms, in this order.

The card sort is the instrument. Sorting 86 cards into five buckets pulls out preferences a student cannot articulate into a search form. Nobody types "I want a mid-size school in a college town with strong research access and low cost of living" into a filter. But they will tell you, one card at a time, and that's what they remember doing.

The ranking is deterministic and fact-backed. Matching runs against federal data with no language model anywhere in the critical path. Must-haves and dealbreakers become database filters; everything else scores. That's what makes the sort's output trustworthy instead of merely fun.

The structural point behind the positioning: the free competitors are paid by colleges, so their incentive is placement. next4 is paid by families, so its only incentive is fit. That's a fact about business models, not a marketing claim, and it reframes every competitor's core feature as a conflict of interest.

Neither half stands alone. Aggregators rank on opaque proprietary scores and have no comparable instrument. A quiz without the engine behind it couldn't defend its own output.

How we validated it

Two months of research ran before the product's first line of code, designed so it could come back negative. Twice it did.

1,226Reddit comments coded on theme, sentiment and segment, then adversarially checked
84parents and students surveyed against a rubric written before the data arrived
85competitive claims extracted, 25 verified: 16 confirmed, 2 refuted

Three findings changed the product. The funded competitors were organically invisible — zero mentions across the whole corpus, while ChatGPT drew 157. The real default competitor was a general-purpose chatbot, not a startup.

Asked to keep only one feature, 75% of parents kept discovery. Essay tooling, which the entire competitive set is racing to build, took 11 votes out of 69. That result is why next4's front door is a card sort.

Chancing rated highest and got picked last — the signature of a feature people like having and would never switch for. It became a retention consideration rather than the acquisition hook, and the percentage itself was deleted.

The part we'd want to be asked about: the research log keeps an explicit list of claims that failed verification and may not be reused — a widely-quoted market size, a consultant-adoption statistic, an average-spend figure. Every one of them would have made the pitch stronger. None survived checking.

Read the full research — methods, tables and limits →

What I built

I co-founded next4 and work across the build: the onboarding, the backend and the data layer. We started with the database rather than the interface, which is the decision everything else follows from.

1,400institutions in the knowledge base
145,000+facts, every one traced to a federal source
86preference cards across six categories

The knowledge base

We sourced and modeled the institution data: IPEDS, College Scorecard, the Common Data Set, Carnegie classifications, and BEA regional price parities. Each field carries provenance, so any number in the app can be traced back to the dataset and release it came from. A provenance ratchet detects changes on re-ingest rather than silently overwriting.

Getting the derived measures right was the slow part, and the failures were instructive. An early "academic vs. social" axis was built as a single scale running from academically focused to party school — which quietly encoded the assumption that a school can't be both. Splitting it into two independent indexes showed the two correlate at +0.42, not −1, with 122 schools in the top quintile of both. The original model wasn't just imprecise; it was describing a world that doesn't exist.

A later audit caught something sharper: one candidate academic measure correlated −0.55 with Pell share, meaning it was substantially tracking student wealth. We drove the card off a different sub-score rather than ship a proxy for family income as a measure of academic quality.

The most recent addition is program-level earnings — 69,948 bachelor-level rows from College Scorecard Field of Study — so "what do this school's graduates in this major actually earn" became answerable. Privacy-suppressed rows are loaded as suppressed rather than missing, so "we can't report this" can never be read by the app as "this program doesn't exist."

The match engine and the app

Matching is a deterministic computation over the knowledge base. Must-haves become hard filters; when filters over-constrain the pool, an auto-relax loop demotes the lowest-priority ones instead of returning an empty list. Results are instant because there is nothing to generate.

Explainability is a product guarantee, not a feature. Every result carries the student's own matched cards, grouped the way they sorted them, computed from the same evaluation that produced the score — so the explanation and the ranking can never disagree. A language model runs exactly once, after a student saves a school, to write the "why and next steps" prose. It never touches a number.

Expo / React Native Supabase · Postgres TypeScript monorepo Vercel Claude Code

The product

Shipped to the App Store on September 2, 2026:

next4 home screen
Home: the entry point into intake and the card sort.
Priority ranking screen with six categories
Priorities: rank the six categories before sorting. This weights the sort — but the student's actual card choices still come first, and the screen can be skipped.
Card sort screen, card 74 of 86
The sort: 86 cards into five buckets, from Not For Me to Must Have. Must Have is capped at 7, so the constraint forces a real ranking instead of a wish list.
Ranked match results with fit scores
Results: ranked schools with a fit score, reach/target/likely shape, net price, size, and program share — all real figures from the knowledge base.
Why this is a match, showing matched must-haves
"Why this is a match": the student's own must-haves and wants, ticked off by name. The explanation is generated from the same computation as the score.
School detail view
School detail: the full fact set for one institution, with the next concrete step for that student.

Two things we decided not to build

Both were features users asked for. Both were cut on purpose, and the reasoning matters more than the features did.

No admission-chance percentage. Chancing was simultaneously the most-wanted and the least-trusted feature in the category — our own research found students asking for it and disbelieving it in the same thread. We built the screen, looked at it, and took the number out. "12%" makes a student drop a school and "80%" makes them stop trying, and neither one is information. The app shows a range and the specific next step instead.

No AI essay writing. Feedback and coaching only, student authorship preserved and visibly disclosed. This is the objection every parent and counselor raises first, and it's a commitment rather than a positioning choice — which is why the marketing rules below forbid softening it even to "helps you write."

An audit that changed shipped data: preparing Apple's review questions, we found ten rows sourced from a publisher our exclusion policy didn't cover, feeding a score the app actually reads. Fixing it meant reverse-engineering the original scoring formula from the data — the build script hadn't survived — verifying it reproduced all 259 rated schools exactly, then re-deriving the affected schools. The migration asserts its own post-state inside the transaction and rolls back if any school crosses the card's threshold, so the change was provably local. It's the least glamorous work on this page and the piece we'd point at first.

The AI marketing organization

next4 has no marketing team. It has a system we designed that does what a marketing team does, run by Claude agents against a structured datastore, and it produces 14 posts a week across six channels without anyone writing them.

The design problem wasn't "generate content." Generating content is easy and mostly worthless. The problem was that this product markets to minors about a six-figure decision, on claims that must be factually defensible, in a category where one invented statistic destroys the entire argument. So the system is built as an organization: a strategy layer, an execution loop, and a compliance layer that can stop a post.

How the week runs

1

Monday, 7:00am — the research run

An agent scrapes the TikTok and Instagram accounts and hashtags listed in the workbook's seed list, summarizes what's moving in the category, appends the findings to a trends log that is never overwritten, and emails the whole week at a glance. The seed list is a spreadsheet tab, not hardcoded, so changing what gets watched is an edit rather than a code change.

2

Tuesday–Friday, 7:00am — the daily dispatch

One email per day containing only that day's posts: channel, account, format, the full script or copy, the asset needed, and the CTA. We post it. There's no dashboard to check and no backlog to triage.

3

The heads-up section

Each email flags what tomorrow needs filmed or designed today. This is the part that makes the system survive a busy week — the failure mode of any content calendar is arriving at a post with no asset for it.

4

The workbook is the datastore, not the interface

Weekly schedules, the engagement queue, curated campus photos, the seed list, the trends log, pillars, channels, rules, backlog, and a tracker that rolls up posted counts. We open it to change strategy, not to work. The operating instruction at the top of it is literally "you work from email, not from this file."

The strategy layer

Seven content pillars, each with a defined argument, its channels, example hooks, and its own guardrails. A few of them:

Pillar 1

Matched, not recruited

The free competitors are paid by colleges; next4 is paid by families. The wedge. Guardrail: stay categorical in short-form video — name a competitor only where the receipt can be linked in the same post.

Pillar 2

The receipts

Real sourced numbers on real schools: net price by income band, graduation rate, earnings by major. Proves the knowledge base exists. Guardrail: every figure from the KB or a named federal source, screenshotted before filming.

Pillar 3

Chancing, refused

We built the percentage, looked at it, and deleted it. Refusing to fake precision is a trust play competitors structurally can't copy. Guardrail: never attach a percentage to a next4 output — including in mockups.

Pillar 5

Versus ChatGPT

Nearly every student in the target already uses it for this. Guardrail: be genuinely fair about what ChatGPT is good at — the generous comparison is what makes the critical part land.

Six channels, each with its own job, cadence, voice, and rules — TikTok and Instagram to reach students, LinkedIn to reach the people who actually pay, X/Threads for founder voice, Facebook groups to meet parents where they already ask questions. The channel rules encode things that are only learnable by getting them wrong: LinkedIn suppresses posts with outbound links, so the link goes in the first comment. Instagram Reels must be exported natively rather than saved from TikTok, or the watermark gets the post suppressed. Facebook parent groups ban business pages, so those posts come from a personal profile — with a disclosure line, because a personal profile without one is astroturfing.

The compliance layer

Twelve non-negotiables, each written as a rule, a reason, and a question to check the post against before it goes out. This is the part that makes the system safe to run at speed:

Admission chancesRanges plus concrete next steps. Never a percentage — not in copy, not in an on-screen mockup.
Essay coachingFeedback only. Never soften to "helps you write." Demo text must be fabricated, never a real student's essay.
AI-usage detectionNever claim or imply it. The feature was cut for bias against non-native speakers and legal risk.
School factsEvery statistic from the knowledge base or a named federal source. Never invent, estimate, or round for the edit.
PII on minorsNo identifying information about minors, ever. No real student essays, even with permission.
Seasonal datesVerify Common App, ED/EA, FAFSA and CSS dates against the official source every time. A wrong deadline in a post about deadlines is the worst possible error.
Generated imageryAI images may be generic backgrounds only. Never a photo-real invented depiction of a named campus — that's the same failure as a fabricated statistic.
Photo licensingCampus photos come from Wikimedia Commons with the credit line kept on the rendered slide.
Account framingThe engagement account's rankings are opinion and must look like opinion — badge on the cover, outro slide, no scores.
Competitor namingCategorical in short-form video; named only where the sourcing is one click away in the same post. A 30-second video is a bad place to defend a named claim.
Facebook disclosureGroup posts go out from a founder's real personal profile, never the company page, and always carry the line disclosing that the author co-founded a college app. A personal profile without it is astroturfing.
Founder on cameraAt least one founder talking-head per week. A floor, not a target — it's the first thing that gets skipped in a busy week, so it's a rule.
The gate working, in practice. A scripted TikTok for the "versus ChatGPT" pillar opened with the line "It made up a number in the first thirty seconds." Before filming, the verification step re-ran the prompt and audited every figure ChatGPT had returned against College Scorecard. It hadn't hallucinated — four of five enrollment numbers matched, and the fifth was hedged with a tilde. The post was killed.

What replaced it was a better story that was also true: ChatGPT had returned five financial-aid figures pulled from five different school marketing pages, using five different definitions, stacked in one column as if comparable — and footnoted, unprompted, that they don't compare. At Duquesne it reported $38,766 in average aid, while federal data says the average student there still pays $37,730 a year. Both numbers are real. It handed the student the one that sounds good. The actual argument isn't that ChatGPT is dumb; it's that it can't compare anything.

The rewritten brief ships with its receipts attached: the exact prompt used, the audit table, a compliance checklist, every source URL with its retrieval date, and a note to re-verify the figure before posting because the federal dataset refreshes annually. That document is the actual deliverable of the system — not the video.

What it produces

Finished, postable assets — vertical video, carousels, long-form launch posts — generated from the week's briefs and rendered from HTML so they're reproducible and correctable rather than one-off exports.

The video is the essay-coaching pillar. The carousel below is the seasonal pillar: a seven-slide "8 weeks to Nov 1" deck, built to be useful whether or not anyone downloads the app, because that's what makes a stranger follow the account before the product means anything to them.

Carousel slide 1: 8 weeks to Nov 1
Carousel slide 2
Carousel slide 3
Carousel slide 4
Carousel slide 5
Carousel slide 6
Carousel slide 7

Seven-slide carousel, scroll to see the set →

How we actually build with agents

The same discipline runs on the engineering side. We build through Claude Code, but the leverage isn't in asking for code — it's in the structure around the asking.

  • Spec before plan, plan before code. Each phase got a written spec and a task plan before anything was implemented. The specs are artifacts in the repo, not chat history.
  • Subagent-driven execution with test-driven development. Tasks are dispatched to focused agents that write the test first. The engine and knowledge-base packages carry several hundred tests between them, and they're the reason a data migration can be shipped with confidence.
  • Adversarial review as a separate pass. A reviewing agent looks for what the building agent missed. It has caught real defects — an eviction bug in list-shaping, a scoring measure that was tracking wealth, a whitespace bug that passed unit tests because the test runner's transform preserved a space the production build dropped.
  • A decision log and session history. Every decision is written down with its reasoning and date. When a fact stops being true — and several have — the record gets corrected in place rather than quietly diverging from reality.

The honest version: agents make mistakes constantly, and most of them are confident. Two of the most important facts in this case study — the academic/social correlation and the wealth proxy — are things an earlier pass got wrong and a later one caught. The value isn't the generation. It's building the verification step that assumes the generation is wrong.

Where it stands

next4 shipped to the App Store on September 2, 2026, with a web version at app.yournext4.com. Launch week ran through the marketing system: founder-signed LinkedIn posts, the App Store link in the first comment, sequenced hours apart rather than fired simultaneously.

1,400institutions, five federal data sources
14posts per week across six channels, agent-produced
0school statistics written by a language model

The open problem we'd name first: of the 86 cards, 14 are currently read by nothing in the ranking, and 16 more score only where enrichment exists. Students can currently sort cards that don't move their results. That's a live product problem, it's written down as one, and closing it is the next piece of work — along with a licensing audit across the remaining publisher-derived measures.

What we'd want to talk about: the tradeoff between shipping fast and shipping something a 17-year-old can't catch being wrong. We chose the slower build. We think it was right, and we'd argue it either way.

← Back to all work Get in touch