14 October 2015

Getting to know your coworkers made easier

By Bill Boebel

Pingboard captures the power of an HR database – complete with org charts, employee photos, contact info, hobbies, etc. – and packages it into an employee-facing application. Through the web and mobile application, employees – no matter how geographically diverse – can meet, get to know, and create a community with their fellow team members. Pingboard uses Elasticsearch to power search across their entire platform and seamlessly adapts as new fields (can you say birthdays, start date, or official bios?) and new data are created every second.

When your company is small, information is readily accessible. As your company grows, though, people become disconnected and simple things become hard, such as remembering names and faces, knowing who does what, and simply finding someone’s phone number. Pingboard was started when we noticed that many companies were building their own internal employee directories to solve this problem. When we dug in, we found that companies were essentially building the same thing because they couldn’t find an employee directory app that met their needs. These projects feel temporary from the start and typically fail because they lack an owner to push them forward and aren’t integrated with other employee systems, meaning the data is soon out of date.

Pingboard was born to solve this problem. Every company needs place for employees to find information about the people they work with -- from photos, org chart and contact info, to skills, interests, and favorite coffee shop.


People expect great search

Our first implementation of search in our web, iPhone, and Android apps was entirely client-side. It was fast and allowed you to search for coworkers by name or job title. Right away we heard from our customers that they wanted to search for additional employee attributes, including skill, team, and email address. Some companies found creative workarounds. One of our customers, Adecco, stored their business unit, division, region, and branch name in the nickname field so they would show up in search.

People expect everything in the tools they use to be searchable instantly from a single search box. Great search used to be a differentiator, but now it’s essential. We knew we had to quickly move the search index to the server using a platform like Solr or Elasticsearch, in order to give our customers what they expect.

Elasticsearch is a great fit for us because it's flexible, powerful, and fast. The Pingboard data model includes many different types of information, and we knew we needed a tool which would let us customize the way we search different fields. Finding a person by name requires a different indexing strategy than finding a group of people with the same skill, or looking up an email address. In addition, the data model can be extended by customers, and we wanted custom fields to be searchable as well. Dynamic mapping templates let us index these fields based on their data type without having to know ahead of time what fields exist. Elasticsearch also makes it easy for us to adjust how we rank the search results by using boost values.

Designing a great search experience

We talked with customers to determine the most important fields to make searchable and settled on: name, nickname, job title, skills, interests, team, email and phone number. We also threw in birthday month and employment start year to make it easy to answer questions like “Who’s birthday is coming up?” or “Who joined the company this year?”
Our key design decisions were:

  1. Search from anywhere. The primary benefit of Pingboard is quick access to information about your coworkers whenever you need it. Search should be available from every screen of the web and mobile apps.
  2. Real-time results. A core design principle at Pingboard is interactions should be familiar and first-rate. The best consumer apps save time by showing search results as you type.  We wanted that same experience for our customers.
  3. Match people and groups of people. Users often search by role or skill, rather than a specific person. To make this easy, our search results have two columns, one with individual matches and the other with links to collections of people who have something in common (team, title, skill, interest, etc).
  4. Teach people about the new search superpowers. We packed a lot of power into search, and wanted to tell people about it. But we knew an advanced search option would add complexity and be ignored. We decided to use the “no results found” screen as an opportunity to show people how the search box can be used. This gave us a ton of screen real estate to work with and is hidden until you can’t find what you are looking for.


Customers loved it, but still wanted more

Upgrading search was a big deal, so we announced it to all of our users via an in-app message. We got a lot of praise for the update, but we also started hearing things like:

“Love it! When will this be available in your Android app?”

“Can we also search for what project people are working on, which we store in a custom field?”

“It would be cool if our employees could search the fun employee fields we added, including college and favorite drink.”

Our work wasn’t done. We celebrated briefly and then got back to work.

Searching everything, from anywhere

In Pingboard, you can add custom fields to store any type of employee information using text fields, number fields, lists, tags, links to other people, and more. Today, everything is searchable. In fact, companies can even choose which fields to include in their search index.

Of course, searching the employee directory from the iPhone and Android employee directory app needs to be just as powerful. We built a simple wrapper to the Elasticsearch API and replaced the local client-side search in our mobile apps with the same rich search that we built for the web.


Elastic is a fan

That’s right, the team at Elastic is one of our customers. Prior to Pingboard, Elastic’s corporate directory was just a regular spreadsheet that was frequently outdated. As the company grew, it became more difficult to find employees and their specific functions within the organization. That’s where Pingboard came in — it was easy to implement, integrated directly with Google Apps, and employees were able to quickly search for all relevant employee information within a few clicks on the website or the mobile app. Overnight, Pingboard became an instant hit.

Not only did Pingboard help centralize employee information, but it provided Elastic with a platform that continued to foster company culture. Though some US-based employees may never have the opportunity to meet their APAC colleagues, Pingboard allowed employees to stay connected through user profiles where we could share our profile pictures, skill sets, interests and biographies.

Going further

It’s amazing to have all of this data about your company at your fingertips, but it doesn’t stop there. We also give companies access to their employee directory programmatically via the Pingboard API. The API includes the full power of search, which we could not have built without Elasticsearch. Our customers have come up with creative uses for this, including an app that matches employees with new hires to take them out to lunch, and a face/name matching game built into HipChat.

These ideas and the continuous feedback we get from our customers inspire us to transform the employee directory into an essential business tool that every company needs.

Bill.jpgBill Boebel is CEO of Pingboard, an employee directory app used by hundreds of growing companies. Unlike most business apps, Pingboard is a tool for everyone inside a company and therefore must be easy to use by both technical and non-technical people. Pingboard brings the power of an HR database into an app that is as simple and familiar as Google and Facebook. Search is a critical part of its usability.