Increasing search speeds by greater than 100% 🚀

The San Francisco Service Guide

The San Francisco (SF) Service Guide (link) is an online directory of human services in San Francisco. The goal is to help anyone with access to a smartphone, tablet, or computer find the services they need. The guide's focus is on homelessness and housing services, but also covers a variety of other services, from education and legal aid to senior services and re-entry programs.The SF Service Guide is supported by a grant from the SF Mayor's Office of Housing and Community Development.

A slow and confusing search experience

There are hundreds of human services organizations in San Francisco and searching was one of the most popular ways for users to try and find them with the SF Service Guide app.

Unfortunately, the existing search functionality that was created for the SF Service Guide was slow, sometimes taking >20 seconds to return search results. And when it did (finally) return results, there was no way to filter the results by important factors for our users.

Halving the Search Time for Services

Uncovering the challenges

First, I observed our users using the current search experience and then I interviewed them to better understand the problems they were facing. With this research in hand, I noticed the following challenges with the current search:

  • Speed: It currently took >10 seconds for most searches and finding the service they needed could take >5 minutes.
  • Accuracy: Current search results weren't always accurate.
  • Incomplete: Some services weren't showing because the current search wasn't able to search across a services entire listing.
  • Relevance: Most of the time, users indicated they needed the service at that moment in time they were searching for it, and the current search didn't allow them to. see what services were open now and within walking distance. This meant they had to manually open each result and try to determine how close it was to them.

It was clear that any solution for the new search functionality, needed to address these challenges.

The goals I created for the new search were:

  • Return new search results in less than 50 milliseconds
  • Users are able to find the service they need within 1-2 minutes

Building and iterating on the solution

In order to address the challenges with the existing search functionality, I built a solution that uses technology similar to Google Search. This means that search results could be returned blazingly fast and with much more accuracy and relevance. Users would be able to find the services they need much faster with this new solution and technology.

Once a MVP (minimum viable product) was ready for users to test, I shadowed users trying out the new search to validate if the new search was meeting their needs and to receive their feedback. One piece of feedback I consistently got was that they wanted the map of the search results to be shown first so they could see what services were near by. In the current version, they had to click a button on the mobile view of the app in order to see the map.

Taking this feedback into consideration, I built a new version of the app and added the map to the start and made it interactive so users can click on the services being shown and get more information on them.

SF Service Guide Search example
The new SF Service Guide search experience

End Result

Now, with the new search complete, it was time to see how the solution held up to the goal set at the beginning of the project:

  • Search speed: The new search is able to return results within 1-20 milliseconds
  • Finding the right service: time to find the right service averages around 2-3 minutes. Time to find the right service increases if there are a large number of search results and depending on how familiar the user was with the search functionality. While this is outside of the 1-2 minute target, it was still a huge improvement over the >5 minutes it took users with the old search.

Currently, this new search helps over 6,000 users per month locate the human services they need in San Francisco.

Technologies Used

Powered by React, Redux, Ruby on Rails, PostgresSQL, Google Cloud (Kubernetes), Docker, Search by Algolia

Automated front-end testing via Test Cafe

Front-end Error logging via Sentry.io App

Up-time monitoring and error escalation via Uptrends and Pagerduty

Are you a nonprofit organization who needs technology help? Click here to book a free consultation call.