I would make some assumptions:
- Not using custom table
- All resumes are with a post type of resume
- You are comfortable with some sql
SELECT * FROM wp_posts wp WHERE wp.post_type="resume" AND wp.post_author NOT IN ( SELECT distinct wu.umeta_id FROM wp_usermeta wu WHERE wu.meta_key='exclude_from_search' AND wu.meta_value="the_company_id" );
The basic idea is to first get all the ids of users don’t want to show the resumes for a particular company. After that is straight on to select depending of you filtering process.
The reason why I din’t use a custom table is because of the power of the meta fields that can support multiple values(entries) for the same meta_key and user_id. This can help you keep track of all the user preferences depending on the hidden of resumes.