Using your custom profile properties as refiners lets you filter your staff by anything you’re tracking (school, skills, etc) and lets helps people connect. In my environment, we have both “want to learn” and “professional skills” using the same managed metadata term set, meaning people with a certain skill set can filter people by what they want to learn and connect. You can also check out who has similar personality types to you, who went to the same school, etc.
When dealing with refiners, it helps to limit the input options in the field
The first difficulty with this is that if you let people enter whatever they want in the custom profile fields, your refiner list will get huge and messy. Profile-wise, you limit them to preset options by linking your property to a managed metadata term set (closed, please).
Next, the search customization
Assuming you’ve already created your custom profile properties, give search a day or so to crawl. Make sure at least one profile has some data in the properties so that SharePoint has something to crawl. Then go into your search settings in the administration area and open up the “Manage Search Schema” link to view your managed/crawled search properties. When your profile properties were created, SharePoint automatically created a crawled property for them – this crawled property needs to be mapped to a refinable property to be used as a refiner in search.
In SharePoint Online, you cannot create refinable properties. As a workaround, Microsoft gives you 100 or so free refinable properties with generic names that you can use. You can find them by searching your managed properties for “refinablestring”.
Open up an empty refinablestring property and add a mapping. Search for the non-friendly name of your property you created previously (the one with no spaces). The crawled property that pops up will have the word “People:” in front of it (that indicates it came from the profile), but note that searching for the word “People” won’t bring up all of the People-properties… you need to actually know your property name.
Save your changes on the refinablestring property and wait. The mapping requires a full crawl to take effect, which can take a really long time in SharePoint Online (maybe up to a week?). If you’re on SharePoint Server, you can kick off a full crawl yourself.
How can you tell when it’s done? Set up your search and refiner web parts, linking them to your numbered refinablestring property. When the crawl has completed, the values in the profile field will display as refiners in your web part. See this post for instructions on how to use search web parts with custom refiners. (coming soon)