---
title: "Cold email for off-market deal sourcing: reach owners before they list | FirstSales"
description: "How investors and acquirers use cold email to find off-market owners in a specific asset class and geography without sounding like a mass mailer."
canonical: "https://firstsales.io/tutorial/playbook-realestate-investor-offmarket/"
---

[Home](/)/ [Tutorials](/tutorial/)

# Cold email for off-market deal sourcing: reach owners before they list

How investors and acquirers use cold email to find off-market owners in a specific asset class and geography without sounding like a mass mailer.

Tutorials

Playbooks

min read

20 min

steps

8 · Intermediate

8 steps

[01Pick one asset class and one geography](#step-1)[02Source owners, not just properties](#step-2)[03Bring property specifics into the CSV, then let research add the rest](#step-3)[04Set the offer as a conversation, not a purchase](#step-4)[05Write in your own voice, and keep it short](#step-5)[06Build a light, patient sequence](#step-6)[07Handle replies personally when they matter most](#step-7)[08Expect a slower, wider reply band and adjust accordingly](#step-8)

[All tutorials](/tutorial/)

1. ## 01 Pick one asset class and one geography  
Off-market sourcing fails most often because the outreach tries to cover too much ground. An owner of a 40-unit multifamily building and an owner of a self-storage facility have almost nothing in common as buyers of your pitch, even if both fit inside a broad real estate investor thesis.  
Choose a single asset class, multifamily, industrial, retail strip, or self-storage, and a geography small enough that you could plausibly know the submarket by name. Add a size band too, doors or square footage, that matches your actual buy box. This becomes the description you give AI Leads, and it's also the description that makes your email sound like it came from someone who actually buys this type of property, not a form letter.  
Write your actual buy box criteria down alongside the asset class, unit count range, year built, or condition if that matters to your investment thesis. When you narrow that far, the list AI Leads returns is small enough that you can review every contact before launch, which matters more for off-market sourcing than for almost any other cold email use case.
2. ## 02 Source owners, not just properties  
Describe the target to AI Leads as owners of the asset class and geography you picked. Because many owners hold property through an LLC, the enrichment step matters here, you want the actual person behind the entity, not a generic company inbox. Import a CSV of owners pulled from county records or an LLC-ownership database if you already maintain one, that data source is often more precise than a generated list for this use case.  
The quality funnel filters weak matches before they cost credits, which matters more here than in most industries, because a bad match in off-market sourcing wastes a contact and can also read as an unsolicited, slightly unsettling email to someone who owns the property personally.  
![Source owners, not just properties](/tutorials/app/contacts.webp)
3. ## 03 Bring property specifics into the CSV, then let research add the rest  
Source the property specifics yourself, when it was acquired, how long it's been held, any recent permits or nearby listings, from county records or a listing data source, the same place you likely already pull the owner list from in step 2\. Add those details as custom fields on each contact before you import, since FirstSales doesn't pull property history or photos on its own, it works from what you bring in.  
Contact research still runs automatically before drafting, and the transparency view shows exactly what it found and used in the draft, mostly company and role context that rounds out who you're emailing. In Teach or your campaign instructions, tell the AI to draw on the hold length and other specifics you added, so the draft references something real about the property instead of only what research surfaces about the owner.  
Owners who've held a property for 10+ years respond differently than someone who bought two years ago. A long hold often signals openness to a conversation about liquidity, a recent purchase usually doesn't. If county or listing data consistently comes back thin for this asset class, that's a sign to swap in a better source rather than let the AI write around missing information.  
Deferred maintenance is another signal worth sourcing. A property that shows visible wear in photos you've reviewed, or an owner who hasn't refinanced in years despite favorable rate windows, often points to an owner who is tired of active management. That's a very different opener than one built around a recent renovation, where the owner has likely just reinvested and is unlikely to consider selling soon.
4. ## 04 Set the offer as a conversation, not a purchase  
In campaign guidance's describe step, frame the goal honestly: a no-pressure conversation about whether they'd consider selling, not an offer or valuation. Owners who get an unsolicited number in a cold email are far more likely to ignore it than owners who get asked an open question.  
In the teach step, write your positioning as a buyer who closes without financing contingencies, without a broker's commission eating into their number, or without the property going on the open market, whichever is actually true for you. Be specific about what makes you different from a listing process, that's the entire reason an owner would consider an off-market conversation at all.  
Run a few sample drafts through the practice step and read them as an owner would, someone who wasn't planning to sell today and got an email out of nowhere. If the draft pushes for a number or a meeting in the first line, rewrite the describe step to slow it down. The best-performing off-market openers read like an introduction, not a solicitation.  
![Set the offer as a conversation, not a purchase](/tutorials/app/kb.webp)
5. ## 05 Write in your own voice, and keep it short  
Paste past outreach emails into the teach-writing-style step if you have them. If this is your first cold outreach effort, write two or three samples yourself in the tone you'd use calling someone directly, plain, respectful, no pressure.  
> Subject: your property on \[street name\]  
>  
> Hi \[First name\],  
>  
> I buy \[asset class\] in \[submarket\] and noticed you've owned the building on \[street\] for a while. Not sure if selling is even on your radar, but if it ever is, I'd rather have a direct conversation than have it go through a broker process.  
>  
> No pressure either way, just wanted to introduce myself in case the timing is ever right.  
>  
> \[Name\]  
Notice there's no price mentioned and no urgency language. Off-market outreach earns trust slowly, the email's job is to open a door, not close a deal.  
Sign the email with your real name and a direct way to reach you, phone number included if you're comfortable sharing it. Owners considering an off-market conversation are more likely to pick up the phone than reply to an email thread, and giving them that option removes one more piece of friction between curiosity and a real conversation.
6. ## 06 Build a light, patient sequence  
Set up two to three follow-up steps with longer delays than you'd use in a typical B2B sequence, two to three weeks apart rather than days. Steps stop automatically on reply. Off-market owners are not evaluating you against competing vendors on a deadline, they're deciding whether to even think about selling, and that decision takes time.  
Keep each follow-up short and low-pressure. A second touch might simply mention a recent comparable sale nearby, a third might just re-open the door months later. Resist the instinct to add urgency, it works against you in this category.  
It also helps to rotate the angle across the sequence rather than repeating the same ask three times. The opener introduces you, the second touch offers a piece of market information the owner didn't have, and the third simply keeps the door open without asking for anything. An owner who wasn't ready to reply to the first email may still read the second and third, and each one builds a little more familiarity even without a response.  
![Build a light, patient sequence](/tutorials/app/c-steps.webp)
7. ## 07 Handle replies personally when they matter most  
Replies land in the unified inbox and AI reply handling answers based on what the owner actually asked. Bounce handling auto-suppresses bad addresses so the list stays clean over what is often a long sourcing campaign.  
Off-market replies are lower volume but higher stakes than most cold email categories, a single interested owner can be worth the entire campaign. Review these threads yourself rather than leaving them fully on autopilot, at least until you've calibrated how the AI handles specific ownership and timeline questions.  
Some replies won't be a yes or a no, an owner might say they're not selling now but ask you to check back in a year. Treat that as a real outcome worth tracking outside the campaign, not a dead end, since off-market sourcing is as much about staying top of mind over years as it is about any single campaign's numbers.  
![Handle replies personally when they matter most](/tutorials/app/new.webp)
8. ## 08 Expect a slower, wider reply band and adjust accordingly  
Off-market owner outreach is an under-fished niche compared to standard B2B, so reply rates often land higher, in the 3 to 8% range, with meetings in the 1 to 2.5% range. That's a range, not a guarantee, and it depends heavily on how tightly your list matches real owners of the exact asset class and geography.  
Check per-step performance in analytics. If the opener gets replies but they're mostly not interested, that's a targeting problem, not a copy problem, tighten the geography or asset class further. If replies are rare but warm when they happen, the list is right and it's simply a patience game.  
Track results over months rather than weeks for this playbook. An owner who ignores the first sequence entirely might reply to a re-engagement email six months later when a personal circumstance changes. Off-market sourcing rewards a durable, low-pressure presence in a market far more than a single well-timed burst of outreach.  
![Expect a slower, wider reply band and adjust accordingly](/tutorials/app/c-analytics.webp)

## Pro tips

* 01  
### Weight toward long-hold owners  
Owners who've held a property through a full market cycle (10+ years) are consistently more receptive than recent buyers, weight your list toward hold length if the data is available.
* 02  
### Never mention a price in email one  
Never mention a price or valuation number in the first email. It turns a conversation opener into a negotiation the owner didn't ask for.
* 03  
### Look up the registered agent yourself  
If an LLC name doesn't resolve to a real person through enrichment, it's often faster to look up the registered agent yourself than to keep running that lead through automated research.

## Frequently asked questions

Is this legal, emailing property owners who haven't listed?

Cold outreach to a business or property owner is standard practice in commercial real estate. Follow normal email compliance basics, honest sender identity and an easy way to opt out.

Should I use a personal email address instead of a company domain?

A properly verified sending domain works fine and keeps your deliverability protected by FirstSales' automatic SPF, DKIM, and DMARC setup. What matters more is that the email reads like it came from a person, not a company blast.

What if I don't have county record or LLC ownership data?

AI Leads can still build a list from company and location signals, though owner-specific data sources tend to produce more accurate matches for this use case.

How do I avoid sounding like a wholesaler mass-texting owners?

Specificity is the fix. Reference the actual property, the actual hold length if known, and keep the ask open-ended rather than presenting a number or a deadline. A wholesaler's message tends to read as interchangeable across a dozen owners, yours should read as if it could only have been written about this one building.

Should I follow up if an owner says they're not interested?

Respect a clear no and stop the sequence for that contact. A vague not right now is different, that's worth a light re-engagement months later, especially if a new market signal comes up in research.

## Playbooks

* [└ Pitch retainer contracts to in-house marketing teams 20 min ](/tutorial/playbook-agency-retainer-pitch/)
* [└ Open cold outreach with a free channel audit 18 min ](/tutorial/playbook-agency-audit-opener/)
* [└ Build white-label partnerships with other agencies 22 min ](/tutorial/playbook-agency-whitelabel-partnerships/)
* [└ Win back churned clients after a results dip or team change 19 min ](/tutorial/playbook-agency-churned-client-winback/)

## Outreach that keeps going after you log off. Leads, emails, follow-ups and replies, handled. 

Connect unlimited mailboxes and let AI agents find leads, write each email and follow up. Or send your own templates in manual mode. From $29/mo.

[Start your $1 trial T](https://app.firstsales.io)[See pricing](/pricing/)

$1 for 3 days · Cancel anytime · No contract

## Install with AI

Your coding agent sets up the FirstSales CLI and skills for you.

Prompt for Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.

[Developer docs ↗](https://developer.firstsales.io)[npm: @firstsales.io/cli ↗](https://www.npmjs.com/package/@firstsales.io/cli)[GitHub: firstsales-skills ↗](https://github.com/firstsalesio/firstsales-skills)