GoDaddy has been moving away from one big model that does everything, toward small agents that hand work to each other. We wanted to try that on a problem we actually have. Planning the back half of a CS degree at Virginia Tech means holding four things in your head at once: what the checksheet still wants, which courses run in which term, who teaches them, and whether the result fits in a semester. Nobody does all four well in one pass. Neither does one model.
Artisan reads your transcript and draws what's left of your degree as a subway map. Five agents split the work. One pulls the CS checksheet and years of VT Timetable data, one rates instructors from RateMyProfessors, one lays out the semesters, one checks the draft for prerequisite breaks and term conflicts, and the last decides how it gets presented. Stations are courses, colored lines are prerequisite chains, and shaded bands are semesters. Drag a station to a different term and the plan re-checks itself before it lets you.
Next.js 16 and React 19 on the front. The map is SVG we draw ourselves rather than a charting library, because none of them route lines at 45 degrees the way Harry Beck's 1933 Underground diagram does. The agents run server-side against OpenAI and stream progress back over server-sent events, so the pipeline strip above the map fills in live while they work. Once the finished graph arrives, the map replays the build in the order the work actually happened. Prisma over SQLite holds the plans. Git for the rest.
The Verifier fights the Scheduler, which is the point, but it meant a plan could bounce three times before settling and we had to decide what the user sees during that.
Prerequisite lines came out as wide arcs crossing the middle of the map. The cause was one missing guard: when two courses sat close together horizontally, a length went negative and the corner curves inverted. Two lines of code, most of an evening to find.
Our color system inverts Tailwind's gray scale so the same class names work on a light Hokie Stone background. Eleven files never got converted, so they rendered backwards. Black text came out white on white, and input fields looked empty while you typed into them.
We also cannot draw the map while the first agent runs, because courses have no semester until the scheduler assigns one. We queue the steps instead and play them back at a readable pace.
The build animation. When the agents finish, the map draws itself in the order the work happened: stations first, then professor ratings, then the lines, one prerequisite chain at a time. The Verifier's catch is the best part. It rings the course in red, and if the pipeline really did revise the plan, the station slides across to its new semester while you watch. On our demo run it caught CS 4704 sitting in a fall slot that VT has not offered in four years.
Streaming agent progress is easy. Deciding what a person should see at each step is not. Our first version showed a spinner until the whole pipeline finished, which made five agents look exactly like one slow one. Almost all of the fix was timing and sequencing, and it changed how the entire project reads.
Section-level scheduling, so each station can show its real meeting time for next semester and flag the ones that collide. Preferences that reach the Scheduler instead of stopping at the form: class days, earliest start, a credit target per term. A sign-out button, which we did not build.
Built With
- databricks
- godaddy
Log in or sign up for Devpost to join the conversation.