Case studies

Enter the password to view this page.

Access granted

Esther Yang
Work About Resume Notes Contact

← Work

01

Trust Infrastructure for a Two-Sided Marketplace

Established trust infrastructure across a marketplace of 400K+ agents and 150K+ loan officers.

Two-Sided Marketplace Trust Systems Compliance

When a platform acts on your behalf, failure isn't a UX problem, it's liability. We were managing existing referral relationships and initiating cold outreach, both under strict RESPA constraints. I turned that compliance burden into a user-facing system: distinct experiences for agents and loan officers, with the system enforcing consistency at scale.

Context Existing relationships Cold outreach Outcomes Reflection
Product
B2B2C platform for real estate + lending
Scale
400K+ real estate agents · 150K+ loan officers
Outcome
81 NPS · 64% Email click-through rates · Company acquired
Role
Lead Product Designer
Scope
Core pairing, outreach, and discovery experiences across the platform's relationship network.
Team
2 Product Designers · Product Manager · Engineering

Confidentiality Notice: This case study has been anonymized. Visual details, content, and identifiers have been modified to protect confidential information while preserving the underlying design challenges and decisions.

01 — Context

Permission is the product

Real estate agents and loan officers need each other, and the platform was built around that relationship. It started as a marketing tool for creating listing flyers and neighborhood infographics, then gradually became a broader networking platform through co-branding, automation, and direct MLS integration.

That evolution changed what we were asking users to trust us with. Someone who originally signed up to make a flyer was now being asked to let the platform reach out to another professional on their behalf.

The experience also had to operate within U.S. consumer-protection requirements, including RESPA. Our business model and direct MLS partnerships were structured around those requirements, but the product still needed to make the relationship feel legitimate and understandable. The LO's job was essentially to give us permission to make the introduction.

That still required a lot of trust. Sending an email to a stranger in someone's voice, or formalizing a relationship they'd built themselves, goes beyond adopting another feature. You're asking them to hand over part of a professional interaction and trust the product to handle it well.

We approached that in two ways: warm relationships and cold ones.

Warm relationships came first because they were the foundation of the business. If an LO already knew an agent, we needed to make it easy to bring that relationship onto the platform without getting in the way. Existing relationships were also where the value of the network was most obvious.

Cold outreach was more complicated. There was no shared history and often no obvious reason for an agent to respond. A generic message could make the LO look unprofessional, while an unexpected email could make the agent question why they were being contacted in the first place.

That meant the product had to do more than facilitate an introduction. It had to give the LO enough context to make the outreach feel appropriate, while giving the agent enough information to understand what was happening and why.

Fig. 01 — Relationship network loop

  1. Discover

    Transaction data + Agent Insights surface relevant agents and LOs

  2. Initiate

    Pairing + outreach

  3. Connect

    Agent + LO relationship

  4. Distribute

    Co-branded marketing reaches new users

As lead designer, I worked across the discovery, pairing, and outreach experiences that enabled this loop.

Users didn't have to think about the rules. They just had to trust us with the relationship.

02 — Warm pairing

Designing for relationships that already existed

The warm pairing experience started as a manual process. LOs could search for agents they had worked with and send an invite, but that meant they had to remember who they had worked with in the first place. The system could facilitate the connection, but it wasn’t helping them identify the right people.

Once we had transaction data, we were able to change that. We surfaced suggested agents directly below the search field, using past transactions to identify people the LO had an existing relationship with. It was a relatively small change to the interface, but it shifted some of the work from the user to the product. Instead of relying entirely on memory, LOs had relevant relationships surfaced for them.

We carried that same idea into the outreach itself. The email language was intentionally familiar and specific to the existing relationship rather than sounding like a generic invitation to connect. LOs could also preview exactly what the agent would receive before sending it. That was particularly important because the platform wasn't communicating as the LO; it was communicating about them: "[Lenny Lender] has invited you to pair." The preview gave the LO a chance to see how their name and relationship would be represented before putting it in front of someone they knew.

The agent experience had a different problem. From a business perspective, the platform was built around networking, but an agent could only have one active LO pairing. That created a tension in the experience: we wanted agents to discover and connect with more LOs without implying they could maintain multiple active pairings.

We designed the experience around the value of pairing first, then surfaced suggested LOs based on transaction history. We also made the limitation explicit: agents could have one active pairing, but they could still invite other LOs. That gave the constraint some context instead of making the interaction feel like the product was simply preventing them from doing something.

Fig. 02 — Warm pairing · Invite agents

Invite agents to pair modal showing agents you've worked with, shared past transactions, copy invite link, and Invite 3 agents
Suggested agents from past transactions, select to invite, or copy a link — the product remembers the relationship so the LO doesn't have to.

Fig. 03 — Warm pairing · Agent invite flow

Agents dashboard and invite flow: suggested agents, search, and manual invite across desktop and mobile
From the Agents dashboard through suggested invites, search, and a manual invite path — one flow for relationships the LO already had.

LO side

Remember for them

Suggested agents from past transactions, familiar invite language, and a full preview before anything left the platform in their name.

Principle The platform speaks about the LO, never as them, so the preview had to prove we understood the difference.

Agent side

Frame the one-LO constraint as value

Lead with what pairing unlocks, order suggestions by transaction history, and keep the door open to invite others even when only one pairing is possible.

Constraint A business rule that could feel like a wall had to read as a considered recommendation.

03 — Cold outreach

Giving the outreach something to stand on

Cold outreach was difficult for a straightforward reason: there usually wasn't enough context. An LO reaching out to an agent they'd never met had little reason to expect a response, and the agent had little reason to respond.

We tackled that in two places: the information available to the LO and the mechanics of the outreach itself.

Agent Insights gave LOs a reason to reach out. It brought together a nationwide database of agents with transaction history, production volume, price range, loan types, and a map of past and current listings. Instead of approaching an agent with no context, an LO could understand their business before deciding whether to make contact. LOs could also follow agents who hadn't accepted an invitation yet, keeping up with their activity without having to initiate a relationship. When they were ready to reach out, they had something specific to talk about.

We gave LOs similar control over how that outreach happened. They could have the platform send the invitation on their behalf, with a full preview of the email and the option to send a copy to themselves first. Or they could copy a unique invite link and send it from their own inbox. Both paths led to the same outcome: once the agent clicked the link, the two accounts were automatically paired. That meant we could remove the friction from connecting without taking control of the relationship away from the LO.

We also introduced a smart email option to make the outreach easier to write. It started as a simple template and became more personalized as the underlying technology improved. The LO remained responsible for sending the message; AI helped with the drafting.

We were equally deliberate about the business model. LOs paid for the platform, while agents could use it for free. We made that clear during the invitation flow rather than leaving the agent to figure it out after receiving an unexpected message. In a relationship-driven product, that kind of transparency mattered.

Over time, we moved suggested agent pairings earlier in the experience, including them in LO onboarding and surfacing them again on the home dashboard. The goal was to make finding relevant agents an ongoing part of using the product rather than something the LO had to remember to do on their own.

Fig. 04 — Cold outreach loop

  1. Agent Insights
  2. →
  3. Invite
  4. →
  5. Smart Email
  6. →
  7. Pairing
  8. →
  9. Dashboard relationship activity
Context first, then outreach, then an ongoing relationship surface — not a one-shot invite.

Context

Agent Insights before first contact

Transaction history, production volume, price band, loan types, and listing maps so cold outreach had a credible reason to exist.

Principle Follow before invite: track activity without forcing an introduction.

Control

Send for them, or let them send

Platform-sent email with preview and self-send, or a unique invite link for the LO's own inbox. Pairing happened on click either way.

Disclosure Cost asymmetry stayed explicit: LOs pay, agents don't.

Momentum

Surface pairs at highest intent

Suggested agents in onboarding and a home dashboard that continuously nudged toward the relationships the platform was built to support.

Shift Templates matured into smarter drafting; the LO still owned the send.

04 — Outcomes

A trusted network became a growth engine

The platform was eventually acquired, with growth driven primarily by word of mouth.

Two things helped that growth compound. The first was reputation. An NPS of 81 suggested that users were comfortable trusting us with their professional relationships and giving the platform a role in their outreach. That confidence translated into referrals and brought more users into the network.

The second was distribution. We chose not to white-label the product, so our logo appeared on every piece of co-branded marketing material the platform generated. Every flyer sent to an agent was another opportunity for someone new to encounter the platform. As the network grew to 550,000 users, those existing relationships helped bring more people into it.

The same trust we had to earn to make the product work also helped the network function as a growth channel. That traction ultimately contributed to the acquisition.

Fig. 05

LO → Agent invite funnel

30-day cohort

Unique users

Click-through rate

59.5%

6000500040003000200010000
5,000
Invite Submitted
4,700
Email Sent
4,200
Email Opened
2,500
Email Clicked

Fig. 06

Cold Pairings

Matured cohort

Unique users

Click-through rate

64%

10008006004002000
840
Invite Submitted
820
Email Sent
750
Email Opened
480
Email Clicked

Cohorts given 30 days to mature before measurement.

Platform outcomes

  1. 550K

    Users across the network

  2. 81

    NPS

  3. 64%

    Email click-through rates

Acquisition driven by enterprise deals and word of mouth.

05 — What I'd do differently

Friction undoes trust faster than copy repairs it

The invite flow was our most fragile moment. Data gaps occasionally forced us to ask users for information mid-flow, which was friction at exactly the point we could least afford it. When research later surfaced that users weren't pairing, the fix that shipped was a paragraph of explanatory text. Watching it happen clarified something I already believed: patches at the UI layer don't fix structural problems, they just make them harder to see. The trust you build in the first screen can be undone by one moment of unnecessary friction two steps later.

In trying to eliminate uncertainty, we may have overcorrected in places. The option to send the invite email to yourself first, so you could click through the agent experience before anyone else did, came from the right instinct. But the mechanic was convoluted. A simpler preview would have done the same job with less cognitive overhead.

← Previous Less AI, Doing More Next → Turning “Is it working?” into “Who should I call?”

Ready to build something  Ready to build something lasting?

hello@estheryang.is

LinkedIn