We use both organizational hierarchy and audiences in our implementation. Putting those kinds of custom fields in the organizations file, and then assigning the organization through job assignments. We also do both dynamic and set audiences, with some dynamic audiences building from job assignments and the fields in that file to determine the members.