Enter your username (or email) and password.
Create your own account with an email and password — admin will assign you deals once you're set up.
Tell us what you're looking for — optional, but it lets us flag deals that actually match you instead of sending you everything. You'll still see every active deal until we have something in your buy box, and again any time nothing currently matches it.
Which states and/or cities would you like to sell deals in? Optional, but if we already have active deals there, you'll see them on your Deals tab as soon as you sign up — and any new one we add there later, automatically.
Optional, but saves time later — if you bring in a deal that closes, this is how we pay you. You don't need to fill this out to sign up. Never type your bank account or routing number anywhere on this site. Instead, create one Google Doc or a Google Drive folder with the following filled out exactly, share it (view access), and paste that link below. Admin-only — no other rep can see this.
Drag the slider until the piece drops into place.
Runs AI matching across every active deal you have access to, against buyers you have access to (your own uploads, the shared pool, and any buyer you've been given for any deal) who are already marked Responsive — buyers with "potential" criteria saved but not yet confirmed Responsive aren't checked yet. Admin gets an email for anything found.
A step-by-step guide, not an automated integration — Propwire and skip-trace steps below all happen on those sites directly; come back here to import the CSV once you have it.
Step 1 — Find cash buyers on Propwire
Go to propwire.com and start a new search. Filter to Cash Buyers, then pick the category that matches the deal you're building a list for:
Then set Portfolio Value to a range of roughly 3x to 20x the subject property's price — e.g. a $100,000 deal → filter buyers with a $300,000–$2,000,000 portfolio. Aim for a master list of 500+ buyers if the filters return that many — more to work with over time.
Step 2 — Split it into batches of 100
Recommended: work 100 buyers at a time per deal, not the whole master list at once. Copy the first 100 rows of your export into a new CSV, then the next 100 into another, and so on until your 500+ list is split into 5 (or more) separate CSVs of 100 each. Skip trace and import them one batch at a time as you actually work through them, rather than all at once.
Step 3 — Skip trace each batch of 100
Do this quickly — don't spend all day skip tracing. Skip tracing doesn't make money by itself; it just gets you phone numbers. The only action that actually moves the needle is calling buyers, getting a deal in front of them, and asking if they're interested. Skip trace one batch of 100, then get on the phone.
Step 4 — Import it below
Once you have a CSV with names and phone numbers, upload it below. This list is private to you — nobody else on the team can see it or be given these leads, only you.
Working the list: call/voicemail first, never cold text. These are skip-traced numbers with no prior relationship or reply history — texting them cold is exactly what gets a phone number flagged and blocked from texting by carriers. Always call first, and leave a voicemail (there's a checkbox for it when you log the call) if there's no answer. Texting only opens up after that person has actually responded to a call.
Volume target: reach out to 50+ buyers a day. That's the pace that actually gets a deal sold — a smaller number of calls a day just means a deal sits longer.
We auto-detect columns from your CSV (works out of the box with Propwire and similar skip-trace exports). Stays private to you.
| Buyer / LLC | Phone | Type | City | State | Asset Categories | Estimated Value | Portfolio Value |
|---|
Propwire lets you filter by portfolio value but doesn't export it — if you filtered on it, enter that range here and it applies to the whole batch.
If this batch is buyers you pulled specifically for one or more of your deals — e.g. several North Carolina land deals a buyer could take any of — check them here so admin can see it's earmarked for those. Grouped and sorted by state so you can quickly skip past ones that don't apply. Leave nothing checked if this list isn't for any specific deal. This doesn't give anyone a pitch by itself — it's just a label on your list.
Tag this whole batch as Fix and Flip / Land / Buy and Hold buyers, if it's specific to one or more of those.
Just talked to a buyer? Paste their name, phone/email, and whatever they told you about what they buy, right here — DeepSeek reads it and fills in their Purchase Criteria for you. Review before saving, nothing is added automatically. Private to you, same as your CSV list.
SOP: use this any time a buyer gives you an active response. Keep their criteria short and plain — one or two sentences. If they have different rules for different asset types (e.g. zoning), write each as its own short sentence instead of combining them — that confuses the AI matching most.
Everyone you've personally uploaded above — private to you, and yours to browse, tag Do Not Contact, or leave notes on any time, whether or not it's been matched to a deal yet. You can only delete buyers you uploaded yourself, never anything admin uploaded.
SOP: any time a buyer gives you an active response about what they buy, fill in their Purchase Criteria below right away. Keep it short and plain — one or two sentences. If they have different rules for different asset types (e.g. zoning), write each as its own short sentence instead of combining them — that confuses the AI matching most.
Check off any buyers above, pick a deal (including a brand new one that showed up since you uploaded them), and give them to yourself for it — no need to wait on the auto-matcher above.
| Buyer / LLC | Phone | City, State | Asset Categories | Tagged Deal(s) | Notes | Purchase Criteria | DNC |
|---|
You haven't uploaded any buyers yet — use the form above.
| Buyer | Phone | Deal | Location | Portfolio Value | Status | Given |
|---|
Re-pulls every active deal's Source Link description and rebuilds its public page under the current formatting rules, regardless of whether the price changed or it was synced recently. Use this after a prompt/formatting update; routine upkeep should use Sync All Pricing above instead.
One-time catch-up for deals that went Dead/Sold before archiving existed — overwrites each one's public page with a plain "no longer available" placeholder instead of leaving stale live-looking content up. Safe to run again any time; already-archived pages are just overwritten with the same placeholder.
Runs AI Buyer Matches (the same tool on each deal's own page) across every active deal at once — one DeepSeek call per deal with any candidates, so this can take a bit and does use AI balance for a large portfolio. You'll get an email for every deal that turns up a match; this button just saves clicking through each deal one at a time.
| Deal Code | Address | Asset Type | Asking Price | Status | Coverage | Access |
|---|
Shown on the login page, before anyone signs in — signing up itself is self-serve (there's a Sign Up button right there), so this is support for after that: password issues, questions about getting set up with deals, anything else. Independent of any real login, so you can point it at yourself, someone else, or swap it any time.
One click instead of hand-assigning a new signup to every open deal individually. Sweeps every active, unlocked deal's "All Users With No Assigned Deals Right Now" — same rule as doing it deal by deal: a rep only stays out of it if they've been hand-picked (Add Access/Assign Myself) for something specifically, or given the Bulk Assign Override toggle. A deal you've Locked to a specific rep's target market is skipped entirely, and it's safe to click this again later (already-swept reps aren't re-added or duplicated) — so it's fine to just run this whenever someone new signs up.
When on, this same open-pool sweep runs automatically the instant someone signs up — they see active deals right away with no admin action needed, instead of waiting on you to notice the signup notification (which can get missed, e.g. around a backend update) and run the button above by hand. Same rules apply either way — Locked deals stay reserved, and a rep hand-picked for something specific elsewhere still doesn't get swept into everything.
Applied to a deal only ONCE, at the moment it's created (or via the backfill button below) — every deal then keeps its own locked-in company name/phone/email permanently, even if you change this template later. That's deliberate: if you're running several companies, editing this here only ever affects deals created after the change, never mixes up which company an existing deal is already under. To change an existing deal's company/contact, edit that specific deal instead.
One-time catch-up for any deal added before this locking behavior existed — never touches a deal that already has its own company/phone/email set.
Normally a deal's exact address is only shared with a rep once you manually grant it (Address Access, on the deal's own page). Turn this on to skip that manual step in specific situations — grants still show up as normal in Address Access afterward, and can be revoked there like any other grant.
Separate from the setting above -- this one is specifically about a registered Buyer account (the actual end buyer browsing deals) requesting an address, not a wholesaler/rep.
| Name | Username | Phone | Type | All-Deal Access | Admin | Active | Deals They're Told To Work On | Bulk Assign Override | Last Active | Preferred Buyer-Lead Area | Actions |
|---|
A step-by-step guide, not an automated integration — Propwire and skip-trace steps below all happen on those sites directly; come back here to import the CSV once you have it.
Step 1 — Find cash buyers on Propwire
Go to propwire.com and start a new search. Filter to Cash Buyers, then pick the category that matches the deal you're building a list for:
Then set Portfolio Value to a range of roughly 3x to 20x the subject property's price — e.g. a $100,000 deal → filter buyers with a $300,000–$2,000,000 portfolio. This targets buyers who can comfortably afford this specific deal without being so large they're not responsive to a deal this size. Aim for a master list of 500+ buyers if the filters return that many — more to work with over time.
Step 2 — Split it into batches of 100
Recommended: work 100 buyers at a time per deal, not the whole master list at once. Copy the first 100 rows of your export into a new CSV, then the next 100 into another, and so on until your 500+ list is split into 5 (or more) separate CSVs of 100 each. Skip trace and import them one batch at a time as you actually work through them, rather than all at once.
Step 3 — Skip trace each batch of 100
Propwire's export usually won't include phone/email for every owner. Get that with one of:
Do this quickly — don't spend all day skip tracing. Skip tracing doesn't make money by itself; it just gets you phone numbers. The only action that actually moves the needle is calling buyers, getting a deal in front of them, and asking if they're interested. Skip trace one batch of 100, then get on the phone.
Step 4 — Import it here
Once you have a CSV with names, phone numbers, and (ideally) portfolio value, use the importer below — it auto-guesses column mapping for common skip-trace export formats, including Propwire's.
Working the list: call/voicemail first, never cold text. These are skip-traced numbers with no prior relationship or reply history — texting them cold is exactly what gets a phone number flagged and blocked from texting by carriers. Always call first, and leave a voicemail if there's no answer. Texting only opens up once that person has actually responded to a call — this is enforced whether admin or a rep imported the list.
Volume target: reach out to 50+ buyers a day. That's the pace that actually gets a deal sold — a smaller number of calls a day just means a deal sits longer.
Upload a CSV file in any column order — we'll guess which column is which based on its header, show you the guess, and let you fix anything before importing. Duplicate phone numbers are skipped automatically.
We guessed these from your column headers — check each one and change any that don't look right. Columns set to "Don't import" are left out.
| Your Column | Sample Value | Maps To |
|---|
Propwire only ever exports data on the one property in each row — even the "Estimated Value" and "Estimated Equity" columns are for that single property, not the buyer's whole portfolio. Propwire lets you filter a search by portfolio value, but never exports the value itself. If you built this list that way, enter the range you filtered on (or just a minimum) here and it's applied to every buyer in this upload as their Portfolio Value — separate from each row's own single-property Estimated Value below.
| Buyer / LLC | Phone | Type | Phone 2 | Phone 3 | City | State | Zip | County | Asset Categories | Last Purchase Price | Estimated Value | Portfolio Value | Held | Price Range |
|---|
Tag this batch as earmarked for one or more deals — e.g. several North Carolina land deals a buyer could take any of. Grouped and sorted by state so you can quickly skip past ones that don't apply. Leave nothing checked if this list isn't for any specific deal. This doesn't give anyone a pitch by itself — it's just a label, shown on the table below and filterable via "Pending Deal Tag."
Tag this whole batch as Fix and Flip / Land / Buy and Hold buyers, if it's specific to one or more of those.
Paste rows copied from Excel/Sheets/CSV: Name (or LLC), Phone, Phone Type (Mobile/Landline), City, State, Zip, Email, County — comma or tab separated, one buyer per line. Email and County are both optional and must come last, in that order (leave either blank or off entirely if you don't have it). A header row is detected and skipped automatically. Use the CSV upload above if you need Phone 2/3 or Asset Categories too.
Tag this whole batch as Fix and Flip / Land / Buy and Hold buyers, if it's specific to one or more of those.
Paste in one or several buyer contacts as free text — names, emails, phone numbers, and whatever they told you about what they buy, in any format (a quick note, a full company spec sheet, several separated by blank lines or "***"). DeepSeek splits it into individual buyers for you to review before anything is saved — nothing is added automatically.
This is the SOP — any time a buyer gives you an active response about what they buy (on a call, in an email, wherever), paste it in here rather than typing it from memory later. Keep each buyer's criteria short and plain — one or two sentences. If they have different rules for different asset types (e.g. zoning), write each as its own short sentence instead of stacking them into one — that's what confuses the matching AI most.
These rows matched an existing lead by phone or email. Nothing here ever overwrites anything already on file — each one only ever fills in a field the existing lead doesn't already have a value for. Uncheck any you don't want, then apply — anything left unchecked (or if you just dismiss this) is skipped, same as before.
Gives a batch of buyer leads to one team member, paired specifically with the deal you pick below — that pairing (a "pitch") is what shows up in their queue. Leads already pitched for this same deal are skipped.
Leave city/state/zip blank to match the deal's own location automatically.
When on, checks every active deal (not Sold/Dead): any team member with access to it who's worked through everything they've been given for it is automatically given more matching buyer leads for that same deal. A team member's Preferred Buyer-Lead Area (Team tab), if set, limits which of their deals qualify. Runs whenever you click below, or hourly if you've installed the optional trigger — see SETUP.md.
Auto-drafts a "weekly active deals" email in beehiiv (never sent automatically) — open beehiiv, pick the "rep" segment, and send. Runs on its own every Monday once the trigger's installed (see SETUP.md); use this button to generate one on demand for testing.
Auto-drafts a "new deals" email listing whatever's gone up since the last one (never sent automatically) — open beehiiv, pick the "rep" segment, and send. Runs on its own once a day once the trigger's installed (see SETUP.md), but only actually creates a draft if it's been at least 3 days since the last one AND there's something new — so a bulk upload never creates a pile of separate drafts. This button skips that gate and creates one right now for testing, as long as there's at least one new deal to include.
Powers Purchase Criteria analysis and AI Buyer Matches. Checked automatically about once a day once the trigger's installed (see SETUP.md) — you'll get an email if it drops low, so the AI features don't just quietly stop working with no warning.
Picking a team member gives them a real pitch right away. Leaving it on "tag only" just earmarks the selected leads for that deal for your own organizing — nothing shows up in anyone's queue until you come back and give them to someone.
Applies to every currently-selected lead (0 selected). Check a field to apply it — anything left unchecked is not touched, so you can backfill just one field across a batch without overwriting the rest.
Finds existing leads that share a phone number or email — not just at import time. Pick which one to keep in each group; the others get folded into it (pitches and contact history move over, nothing is lost) and removed.
| Buyer / LLC | Phone | Type | Location | Portfolio Value | Asset Categories | General Notes | Pending Deal | Uploaded | Uploaded By | Open Pitches | Actions |
|---|
Reassigning is a move, not a copy — if a selected pitch's buyer+deal already belongs to the team member you're reassigning to, that duplicate is dropped rather than reassigned. To have both people on the same buyer+deal, use "Give For a Deal" from that buyer's own page instead.
| Buyer | Phone | Deal | Given To | Status | Given At | Actions |
|---|
These are the categories buyers can be matched to deals by (e.g. Single Family, Multifamily 1-4 Units, Fix and Flip).
Leave any of these blank to use the site-wide default (Deals tab → Contact & Company Template).
All-access team members and admin already see every deal regardless of this — this only affects everyone else. If this deal has an Asset Category set above, the reps you pick here get standing access to every deal in that category — current ones right away and any new one added later, not just this one — shown as "Deals They're Specifically Told To Work On" on their Team tab row (edit it any time from Edit Details there). With no category set, it's a one-off grant for just this deal instead. "No assigned deals right now" means zero deals — direct or by category — checked the moment you save.
Update your purchase criteria any time — your Deals tab re-filters against it right away.
This permanently removes them, including all pitch and contact history, from the database — it cannot be undone. Type DELETE below to confirm.
This permanently removes them (and any pitch/call history on them) from your buyer list — it cannot be undone. Type DELETE below to confirm.
Leave City/States/Zip blank to not filter by it. Used by Auto-Feed to keep this person working the same area(s).
Separate from the buyer-lead area above — this is which state(s) this person focuses on for deals. Purely informational: it doesn't grant or restrict anything by itself, but a deal's detail page uses it to suggest who to hand-assign (and optionally lock) that deal to once you see them doing well in a market. Leave blank if not set yet.
Check a category and this person automatically gets every deal in it — current ones right away, and any new one added later, no need to hand it to them one at a time.
Set at signup, editable here — e.g. if this buyer calls in with updated criteria. Used to flag matching deals on the Deals tab (a "buyer(s) match" badge), and to auto-see-all-deals for this account regardless.
Which states and/or cities this person wants to sell deals in — set at signup, editable here. Grants standing access to every matching deal automatically, current ones right away and any new one added later, same as Category Access above.
Optional for the rep to provide — leave blank if they haven't sent it yet. Never store a raw bank account/routing number here — this should only ever be a link to a Doc/folder the rep controls.