WealthSimple's speech in the beginning of the hackthe6ix hackathon was where our idea kicked off. The speaker mentioned his love at his job and how he works his best every day because he loves it. We realized that if employees satisfaction working in the company is high,then so would their work. That's when we decided that we would build an app that would help identify employees satisfaction for businesses so they would be able to take action and improve their business overall


As a leader, it is important to understand the health of your employees. SentiMint is a web app that syncs with slack and generates scores based on their activity. The score is a general representation of the satisfaction of the employee in a given course of time. Employers and leaders can use this information to help understand their employees and take steps to improve.

WealthSimple Challenge (Taking care of yourself)

As a team, we believe that taking care of others is just as important as taking care of yourself. Generally, if those around you are content, then you yourself will also be content. In the workforce, many businesses neglect their employees. We believe that a higher satisfaction in the workplace results in a more productive team. As much as it is a job and a business, it is important that before we are still humans and that we work our best when we are at our best. We also added some team building features that incorporate the Myers-Briggs theory in order to place employees on teams that they are comfortable working with. This allows the employees to further "improve themselves" as they would have a more supportive environment that would help them excel.

How it Works

Using the indico API, the web app analyzes pieces of text and speech to deduce a score and personality of an employee / potential employee. Scores range from 0 (unhappy) to 100(super happy). Without action, scores should hover around ~50. A good workplace should see scores above 60 and bad workplaces below 40.

Personalities include: - Architect - Logician - Commander - Debater - Advocate - Mediator - Protagonist - Campaigner - Logistician - Defender - Executive - Consul - Virtuoso - Adventurer - Entrepreneur - Entertainer

Personalities can be grouped into sections and can be further read here

What resources are needed for the implementation of the product?

Previous chat logs (usually a week for accurate scores)

Ways in which it can be implemented

Workforce - businesses can use this tool to analyze their employee's satisfaction in the workplace. Using the data, businesses can understand their employees further and take steps to improve their overall satisfaction. Using the personas, businesses can predict the personality and work ethic of any employee, assigning them into groups that work in conjunction.

Challenges we ran into

The main difficulties were in the frontend. We had to get charts to display and update themselves on the data provided to them. The backend mostly went smoothly with both Indico and the Slack API cooperative.

How we use Indico

The core feature of our app revolves around getting Indico to analyze Slack messages. First we take all a user's messages and organize them by day since the starting day. Then we send in the text data in batch requests to the API to retrieve the emotions. By using a custom heuristics algorithm, we determine a score using different weightings for different emotions. For example, anger is a heavily negative emotion and is assigned a higher negative weight than fear, which is less negative than anger. Vice versa, joy is a heavily positive emotion and assigned a positive weighting. We assign a score from 0 to 100 based on the weightings for each day the user chats. This is then plotted on a graph. All the daily scores are then averaged and placed on the user's card. An average of 50 is neutral and most users hang between the 40-60 range on an average day. In addition to this, we also do a Myers-Briggs personas scan for each user, and return the persona with the highest correlation. This is especially useful for determining team placement. For example, you should never move a leader into a team with other leaders (INTJ and similar types). Why? Because they will all want to take charge and they will do nothing other than argue. If you knew this before hand wouldn't it be so much easier to avoid team conflicts?

This same process is done for different Slack channels (we treat each slack channel as if it was a user and assign scores to it using the above process). For example, if the marketing team channel is currently in a state of distress and conflict, their team score will take a hit and fall as the algorithm will take into account the huge amount of anger in the messages.

Another cool feature would be the ability to scan a PDF document and determining the applicant's persona. For example, an applicant comes in with a cover letter. Simply put it in our scanner module and it will return the most dominant persona.

But perhaps the most innovative feature would be the ability to collect data on an entire interview. By using Google's Voice API we could translate speech to text and run this text through Indico's API.

For visuals, please refer to the image gallery.

The bulk of the Indico API is focused on analyzing text for emotions and personas. Every time new messages flood the team channels, the user and channel sentiment scores get updated.

This dynamic approach highlights our app's commitment to looking at employee satisfaction from a grand perspective - never neglecting even a single data point.

What's next

We plan to expand this into a service for companies. We believe it is important for companies to understand their employees and their satisfaction in the company. The higher the satisfaction, the higher the quality of work!

Built With

Share this project: