With the shift to remote working practices in Microsoft Teams for many organizations, being visible has become more important (but more challenging) for employees. Everyone needs to make their value known to colleagues, employers, and connections if they are to progress in their careers and make an impact for their organization, but this can be challenging in the current climate. We have spent 10-person years building the largest skills framework and dataset that the word has ever seen, and now we want to provide all this data and app free of charge. Put simply, we want to democratize skills for everyone!

What it does

SkilledHuman provides free access to over 12,000 authoritative role definitions and 65,000 canonical skill definitions. Furthermore, skills are mapped to roles, and vice versa. This enables users to find and add approved skill definitions to their profiles, and to set goals for gaining yet more skills. Users can then find skilled humans in their organizations who have specific skills. Additionally, employees can post opportunities that require specific skills and others can find them based on whether they have a good skill match. These opportunities can be formal jobs, or they might be shorter-term projects, volunteering initiatives, or even committee/team memberships.

How we built it

We built SkilledHuman on Microsoft Azure, with a full Web API that enables a variety of clients. The app itself is an Azure App Service, developed primarily in Visual C# --- with JavaScript and jQuery providing the finishing touches to add to the app's usability.

Challenges we ran into

The biggest challenge was how to provide a huge dataset to users, while keeping response times reasonable. As a bit of background, the base data set is itself large, and then when each user in each organization sets goals or claims skills the data set continues to grow. We had decided long ago to use Azure Table Storage for all data (based on low cost) so the main challenge was how to partition the data to ensure performance does not degrade with hundreds of thousands of users worldwide. The next biggest challenge was to ensure the data for users in an organization is only visible to other users in the same Office 365/Teams tenant.

Accomplishments that we are proud of

To overcome the challenges above, we invented our own type of indexing for Azure Table data. This means that all search queries are always returned in full in just a few milliseconds --- even though the queries search through 12,000 job titles, 12,000 job descriptions, 65,000 skill labels, 65,000 skill descriptions, and potentially millions of mappings between roles, skills, and users.

What we learned

Partitioning data is critical when it gets very large. We also learned that complex relationships in Azure Tables can be implemented, and that they can be made very efficient indeed!

What's next for SkilledHuman?

We will be releasing SkiiledHuman as a FREE app in the Microsoft Teams app store. We then plan to open it up even further to LinkedIn users where they will be able to share their skills with their professional network.

Share this project: