Here's an idea; what if this data was cached by email? So instead of fetching each email every time, fetch it once and cache it.

Oooo, another idea: Get the list of all the emails you need by using a group by: http://sequelizejs.com/docs/latest/models#block-33-line-3

Once you have this array of emails, loop through them, and get all the user ids. Then fetch each project, and add the userid column.

Thoughts?