An AI app that helps you meet friends.

*Since May 2017, I no longer work on this project. This documentation is for works I've created before then.

Elliot is the new virtual assistant app that helps you meet with friends, using your calendar and location to make suggestions. Let Elliot know which suggestions you like and it will automatically schedule events once both people confirm.

Elliot helps people save time. Grabbing lunch, getting coffee, or setting up a phone call is seamless — no pressure, no back-and-forth, no awkwardness.

( Skip the process / Go to Design )

Getting started

When I first joined the Elliot team, the Elliot scheduling algorithm had already been built by the engineering team. My task was to create user experience design and visual identity for Elliot.

Elliot is designed to save time. The target audience for Elliot are young professionals who are busy with their work, but still want to catch up with their friends. The common way for people to schedule meetings involves three steps:

However, such method does not apply to busy young professionals, who and whose friend both have very tight schedules. They need to check their own schedules, ask about their friends’ schedules, and figure out a time to meet…a more efficient way is needed to help them meet friends.

No back and forth

On the surface, Elliot simplifies the meeting scheduling process by eliminating the step for sending invitations. Users only need to click through Elliot’s suggestions to confirm or decline a potential meeting.

Less visible is, as each suggestion comes with time, Elliot also shows people their friends’ available times through suggestions, without privacy leakage. Therefore, two extremely busy people can find a time to meet without the back and forth of checking each other’s time.

The human touch

There are lots of schedule apps in the market, but they are either too serious or too sketchy to schedule meeting with friends.

Elliot creates an easy, causal way for people to meet with friends. Therefore, we needs a friendly and playful visual interface to distinguish Elliot from other more “serious” scheduling app.


User flow

To begin with, I talked with the engineering team to discuss what features to include. Since Elliot is a product that is largely based on assumptions, it was important for us to design and build the first version as soon as possible to do user-testing.

Based on our conversations and sketches, I first mapped out user flow diagrams to see how a user would navigate through the app.

The user flow diagram above shows how first time users and recurring users login to the app and go through Elliot's suggestions.

Once a meeting is scheduled, a push notification would show up and acknowledge people to check their scheduled meeting.

Design Ideation

I first created a wireframe and many low fidelity sketches to share and discuss with team.

Instead of drawing with pencil, I prefer to use sketch to do my first wireframe. The Sketch app helps me create clean, easy-to-understand designs that can be envisioned by the engineering team easily.

I tried different visuals, layouts and information hierarchy. My goal is to create a consistent visual design that aligns with the Elliot brand I created. Besides, due to the time constrain, the design I created also needs to be easy-to-build, and engineering teams helped me by showing the potential technical issues.

App Interface

Landing Pages

Users need to use Facebook to login to Elliot. To help first-time users understand how Elliot work, landing pages also provide instructions.

Suggestion feeds

After users open the app, they can see meetings suggested by Elliot. If users wants to meet someone, they click "yes" to the suggestion, and Elliot would ask users to enter their availabilities.

Scheduled Meetings

If users and their friend both want to meet and their availabilities match, Elliot schedules and sends a push notification to acknowledge users.

If users decide not to meet with someone, Elliot would ask why with options like “Meet someone else for Tuesday”, “Meet this person for another time this week”, and “Neither”. Answers would help Elliot make better recommendations in the future.


I designed and coded the responsive one page landing website. (with the help of bootstrap! )

Here are a few screenshots:

Check out the landing page here:

elliot.ai →

Visual Design

Since Elliot is an app people use to meet with friends, the visual design of it is intended to convey a light-hearted and easy-going feeling.

UI color system

Grid system



I designed icons for different types meeting. From left to right, they are dinner, lunch, coffee, and phone call.

To match the event type icons, other icons in Elliot also adopt a linear and clean feeling.


Elliot helps people by simplifying the scheduling process and saving their time. However, it is also important to make sure people are being informed and involved in the scheduling process.

After the release of the first version of Elliot, I asked people to try out the app and collected user feedbacks. From the feedbacks, I found out several problems of the current design:

Keep users informed

It’s important to keep users informed. Elliot 1.o does not provide users any response after users finishing one suggestions. The only way for user to receive response is to have a meeting scheduled. Elliot needs more ways to give user feedbacks to confirm their actions.

Avoid double-booking

Elliot 1.o shows people their calendars on the screen for enter available times. However, the calendar view is not very straightforward for super busy people, who have more than ten events scheduled in one day. Therefore, Elliot should notify people if there’s double-booking.

A more intuitive interface

The current suggestion cards ask people for yes or no, which is ambiguous and not intuitive. Naturally, people would consider the yes or no as answers to whether to meet this person. The most important information on the suggestion card is the people to meet, and the time is relatively secondary.

Therefore, Elliot needs another button on suggestion cards for “Find another time”.