Create a function that simply scans the guild.
In this function is the following:
Send an API call off to the Albion Online guild members endpoint
Call database to grab all currently on record members
Filter between the two lists
The difference should be the people who have left the guild. Optionally validate this case by sending an API call off to the character endpoint to double check they actually left
If they've left, remove their record out of the guild table, removing their DC roles at same time
If they are a new member, add their record in the database as unregistered
Should someone registered before the scan is complete, validate they're actually in the guild via character endpoint and then enter them into the guild data database as a registered member. The next scan should pick up.