Using the GFAPI to search (count) and get entries would be a good part of your solution.
Creating a custom merge tag that you put in the users ID as a parameter to and it generates the checkbox/assessments.
For the users to know which assessments they need/have yet to complete, there are two parts of Gravity Flow which may be of interest to you.
The inbox page (via Block) provides a way to list all entries that are assigned to an email, user or role to complete. So the person could login to website.com/assessments/ and see which ones they have remaining.
The checklists extension lets you define a series of forms that need to be completed (sequential / any order) and gives the UI elements via a block to let the user see where they are at towards total completion.