fiveagents logofiveagents.io
All case studies
Adana CapitalReal Estate Investment · Deal Sourcing

Four Disconnected Tools, Now One System

Adana Capital — industrial & outdoor-storage acquisitions · adanacap.com ↗

358 → 1,178
Properties the buy box lets into the enrichment queue, once the score layered on top of it was deleted
61.5s → 10s
Ingesting a ~500-row CoStar export. The path it replaced timed out with 449 of 489 rows written and no summary returned
0 of 532
CoStar listings that arrived carrying an email address. Every contact is looked up afterwards, at about 2.2¢ each
Open the live demoClickable, on invented sample data instead of the client’s records. No sign-up.
01

How it used to work

A saved search exported by hand, a CRM the rows were re-typed into, Instantly, and SimpleTexting. Four tools, and the same broker living in three of them.

BeforeOne broker, three records

CoStar export · one row

Dwayne Ferro · Ferro Yard Holdings

(214) 555-0148 · no email address

re-typed by hand, three times

The CRM

name
Dwayne Ferro
phone
(214) 555-0148
email
missing

Instantly

name
D. Ferro
email
dferro@ferro… (guessed)
phone
missing

SimpleTexting

phone
(214) 555-0148
name
missing

Three answers, one broker

update any one of them and the other two were quietly wrong

Run the saved search on CoStar. Export it. Re-type the rows into a CRM. Copy the good ones again into an Instantly list, and the phone numbers into SimpleTexting. Every step between those tools was a person copying a row, and the copy was the only thing holding them together, so the same broker existed in three places at once, with nothing anywhere saying which one was current.

  • The same contact, three times

    CRM, email tool, SMS tool. Update one and the other two were quietly wrong.

  • Not one email in the export

    Zero of 532 CoStar listings carried an address. Every one had to be found by hand.

  • A shortlist nobody could defend

    Which properties made the cut depended on who did the exporting that week.

  • No answer to “where does this stand?”

    Four tools, four partial answers, and no way to tell which was current.

02

How it works now

One record per property, one buy box that passes or fails, and one person who says go.

AfterOne rule, three bands

Coverage decides which ceiling applies. The ceiling decides everything else.

FAR under 10%

price ÷ land SF

$17

under $17 PLSF

3 with no price, kept and asked

A land play. The building is nearly incidental, so value the dirt.

FAR 10–18%

price ÷ land SF

$23

under $23 PLSF

2 with no price, kept and asked

Still land-led, but the improvement is worth something.

FAR over 18%

price ÷ building SF

$120

under $120 PSFB

3 with no price, kept and asked

A building play. You are buying the box, so value the box.

under the ceiling: kept over it: archived, with the reason no list price: kept, and asked

There is no near-miss band. A property at 105% of its ceiling is over it, and a third outcome was a side door back into the pipeline. And there is no score: this is the whole judgement.

  • Getting the listings

    Export, then re-type into the CRM

    Drop the export in a folder and it ingests itself

  • Deciding what to chase

    A judgement call, made fresh every week

    One buy box: which FAR band, then that band’s ceiling

  • The shortlist

    A 1–10 score nobody could defend

    Pass or fail, and the one line that says why

  • A listing with no price

    Dropped, with nothing to score it on

    Kept, because asking the broker the price is the point

  • Finding the email

    Looked up by hand, one broker at a time

    Looked up in batches, about 2.2¢ a verified address

  • Sending

    Log into Instantly and rebuild the list

    Approved targets land in the list they were approved into

  • Before anything sends

    Whoever built the list decided

    At Gate 1 a person approves, or nothing goes

The gateway is one database with one decision in it. A property is kept when three things hold: somebody is named on it, its floor-area ratio can be computed from the building size and the acreage, and any price it carries sits under the ceiling for the band the FAR puts it in. Under 10% coverage is a land play, so it is valued on the dirt; over 18% is a building play, so it is valued on the box. Nothing else is judged.

There used to be a 1–10 conviction score on top of that, and it went through the whole arc. It was given a definition only after it turned out the agent had invented a rule of its own and applied it to 684 properties on a scale where 8, 9 and 10 were arithmetically unreachable. Then it was deleted outright: the buy box already decides, and a second opinion layered on top of it was rationing the queue instead of improving it. What remains is a paragraph the agent writes to explain a property to the person at the gate, and nothing in the system reads that paragraph. It is context for a human, not a control.

A property that fails is archived with a reason that is recomputable, so a later export carrying the missing price, the missing columns or a broker’s name revives it on its own, with nobody going back to look for it.

Same problem in your business?

Book 30 minutes. We'll look at how it runs for you now, and what a build would cover.

A week, end to end

  1. PipelineCollect & enrich
    Automated + human

    The exports Adana downloaded are ingested from a folder on their own machine, and the emails the listings never carried are looked up

    Mondays, 9am and 11am · on Adana’s own machine, because no cloud job can reach that folder

    Mondays, 9am and 11am · on Adana’s own machine, because no cloud job can reach that folder

  2. PipelineRe-screen
    Automated

    The price screen is recomputed against the buy box. It refreshes the verdict. It does not open the gate

    Tuesdays · one daily cron, fanning out by weekday

    Tuesdays · one daily cron, fanning out by weekday

  3. Gate 1Approve targets
    Human

    Two queues: priced ones to pitch, unpriced ones to ask about. Approving picks which campaign they land in

    On no schedule at all, and this step blocks everything downstream of it

    On no schedule at all, and this step blocks everything downstream of it

  4. CampaignsOutreach
    Automated

    Approved leads are pushed to the sending tool, and the campaign figures come back

    Monday, Wednesday, Friday

    Monday, Wednesday, Friday

  5. RepliesHandle replies
    Automated + human

    Replies sync in every morning; a person reads each one and marks it

    Every morning, 7am Central

    Every morning, 7am Central

Nothing catches up. A missed Monday is a missed week, and that is deliberate. A backfill that quietly processed three weeks of exports at once would spend three weeks of lookup credits in one morning.

03

See it working

The gateway itself and the plugin that drives it, running on invented data. These are not screenshots, so click anything.

Four things in there are worth finding. Go and look.

  1. 1A property that has waited seventeen days for an email address. The lookup found the person and a direct line, and no address. So it is queued, not rejected, and that difference is the whole point of the status. Try the lookup again; it fails again, for the same reason.
  2. 2One campaign is bouncing at 6.8% while the workspace average sits at a healthy 3.3%. The warning names the campaign, because averaging the good ones with the bad one is exactly how this gets missed.
  3. 3An unpriced listing at Gate 1 that would be over its ceiling if the broker answers with what the two comps nearby suggest. It is kept anyway, because screening on a guessed price is not screening.
  4. 4A property that was archived in July for being over its ceiling, and is back in the pipeline now. A later export carried a lower price, the buy box re-decided it, and it walked back in without anybody going to look for it. Its history records both verdicts.

Everything else screens cleanly. Each of these is the system doing its job on an awkward case, not an awkward case getting through it.

The one human step

Everything else runs on its own. This does not.

Ingest, screening and the email lookup all happen without anyone watching. One checkpoint is deliberately manual: a person approves a target and picks which campaign it is approved into. Nothing sends before that. Try it on these three.

0 of 3 decided

4180 Gaylord Yard Rd

Baytown, TX · 6.4 ac · 24,800 SF · $3.2M · FAR 8.9% [<10%]

Land play: $11.48 per land square foot against a $17 ceiling. The shed is nearly incidental.

900 Kirby Spur Dr

Houston, TX · 3.1 ac · 41,000 SF · $4.4M · FAR 30.4% [>18%]

Building play: $107.32 per building square foot against a $120 ceiling. Here you are buying the box.

2755 Sabine Crossing

Laredo, TX · 11.2 ac · 96,300 SF · no list price · FAR 19.7% [>18%]

No price, so nothing was screened. The band says the ceiling would be $120 per building SF, and two comps in the submarket closed at $126 and $131. That is a question, not a rejection.

What Adana still decides

  • Nothing is contacted without Gate 1. The agent can put a property in front of a person; it has no tool that moves one past one.
  • The buy box is the only judgement in the pipeline. The agent writes a paragraph explaining a property to the approver, and nothing in the system reads it.
  • It never drives a browser. Adana signs into CoStar, Reonomy and LexisNexis and drops the file in a folder, so there is no session to hijack and no credential to hand over.
  • Spending money on a question is a decision, not a default. Enriching the unpriced half costs real credits against properties with no known price, so it sits behind a flag. If nobody has answered, the run reports the count as waiting instead of blocking on an answer nobody is there to give.

Want this running for your business?

We'll build the same kind of system around how your business runs. You see a clickable demo before you commit.

See if we're a fit →