I don't know the mechanics of making this happen either. Thinking about it, I would expect something like this:
Find the attribute files in /admin/ for comparison, and make versions that will work automatically on a trigger of new clients and applicants being added to the db.
Add an option name for each client, and add option values to it for each applicant associated with that client. The tricky part would be dynamically populating the product attributes, since each attribute for each product gets a unique id. I'm not sure it would be possible without mangling the attribute system. It might be possible to assign every client with their applicants as attributes to every product, and suppress retrieval/processing/display of all but the current user/client.
How many applicants would reasonably ever be associated with one client? I could imagine a "dummy" attribute set with numbered values, which would be associated with the applicants belonging to the current client. It might be possible to substitute text in the labels of the dummy attributes with the client's applicants.