Copy this prompt into your AI (Claude, ChatGPT, or a coding agent). It reads the setup document and walks you through the LMS screens.
Your registration key comes from your dashboard. The agent will ask for it when it gets there.
Students open an assignment in your LMS and talk to the interviewer inside the page. The grade lands in the gradebook when the conversation ends. Any LMS that speaks LTI 1.3 works.
Step by step: Moodle or Canvas.
The tool's URLs, for an LMS that registers by hand: login https://dev-api.conversationalassessment.org/lti/login, launch and redirect https://dev-api.conversationalassessment.org/lti/launch, deep linking https://dev-api.conversationalassessment.org/lti/deep-link, keys https://dev-api.conversationalassessment.org/lti/jwks.
Copy this prompt into your AI (Claude, ChatGPT, or a coding agent). It reads the setup document and walks you through the LMS screens.
Your registration key comes from your dashboard. The agent will ask for it when it gets there.
Conversational Assessment is an LTI 1.3 tool with LTI Advantage grade passback (AGS), rosters (NRPS) and Deep Linking. A student opens an assignment in the LMS and talks to an AI interviewer inside the LMS page. A separate evaluator, which the interviewer cannot reach, grades the conversation against the instructor's rubric. The grade lands in the LMS gradebook when the conversation completes.
Any LMS that speaks LTI 1.3 works. Canvas and Moodle are tested. Everything below is done once per LMS by an administrator, except the last two sections, which are what instructors and students do.
| What | URL |
|---|---|
| OIDC login initiation | https://dev-api.conversationalassessment.org/lti/login |
| Redirect URI and target link URI | https://dev-api.conversationalassessment.org/lti/launch |
| Deep linking target (also a redirect URI) | https://dev-api.conversationalassessment.org/lti/deep-link |
| Public keys (JWKS) | https://dev-api.conversationalassessment.org/lti/jwks |
| Dynamic Registration | https://dev-api.conversationalassessment.org/lti/register?key=<key> |
| Canvas Developer Key JSON | https://dev-api.conversationalassessment.org/lti/canvas.json |
The <key> binds the registration to your account. Sign in at https://dev.conversationalassessment.org/dashboard/lti, choose
"Add an LMS", and copy the registration URL it shows. The key works once and expires after an
hour. Without a key the registration still completes, but it is pending until someone claims it:
the completion page shows a claim code like ABCDE-FGHJK, which you enter at https://dev.conversationalassessment.org/dashboard/lti.
Use this when Dynamic Registration is not available to you.
https://dev-api.conversationalassessment.org/lti/canvas.json.https://dev-api.conversationalassessment.org/lti/launchhttps://dev-api.conversationalassessment.org/lti/deep-linkhttps://canvas.instructure.com, the sso.canvaslms.com endpoints; beta, test and self-hosted
variants are listed), and paste the Client ID. The deployment id is learned on the first launch.Canvas sends names and emails only at privacy level public, which the registration asks for.
At a lower level the results page shows the LMS's opaque user id instead.
Register a tool with the URLs above, RS256 keys from the JWKS URL, and the scopes for AGS
(lineitem, lineitem.readonly, result.readonly, score) and NRPS
(contextmembership.readonly). Then at https://dev.conversationalassessment.org/dashboard/lti choose "Add an LMS" > "Manual" >
"Custom" and enter the platform's issuer, client id, authorization endpoint, token endpoint and
JWKS URL.
The conversation, inside the LMS page. Students never create an account. If the course is not connected yet, or the instructor's account cannot run conversations, they see a page saying so and who can fix it.
When a conversation completes, the grade of record posts to the LMS gradebook as
scoreGiven = score x points, with a comment carrying the grade label and feedback. An attempt
the two grading reads disagreed on is flagged for review. It still posts as a final grade unless
the link holds flagged attempts, in which case it posts as needing manual grading. Failed posts are
retried with backoff for about a day. The results page shows each grade's passback state and can
resend it.