For learning and enablement teams
Your learners ask across the whole library. Your search answers one course at a time.
A question rarely lives inside one module. GRaaS reads the whole library at once and answers with the specific lessons behind it.
Why a library specifically
Four things a course search cannot do for you.
The answer is spread across the library — and outside it
A learner asks one question; the answer lives in a concept from course one, a procedure from course four, and often in something that is not a course at all — what they have actually completed, or what their organisation is licensed for. That is the exact shape a graph is for.
Courses repeat themselves differently
The same concept is taught three ways for three audiences. Entity resolution folds those into one node instead of three near-duplicates, so a search finds all three treatments.
Vocabulary is the curriculum
A learning organisation already has a taxonomy it cares about — competencies, objectives, prerequisites. A versioned ontology is where that taxonomy lives, and drift tells you when the content has moved past it.
Citations have to land on a lesson
An answer nobody can trace back to a specific module is worse than no answer in an education setting. Every citation resolves to a document you supplied, with your own identifier on it.
Across modules
One question, three lessons, one cited answer.
The question
Do I need to finish the security module before the deployment lab?
Two documents each hold half of it. Neither one contains the answer.
Learners should be comfortable configuring role-based access before attempting the lab exercises in section three.
Deployment Lab — Prerequisites
This module covers role-based access control, including how to scope a service credential to a single environment.
Security Fundamentals — Module 2
The fact the graph holds
Deployment Lab —prerequisite_for→ Role-based access control (confidence 0.91, 2 sources)
The answer
Yes — the deployment lab expects familiarity with role-based access control [1], which is taught in module two of Security Fundamentals [2]. Nothing else in the security course is listed as a prerequisite.
Neither course names the other. The prerequisite relationship exists because a concept appears on both sides of it — which is precisely the thing a per-course search cannot see.
Domain-aware extraction
The extractor is told what a course looks like.
Source type carries domain hints into the prompt, so a lesson is read for concepts and prerequisites rather than for accounts and opportunities.
Then you curate from there: fork the live vocabulary, fold the six things your content calls a competency into one term, deprecate the ones the extractor invented and nobody uses, and preview exactly what each change would drop before you apply it.
POST /v1/ingest
{
"sourceSlug": "course-library",
"externalId": "sec-fundamentals-m2",
"title": "Security Fundamentals — Module 2",
"textContent": "This module covers role-based..."
}
# the source's integration type is lms_content,
# so extraction is told to expect:
# concept · skill · tool · technology
# process · standardThe part nobody expects
The questions it cannot answer are a content roadmap.
Because refusal is a real outcome rather than a hallucination, the search history accumulates a list of questions your library genuinely does not cover — each one with the exact wording a learner used. That is a content roadmap that nobody had to run a survey to produce.
Corpus health adds the other half: how many concepts bridge two or more of your sources. A course library where nothing bridges is a set of silos with a search box on top, and that number tells you so.
FAQ
Frequently asked
Point it at one course and see.
The free tier holds ten thousand documents, which is more than enough to test a real library section.
- no card required
- first workspace is free
- one POST to ingest