Abstract: A system includes a processor configured to perform operations. The operations include receiving responses to at least first and second questions from a user device over a network; and using a machine-learning algorithm to determine a relationship between the first and second questions based on the received responses; assign to the first and second questions, a relationship value between 0 and 1 based on the determined relationship, wherein the relationship value represents a likelihood the response to the first question is associated with the response to the second question; designate the first or second question as a critical question when a determined relationship value is greater than 0.5; and determine a need of the user based on the response of the user to the critical question. Operations further include generating and providing to the use device a list of service providers based on the determined need of the user.