integration · laravel · vue · 2026
Scholarship essays, moderated and graded before anyone reads them
A US scholarship contest operator
A platform running scholarship essay contests across several client sites. Every submission is moderated, graded against an eleven-criterion rubric, given its own SEO copy and published to a separate WordPress site automatically, with a composite score deciding which ones a person still needs to read.
The operation
A US company runs scholarship essay contests on behalf of client websites. Students submit an essay through a public form, and the entries worth reading are published so they can be shared and voted on.
Getting one entry from that form to a published page used to be five jobs done by hand: read it to check it was appropriate, judge how good it was, write its search copy, paste it into the client's WordPress site, and keep track of which entries had already been through all that. Every submission, every contest, every client site.
The platform now does all five. A person sees only the entries that need a judgment call.
The part that was actually hard
Two things, and neither of them is the model.
The chain has to fail cleanly. Every essay goes through five stages before anyone sees it: checked for anything inappropriate, judged against a rubric of eleven criteria, given its search copy, linked to related entries, and published. The score from that second stage is what decides whether an essay goes live on its own or waits for a person to read it, and that decision is where the time saving actually comes from. If any stage fails, the essay stops there rather than going out half finished, and both the student and the team are told. That is the difference between automation you can leave running and automation somebody has to sit and watch.
The riskiest second is publishing. The essay has to appear on the client's own website, which is a separate system this one does not control, and there is no way to change both at the same instant. If their site accepts it and this one fails a moment later, the essay is live with nothing here knowing about it: missing from the contest, uncounted in the voting, and findable only by somebody going to look. So both sides are checked before and after every publish, one essay can never be published twice, and anything that fails is put back the way it was and tried again rather than repaired by hand.
The votes are counted using somebody else's service. Winners are decided by how widely each essay gets shared on Facebook, gathered five hundred at a time through an outside provider that limits how often anyone may ask. Running out of allowance is normal rather than an emergency, so the system waits an hour and picks up where it left off. A contest that quietly lost a day of votes would have to be explained to the students who earned them.
Where it stands
Built across 2025 and 2026 and in production, with more than two thousand submissions processed.
Different business, same shape of problem?
Every system written up here started with somebody describing an operation that had outgrown the way it was being run. If that sounded familiar, tell me how yours works today.
Talk through your version