Stage 7 — Unified Filter Builder

v1 = one condition tree replacing today's two surfaces (flat left-rail + separate advanced builder). Three UX directions for the common-case vs. advanced trade-off. Same sample filter in each so you can compare feel.

Sample filter in every mockup:  Agents licensed in CA or TX, License category = Life, and (email contains "agency" OR has a phone).  → 12,431 agents.
A

Tree + quick-add chips

Recommended — one model, but common filters are one click
nexus.rodeoleads.com/agents
Quick add State License category Status Source + more
Match ALLof the following
State (licensed)is one ofCA, TX
License categoryisLife
Match ANY
Emailcontainsagency
NOTPhoneis empty
+ condition+ group
Results
NameStateLicenseEmail
Maria AlvarezCALifem.alvarez@agency…
James BellTXLifejbell@…
Aisha KhanCALifeaisha@agency…
Pros
  • 80% case stays one click
  • Single source of truth (the tree)
  • No “two surfaces” confusion
Cons
  • Slightly busier panel (chips + tree)
  • Quick-add ↔ tree mapping must feel obvious
B

Pure condition tree

— everything is a condition; field search does the heavy lifting
nexus.rodeoleads.com/agents
Match ALLof the following
State (licensed)is one ofCA, TX
License categoryisLife
Match ANY
Emailcontainsagency
NOTPhoneis empty
+ add condition
License
License category
License type
License year
License #n/a · 628k
Provenance
NPNn/a · 528k
Field search ↑

Every filter — including State & License — is added through the searchable field picker (~65 fields). Greyed fields show n/a · count when a source can’t supply them (Stage 4 availability).

Pros
  • One mental model, simplest to learn
  • Field search scales to 65 fields cleanly
  • Smallest UI to build
Cons
  • “State = CA” is 3 clicks vs. 1 today
  • Power users filtering all day feel the friction
C

Simple / Advanced toggle

— curated panel by default, full tree on demand (same model underneath)
nexus.rodeoleads.com/agents
SimpleAdvanced
CA ✕TX ✕+ add
Life
contains agency
ActiveArchived
Two views, one filter

“Simple” mirrors today’s left-rail (fast, curated). “Advanced” reveals the condition tree (groups, ANY/ALL, NOT). The toggle is a mild form of “two surfaces”.

Pros
  • Familiar simple default
  • Advanced complexity hidden until needed
Cons
  • Re-introduces a soft “two surfaces” split
  • Two layouts to build & keep in sync

Throwaway brainstorm mockups · wireframe fidelity (not final visual design) · source-aware annotations and the live count/preview reflect already-shipped Stage 3/4 foundations. Tell me A, B, or C (and any tweaks) in the terminal.