Printed in the server's startup banner. Stored in this browser only — it is never sent anywhere except
this server.
Tell the maintainer something
This goes to the person who maintains this collector and is not shown anywhere in
the page — not to you after you send it, and not to anybody else using it.
Sent with your message, so a problem can be reproduced:
Nothing else — no address, no account, no tracking.
Run
Instructions
no file openunsaved
Prose asks the model; a program-rules block is
applied in code after every AI pass, so it holds even when the model ignores it.
A block with any error is never registered — half a rule is worse than none,
because half a rule still looks like it worked. Every save keeps the previous
version.
Duplicates
free — no AI used
Tick the clusters to merge and, inside
one, the row to keep — the others are folded into it. Two
steps, and only the second one removes anything. Ask the model settles the
to ask groups and records the answer on those rows — they become
certain, and no group is ever paid for twice.
Merge them then collapses every certain group into one row,
filling any cell the survivor was missing from the rows it absorbs.
Whatever the model answers is re-checked against the same arithmetic that ruled
pairs out beforehand — a group whose rows disagree on a duration, a credit
value, a fee or a declared variant such as (Honours) is split apart before
anything is merged. The survivor of a cluster is the row that says the most, and it
inherits every cell the others had and records what it absorbed.
Row by row
Every entry below is one ROW. The panel
above groups by LINK, which is why a link shared by three programs shows one
verdict there and three here — at most one of those rows owns it.
This panel only ever reads. It writes no flag and replaces no link: repairing is
what Find better ones in the Links panel does, and keeping the two apart
means this can be run over everything, as often as you like, without being a
decision. A page nobody could read is unreadable and never wrong
— a site that serves a challenge page to every automated client has told us
nothing about whether the link is right.
Corrections
A correction is stored beside the row, not
in it, so a re-crawl cannot erase it — and it appears immediately, without
re-extracting anything.
Your value always wins. When a later crawl extracts something different the
correction is listed as drifted rather than overwritten, because a
fee corrected last year should not quietly override one the university has since
changed. To correct one cell by hand, open the row with ⤢ and use
the pencil beside it — against the value you are looking at.
Fix selected rows is the only control here that costs anything: it hands
the ticked rows to the agent together with the rules the format check says they
break, and anything the page and the row do not support is dropped before it is
written.
Format rules
Fix the top rule and every row under it
goes with it. One rule broken three hundred times is one instruction to write in
Instructions, not three hundred rows to edit.
An empty cell is not a failure here — a blank has no shape, and
that is what Missing values asks. A cell that says N/A or
TBD is, because it reads as an answer in every spreadsheet downstream and
is not one. Nothing in this panel writes, fetches or spends.
Missing values
Every entry below is one ROW.
Show rows on a column filters the table to exactly the rows
whose cell is empty, and the chips above filter it by verdict.
Free, and nothing is written — the verdict is recomputed from the row each
time it is asked for, so it can never be stale or describe a row you have since
edited. Unusable means the row has no name, no level or no university and
cannot be identified at all; incomplete means some other required cell is
empty. A placeholder — “N/A”, “TBD”,
“unknown” — counts as missing, because in a spreadsheet it reads
as an answer and filters as an answer. An empty cell is usually the university's
doing rather than the crawler's: many sites never publish a tuition fee.
Fill selected is the one control here that
costs credits and the one that writes. It climbs four rungs in order — the
program's own page (read from what the crawl already stored, so a site that blocks
robots is not a dead end), then site: searches on the university's
domain, then wherever that page points, then the open web
— and only asks the next rung about what the one before could not answer.
The third rung is what makes partner-taught degrees fillable: when a university
writes “contact the ERC Institute for fee information” and links to
them, that link is the university telling you where the fee lives, so what it says
counts as official. Fees, deadlines and living costs are dropped unless the
university itself stated them, whichever rung found them, and every filled cell
records how it was found so the evidence filter stays meaningful.
Links
Every entry below is one LINK, however
many rows carry it. Show rows filters the table to exactly the
rows holding that link, and the Wrong / Suspect / Sound links filter in
the toolbar selects them by verdict across the whole sheet — the link cells
there are tinted to match.
A link that fails is flagged and kept — never blanked. A wrong link is a lead
and an empty cell is nothing, and Program URL has a standing never-empty
rule. Nothing is ever swapped in that was not itself visited and judged by the same
rules. Replacements are looked for on the source's own pages first, then through a
site-scoped web search — which for a row that came from an uploaded PDF is the
only place to look. Course brokers are refused wherever they appear. A page that is
not in English is read in translation before it is judged, so a Korean, Japanese or
Thai source is checked like any other rather than skipped.
Extracted Data
No university matches that.
Visible columns
Loading stored rows…
No data to display.
Enter a URL above to extract programs.
Extracting…
0s·please wait, the page is locked while this runs