← All posts

Practical guide · 9 min read

Expired listings skip tracing: how to find the right phone for every expired

For listing agents who already know expireds are gold — and are tired of the phone on the MLS being the wrong one.

Expireds are still the highest-intent prospect list a listing agent can work. The seller already wanted to sell, the agent didn't get it done, the listing fell off, and now they're sitting on a property they need to move with no representation. The problem isn't finding expireds — every MLS spits them out at 6am the day after they expire. The problem is reaching them.

The number on the MLS is the listing agent's number 90% of the time. The number on the public records is the seller's number from a refi 11 years ago. Both are wrong. This is what skip tracing solves for expireds, and how to do it right.

The three numbers on every expired (and which one to call)

Most expireds come with three potential phone numbers floating around. Each fails for different reasons:

  1. The MLS listing-agent number. That's the previous agent, not the seller. Calling it gets you a competitor on the line, not a prospect. Skip.
  2. The number on county tax records. Often stale by 5-15 years. Sellers don't update tax-roll contact info when they switch carriers or move once. Sometimes right, often not.
  3. The current skip-traced mobile. Pulled from carrier records + credit headers + identity data fresh in the last 30 days. This is the one that actually rings.

Skip tracing is the only way to reliably get #3. Everything else is hoping.

The expired skip tracing workflow that works

Here's the sequence we run on Jules's expired lists every Tuesday morning:

Step 1: Pull the raw expired list

Matrix MLS or your local MLS export. Filter for status = Expired in the last 7-14 days, in your farm geography. Export to CSV. Most listing agents already do this. You'll get fields like seller name, property address, list price, days on market, expiration date — but the contact data column will be the listing agent's.

Step 2: Strip listing-agent contact fields

Before skip tracing, drop the listing-agent phone/email columns. Otherwise you'll be sending a polluted record to the skip-trace API and could end up "matching" the listing agent instead of the seller. Keep only: seller name, property address (street + city + state + ZIP).

Step 3: Skip trace the seller name + property address

Upload to whatever skip tracing tool you use. Match on owner name + property address (not the listing-agent fields). Good tools return: current mobile phones (rank-ordered by recency), DNC status per phone, TCPA-litigator flags, email, mailing address if different from property address.

Full skip tracing primer here if you're new to the mechanics.

Step 4: Unmask LLC-owned expireds

In luxury and absentee markets, 40-60% of expireds will be LLC, Trust, or Corp owned. The MLS shows "MIKEANGY LLC" — useless to dial. The skip-trace tool needs to chain through the registered agent + managing member filings to surface the actual human. Some tools automate this (LeadCove does, ~70-85% yield); most require you to manually look up the entity in the state Sunbiz / Secretary of State portal and re-trace.

More on LLC unmask method here.

Step 5: Filter out DNC + TCPA litigators before dialing

This is the step most agents skip and most regret. The federal Do Not Call registry penalty is $1,500 per violation. A TCPA litigator (a person who has filed multiple lawsuits against businesses for unsolicited calls) can cost you $500-$1,500 per dial in statutory damages — they're calling lawyers, not real estate agents.

Any skip tracing output worth using flags these. Look at the flag, then decide:

TCPA + DNC primer for agents here.

Step 6: Rank the list before you start dialing

Not every expired is equal. Score the list by: days-on-market (long DOM = motivated seller, fresh expired = still emotional), price reduction history (multiple reductions = seller knows they overpriced), expiration recency (call within 72 hours of expiration — they're still in the "I need to sell" mode). Then dial top-down.

Step 7: Use a script that acknowledges you're calling an expired

Sellers of expireds get called 8-15 times in the first week. Pretending you don't know they just expired is insulting. Acknowledge it, name a specific reason you're calling, ask one question, listen.

"Hi [name], this is [agent] with [brokerage]. I saw your home at [address] came off the market on [date]. I'm guessing you've had a few calls today — I'll be quick. I work [neighborhood] specifically and pulled comps on your home before calling. Mind if I share one quick observation about pricing?"

Then shut up and listen. The conversation either opens or doesn't — but you've earned the next 30 seconds by showing you did homework.

Common expired skip tracing mistakes

1. Trusting the MLS phone field

It's the listing agent. Always. Don't dial it. Skip-trace fresh.

2. Re-skip-tracing the same expired weekly

Expireds don't move that fast. A skip-trace from 30 days ago is still 95% accurate. Re-tracing every Tuesday burns credits for no signal. Run once on intake, re-run if a number reports as wrong.

3. Calling without filtering DNC

Cheapest mistake to fix, biggest legal exposure. Always filter before the first dial.

4. Ignoring LLC expireds

That's where the luxury sellers live. If you skip them, you're working the bottom half of your market. Unmask the LLC and call the human.

5. Paying per attempt instead of per hit

A bad expired list (lots of old data, missing names) burns money on every attempt. Use a tool that doesn't bill on misses, or your skip-trace cost balloons relative to your actual dial count. More on credit math here.

How many expireds can you actually work?

A solo listing agent dialing 2 hours a day on expireds can realistically reach 8-15 sellers per session — meaning live conversations, not voicemails. To get there you need a list of about 80-150 dialable expired records to start the week (assuming 60-70% pickup rate after DNC/TCPA filtering and assuming half go to voicemail). A weekly MLS expired pull in a mid-sized metro is usually 200-400 raw records, which means after dedup + DNC filter + LLC unmask + skip trace you'll have a working list big enough.

You don't need 1,000 expireds. You need a clean 100 with the right phones.

Tools we use

Full transparency: we built LeadCove because the existing options didn't do this expired skip tracing workflow well end-to-end. Most tools handle one piece — pull the list, or skip trace, or DNC filter, or LLC unmask, or CRM — but agents end up running 3-4 tools to assemble the final dial list. LeadCove does the full chain (skip trace → LLC unmask → DNC + TCPA flag → CRM with callbacks → FUB sync) in one place, charging only on successful hits.

That said: the workflow above works on any stack. If you've got tools you like, use them. The principles are: never dial the MLS phone field, skip-trace fresh, unmask LLCs, filter DNC, rank before dialing, acknowledge the expired status in your script.

Expireds are still the best prospect list there is. They're only frustrating when the data is wrong. Fix the data and the rest is just dials.

Skip-trace your next expired list on a 7-day trial.

$0 today. 10 credits to test on real rows. LLC unmask + DNC + TCPA flags included.

Start your 7-day trial →