How Clearance Desk works
The model finds and explains. Deterministic code judges. Every rule is structured data with a source, so the agent can check your exact results instead of guessing from a web page.
Architecture
Browser
Your details
Next.js route
Agent loop: Claude via the Vercel AI SDK
Sanity Context MCP
clearance-rules
Local code, no AI
evaluate_eligibility
Sanity Context MCP
clearance-policy
Response
Verdict, explanation, policy notes, sources, trace
Why two Context endpoints
A Sanity Context endpoint serves one kind of source. If a dataset and a Knowledge Base share an endpoint, the dataset wins and the Knowledge Base is silently ignored. So there are two:
- clearance-rules serves the structured dataset. These are the exact rules, like “one sitting only” or “pick 1 of Chemistry or Biology”. GROQ finds them.
- clearance-policy serves a Knowledge Base built from JAMB and university documents. It explains why a rule matters: cut-off marks, Post-UTME screening, awaiting-result rules.
Their tools are prefixed rules_ and policy_, because both endpoints have tools with the same names.
Why not keyword search? A search can find a page that says “five credits at one sitting”. It can't tell you that your Physics credit from a second sitting doesn't count for UNILAG Medicine. That takes the rule as data and code that combines your sittings.
Data coverage
Live from the dataset, refreshed every minute.
- Universities
- 5
- Programmes
- 34
- Requirements
- 34
- Sessions
- 2026/2027
| University | Courses | Verified | Conflicting |
|---|---|---|---|
| LASULagos State University | 5 | 2 | 3 |
| OAUObafemi Awolowo University | 6 | 1 | 5 |
| UIUniversity of Ibadan | 7 | 3 | 4 |
| UNILAGUniversity of Lagos | 8 | 4 | 4 |
| UNNUniversity of Nigeria, Nsukka | 8 | 3 | 5 |
| All | 34 | 13 | 21 |
Verified means every field was checked against its cited sources. Conflicting means official sources disagree. The stricter rule is stored, and the result says what differs. No requirement is unverified. The data rests on 51 official sources and 6 secondary ones (news sites and blogs, used only for context). It was last checked on 2026-10-03.
Limitations
- Covers 5 universities and 34 programmes for the 2026/2027 session only. A course that isn't in the data gets a plain “no data” answer, never a guess.
- UTME entry only. Direct Entry, Post-UTME scores, aggregate scores and catchment quotas are not calculated. Meeting the minimum does not guarantee admission.
- When official sources disagree, the stricter rule is used, so the result is “At risk” even if your results fit. UI publishes no UTME minimum, so a UI course can never come out plain “Eligible”.
- Some conditions can't be checked from your results, like age, first choice and upload deadlines. These are listed under “Also check these yourself”. Cambridge O'Level and other exams are not modelled.
- The verdict comes from code, but the explanation is written by an AI model and can occasionally add advice that no source states. Trust the checks and the linked sources over the wording.
- Rate limits apply: about 10 checks per connection every 10 minutes.
Links
- Source code on GitHub (schema, data pipeline, evaluator, agent and build log)
- Public dataset query (every requirement, no login: Sanity project
cynv9mfk)