Draft rubric-aligned feedback on new Canvas submissions
Every weekday evening, a first draft of criterion by criterion feedback is waiting in SpeedGrader for you to edit and approve.
Every weekday at 6pm, on a cron trigger, draft rubric-aligned feedback on new Canvas submissions so I only have to review and approve rather than write from scratch.
Start with Canvas List Courses to get my active courses, then use List Assignments on each course. Only work on assignments that have a rubric attached, and skip the rest.
For each of those assignments, call List Assignment Submissions with include of user, submission_comments, and rubric_assessment. Keep only the submissions that are submitted but not yet graded. Skip any submission that already has a comment from an instructor, since that means a human has already started on it. Cap the whole run at 40 submissions so each evening's batch stays reviewable.
Before drafting anything, pull the context for the assignment: Get a Single Assignment for the instructions and description, and Get a Single Rubric for the criteria, their descriptions, and their rating levels.
Then read the student's actual submission and write feedback organized by rubric criterion. For every criterion, name one concrete strength and one concrete improvement, and quote the student's own work where it helps them see exactly what I mean. Keep it specific to what they wrote. No generic praise and no advice that would apply to any essay.
Post the draft using Canvas Grade or Comment on a Submission with the comment text field only. Never set a grade and never fill in a rubric assessment. I remain the decision maker: the draft simply waits in SpeedGrader for me to edit, adjust, and decide the score myself.
Finish with a Slack Bot Send a Message to me telling me how many feedback drafts are waiting for my review, broken down by course and assignment.
Example output
What does this prompt do?
- Finds submissions that are in but not graded yet across your courses, and skips anything an instructor has already commented on
- Reads each submission against the assignment instructions and the rubric you already attached to it
- Writes feedback for every rubric criterion, naming one concrete strength and one concrete improvement and quoting the student's own work
- Posts it as a comment only, never a grade, then messages you in Slack with how many drafts are waiting for review
What do I need to use this?
- A Canvas account with teacher or TA access to the courses you want covered
- Assignments that already have a rubric attached in Canvas
- A Slack workspace where you want the end of day heads up
How can I customize it?
- Change the timing. Every weekday at 6pm is the default, but nightly or twice a week works just as well.
- Narrow the scope to specific courses or assignment types instead of everything you teach.
- Adjust the batch size or the feedback style, such as asking for more than one strength per criterion or a warmer tone for first year students.
FAQs
Does this grade my students?
Will students see the draft before I have reviewed it?
What if I already left a comment on a submission?
Does it work with the rubrics I already use?
How many submissions does it handle at once?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
When you merge a fix in GitHub, this agent checks the matching dead-letter queue, replays the failed messages, and reports back on the pull request and in Slack.
Stop writing feedback from a blank box.
Let a first draft be waiting on every ungraded submission, so your evening is review and approve instead of write from scratch.