← Series
Building a school-assignment assistant for my daughter
Building a private school-assignment assistant for one child: scraping a portal with no API, an LLM that learns to discard, cached summaries, a small agent, and knowing what it costs.
Part 16 minPart 26 minPart 36 minPart 45 minPart 56 minPart 66 min
Why I built a school-assignment app for my daughter
It is 9:40pm. My daughter is asleep. I am logged into her school's portal, clicking through twelve subject tabs one at a time, because somewhere in there is the answer to a single question:…
Scraping a school portal with no API: dropping the browser for raw HTTP
My first version used a real browser. A headless Chromium, driven by Playwright, logging in and clicking through the school portal exactly like a human would. It worked, it was about two hundred megabytes…
Teaching an LLM to ignore the recap and surface the homework
How a school assignment assistant uses a strict LLM prompt to ignore classroom recaps and surface only what parents need to act on.
Parent-friendly summaries without paying the LLM twice
The cheapest language model call is the one you do not make. That sounds like a cost cutting tip. It is actually the central design constraint of every parent facing summary in this app,…
Ask the app: a Q&A agent over a kid's school year
Every feature so far answered a question I could predict. What is due, what happened this week, what does this note mean. I knew the question at build time, so I could fetch exactly…
Tracking what the LLM costs in a one-person app
The thing that kills a hobby project that talks to a paid API is not a single expensive call. It is the slow leak you do not notice: a loop that runs more often…