Creating the most flexible, intuitive filters imaginable.

TL;DR

Designed a prototype for Pulse Labs' advanced web-based "Audience" builder which meaningfully merges an AI assistant with a manual logic editor to intuitively and precisely filter a large pool of verified participants for naturalistic research studies. The prototype introduced user-first improvements like...

Constant input feedback

Flexible, precise user control

Visibility of system status

Highlight

Leadership wanted an AI-only tool, but I saw an opportunity to advocate for the user experience, finding a collaborative compromise that serves the business and the user. I prototyped an alternative showing how manual editing not only compliments the AI features, but makes the tool more precise and intuitive, leading to unanimous approval. Taking ownership of the UX and finding smart compromises is why I love product design.

Note

The exact, quantitative effect of our product remains confidential to the clients so my success is evidenced in their continual reliance on the features I designed that help drive million-dollar product decisions.

Role

UI design

Interactive prototyping

Developer handoff

Collaborators

CEO

Design Lead

Developers

Timeline

Q1 2025

Background

Context

Pulse Labs’ main SaaS product connects any product with real users to draw out naturalistic testing insights.

One of our main value propositions was offering a large pool of eager, verified participants to help our clients draw out valuable, user-centric product insights. While this pool of participants was high quality, it was also diverse, so we needed a way to filter them down for studies—even the best testing data is useless if the wrong participants are involved, so it was vital that our filters are precise and intuitive.

Problem

Note: This feature takes place some time in the initial creation phase of the study. Before this prototype, Pulse Labs employees would create studies on behalf of users because the study creation tools were too complicated.

The CEO had a vision: “Make filtering for participants as easy as writing an AI prompt”. That’s fine; when generative AI works well, it’s magical. But AI is not always reliable, especially on complex, grammatically-ambiguous prompts.

And the requirements for study participants can get pretty specific, like:

“I need 100 to 200 Americans or Canadians ages 18 to 60 who have a college degree, who own Tesla vehicles 2022 and newer, half male, half female”

We needed a way to make filtering participants as simple as possible without sacrificing precision or control; if the participants are wrong, the data is useless.

Approach

Championing the User

My team leader and I both agreed that having manual control over the filtering was mandatory to ensure filtering precision, so relying only on AI would not be best for the UX. After a quick mockup showing how AI tools would benefit from manual controls, the CEO agreed but preferred I initially lead users into an AI-assisted creation flow instead of manual creation. This way, everyone wins.

My team leader also added a few more requirements for the feature:

I planned out the feature and it made sense to separate the UI into two main sections: (1) a section to prompt the AI assistant and (2) a section to view/edit filters manually, all in one screen. Users can bounce around both sections (or stay in one) depending on their needs or preferences.

Only showing one section at a time could feel prohibitive and inflexible.

Filter Methodology

Considering all requirements, I felt strongly that a visual logic builder was ideal for these filters because its logical operators allowed for more precision and flexibility than typical dropdown filters. It would also help users see the status of their filters at all times.

I designed menus to reflect our demographic parameters, quantitative equalities/inequalities, and mathematical operators.

These dropdown components combine to create logical statements such as:

I designed the logical parameters to read like a casual, conversational sentence to help users learn how to program the logic, as opposed to a formal programming language.

Solution

Layout

The final layout is split into two distinct, vertical sections (vertical layout accommodates chat messages and stacked filters better than horizontally). The two sections are dependent and reflect changes made to each other in real time for optimal flexibility and efficiency.

Dynamic Design

The UI leads users with the primary option to enter a prompt describing the kind of participants they need with the AI Assistant. This makes building complex filtering very easy. Secondary options to build manually or upload a document (like a business brief) are also available.

Note: The "Build Manually" option disappears because manual edits become available elsewhere in the UI. The "Upload Document" button minimizes because it's no longer the user's main option for AI communication.

After a prompt is entered, the UI splits into two distinct sections separating the AI Assistant (left) from the Logic Builder (right).

These reciprocal interactions give the user visibility of the system status and continual feedback no matter how they choose to build their filter logic.

Edge cases

If the prompt cannot be described by our predetermined parameters (too abstract), the AI assistant will suggest an entry point to a screening survey.

Next steps...

Here's what I'd do differently if I had the opportunity, time, and resources:

See more work