I'm having a bit of trouble wrapping my mind around an acceptable way to set up sharing for the following scenario in a community that functions much like a job board:

We work with a number of companies looking to fill jobs from a pool of applicants. Contacts at those companies (recruiters) are set up with external accounts in the community. Applicants in the pool have contact records and also have community accounts. Recruiters and applicants are differentiated by using different contact record types.

Here are our goals for sharing/visibility:

  • Recruiters can read/write account and contact info within their own affiliated company.
  • Recruiters have read only access to ALL applicants.
  • Applicants can read/write only their own record.

We tried this and it doesn't seem to work:

  • User profiles for recruiters and applicants
  • Org-wide sharing for accounts/contacts set to private
  • Sharing set for recruiters to allow read/write on User.Account = Account.Id and r/w on Contact.Account = Account.Id

At this point we hit a dead end as we can't further open up read-only for all clients.

3 Answers 3


I think thats the dead end with your license type as Customer Community User License .

Recommend you to move to an upgraded license known as "Customer Community Plus" which will provide you roles and sharing via role hirerachy and also if you need more control use apex sharing .

You will loose sharing sets with same but you can easily write an apex to do this sharing based on your requirement .

or the workround of using a nice custom UI using without sharing class and accomplishing the same .


You assign a different Roles for Recruiters and Applicants and then add another Sharing rule to get Read access for all users with Recruiter's role.

You can also do the same with Public Groups by I find it more time consuming ot manage

  • 1
    Role based Sharing is not applicable for customer community license type Commented Aug 26, 2016 at 17:33
  • @MohithShrivastava good point, I wasn't aware...
    – o-lexi
    Commented Aug 26, 2016 at 17:37

I think the work around is create a custom object for applicants and sync it with Contact records of record type "Applicant" and set the OWD to Read and In the Applicant's profile, Give no access to this object so they will not see this at all.

You need to develop a trigger to sync Contact records with custom object Applicants.

I think this should work.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .