Skip to content
Case studies
Case studyJune 2025

Client project · Internal tool

University Program Matching

Help study-abroad advisors find suitable programs, understand each match and build a student shortlist.

The problem
Four hundred students were waiting for program recommendations. Keyword matching missed related subjects, while admission rules were buried in inconsistent spreadsheets.
What I built
I designed and built the complete matching platform, connecting the academic catalog, AI import pipeline and explainable recommendations in a workspace advisors could use during a student call.
3 min read
Role
Product Engineer
Build
About 14 weeks · 2025
Status
Delivered
Help study-abroad advisors find suitable programs, understand each match and build a student shortlist.
01 / 04
Slide 1 of 4
A prepared walkthrough of catalog maintenance, matching and student shortlists.

I owned the matching platform from the client brief through product design, data modeling, import logic, matching, the complete interface and production deployment.

Make Admission Conditions Usable

Advisors needed to weigh grades, admission conditions, fees and scholarships together. Those rules were buried in inconsistent spreadsheets. Finding a relevant course name did not tell them whether the student could apply, afford it or qualify for a scholarship.

A scholarship condition written in a spreadsheet cell is useful to someone reading it. To evaluate it against a student's grades, the system needs to know which program it applies to and what the condition requires.

I modeled universities, programs, scholarships, accommodations and requirements as related records. Grade thresholds became explicit program requirements. Staff can maintain them through forms and detail views, so changing an admission condition does not depend on another spreadsheet import.

Recover An Interrupted Import

Import runs could last hours. A failure near the end should not mean starting over and paying to transform the same data again.

The spreadsheets referenced one another. I made the importer follow those dependencies, creating universities before their programs and scholarships, and mapping the old IDs to the new records.

AI handles the inconsistent cells, with validation before the results enter the database. I added content-hash caching to reuse unchanged transformations and checkpoints to preserve progress. Temporary failures have bounded retries; failed rows remain available for investigation.

An interrupted run can therefore resume its unfinished work while retaining what has already been processed.

AI-assisted spreadsheet import
01 / 03
Slide 1 of 3
An accelerated replay of a resumable import, with progress and failure details visible.

The 20-second film shows the importer through an accelerated demonstration replay.

The terminal shows the current stage, throughput, failures and cost information, giving the operator a way to see where a run stands and what needs attention.

Explain Why A Program Fits

I separated finding relevant programs from evaluating their suitability. Semantic matching helps discover related fields of study that an exact keyword can miss. The scoring layer then compares those candidates with the student's profile.

Alongside MeiliSearch, the matching system uses 13 weighted criteria, including grades, field of study, scholarships, deadlines and available places. Each score has a visible breakdown, with critical conditions flagged alongside it. An advisor can examine a promising result and understand what is helping or hurting the match.

01 / 04
Slide 1 of 4
Semantic matching finds related fields beyond an exact course-name keyword.

The advisor makes the recommendation. Assigning a program saves its priority and application status on the student's record, carrying the decision into the agency's next steps.

Keep The Shortlist In The Agency's Workflow

I delivered Phoenix inside the agency's Laravel platform, using the customer and academic records staff already worked with. Its later student portal writes extracted grades into those same records.

Staff can maintain the catalog, recover an import and follow a recommendation through to assignment. When a program scores well, the advisor has the underlying conditions and score breakdown available before deciding to put it on a student's shortlist.

The case demonstrates the delivered workflow; it does not quantify a change in advising time or student outcomes.

Clearway is an anonymized client identity. The films and screenshots use synthetic records and prepared replay data; displayed totals, timings and costs describe the demonstration.

Related work: Student Applications & Document Collection shows how documents and grades reach those same student records.

  • Laravel
  • OpenAI
  • MeiliSearch
  • PHP
  • Livewire
  • Alpine.js
  • MySQL
  • Redis
Laravel
OpenAI
MeiliSearch
PHPLivewireAlpine.jsMySQLRedis
LivewireAlpine.jsMySQLRedisPHP

Building something similar?

Discuss a projectDiscuss a projectDiscuss a projectDiscuss a project
© 2026 Yassine Chettouchhello@yaschet.com
LinkedInGitHubX