Technical reference

ML Prep has no server API. It publishes static data and exposes a browser-local JavaScript bridge.

Static data

PathContents
/data/catalog.jsonCanonical scope with separate Screening and Practice collections
/data/search.jsonSearch data with collection, topic, skills, and difficulty
/item/:id.mdOne item in Markdown
/item/:id.jsonOne item in JSON

Browser bridge

window.mlPrepAgent provides:

await window.mlPrepAgent.ready;
const questions = await window.mlPrepAgent.searchItems({ collection: "screening", text: "gradient descent" });
const practice = await window.mlPrepAgent.searchItems({ collection: "practice", skills: ["gradient-update"] });

Local data

Attempts and custom sets are stored in origin-scoped IndexedDB.

Schemas: item, attempt, custom set.