Juniper Pi Call Sheet
Mutuals Inc · Juniper Pi · outbound call research

Who she can call, and who will stay on the line

A measured shortlist of outbound call targets for the phone-agent character, plus the working call sheet. Two scrape rounds, 567 listings sampled, 249 unique numbers cleared for the live test, including a Syracuse control arm.

Sampled
567
Cleared
249
Categories
13
Metros
11
Scrape spend
$4.20
Emails
89
Consent
1-party
Dated
04 Sep 26

What we were looking for

Not “a business with a phone number.” The target is a business whose intake process demands a fact she structurally cannot supply, staffed by someone whose job obliges them to keep working the request anyway.

That second clause is what separates a usable target from a dead one. Of the seven calls already recorded, five were effectively dead air. The one that produced material — call_3bda4a93, 26 % caller share — was a leasing agent who kept trying to solve an unsolvable problem. Engagement duration is the yield metric, not reach.

How the shortlist was built

  1. R1 Wide sweep — 7 categories × 4 metros Sampled the obvious candidates against a proven control. Established that the metro axis barely discriminates: 79–82 across four cities, against a 74–88 spread across categories. 387 rows
    $1.93
  2. R2 Replacement candidates + the doc-native gap Four candidates for the open slot, plus the two categories from the script doc that round 1 failed to sample. All six hit full density. 180 rows
    $0.76
  3. R3 Live call test — not yet run Ten calls per category through Retell, scored on caller share. This is the only step that measures acceptance; nothing in a listing predicts whether someone stays on the phone. pending

What the scrape can and cannot tell you

Read this before trusting the ranking

The AVAIL score below is reachability only — the mean of phone coverage, a solo-operator proxy, and liveness. It cannot see whether anyone stays on the line.

The proof is in our own data: it ranked property management 5th of 7, and that is the single category with measured yield. A corporate front desk scores badly on a solo proxy while being exactly the person who cannot hang up on a prospective tenant. Use AVAIL to rule categories out. Only the live test ranks what survives.

CategoryRoundListingsAVAIL SoloMed. reviewsVerdict
Estate attorneyR1608847–87%5–70Held — but bills hourly and screens hard
Life insuranceR1608547–73%21–81Held — sales inversion risk
Funeral homeR1608440–87%48–154Cut — tonal risk
Psychic / astrologerR1538253–67%18–62In the test
Property managementR1607820–67%34–135In the test — control
MatchmakerR1347544–67%3–7In the test — thin, but ample for ten calls
Storage unitR1607420–27%18–382Cut — chains behind an IVR
Wedding plannerR2309080–93%27–45Held — needs a fiancé
CPA / tax prepR2308660–73%28–51Cut — too structured and legally cautious
Life coachR2308567–80%5–23In the test
Car insuranceR2308353%46–102Held — she has no car
Financial advisorR2307840%2Score is a proxy artifact — see below
Moving companyR2307620–33%226–266Cut — chains

Financial advisor’s low score is our bug, not their weakness

Median review count is 2, and the solo proxy requires three or more reviews — so the most genuinely solo category in the set is scored as not solo. Those are individual branch advisors with 100 % phone coverage and every row callable. The proxy’s lower bound is wrong for low-review categories.

Two defects found in the pipeline

Fixed — consent filter failed open

The scraper returns state as a full name on most rows but a two-letter code on some (4 of 387: GA, AZ, TN, TN). The all-party-consent exclusion list held full names only, so a WA or CA row would have been classified one-party and admitted to the callable list — the exact failure the filter exists to prevent.

Now matches both forms case-insensitively, covered by five tests. Re-classifying all 387 rows changed zero, because every code-form row happened to be one-party anyway. It would have bitten on the first nationwide scrape.

Corrected — the cost cap does not bind

The platform maxItems option bounds pay-per-result actors but not the pay-per-event Maps scraper. Runs capped at 105 were charged 194 and 202; runs capped at 90 were charged 178 and 184.

Real rate is ~$0.005 per delivered listing, so the $5 monthly allowance buys about 1,000 rows, not the 1,250 list price implies. Budget from delivered rows and watch usageTotalUsd per run.

Open — line type is unknown

Google Maps does not distinguish landline from mobile, and no Twilio credentials are configured. Solo practitioners commonly publish a mobile, so rows are flagged, never dropped. One live example: an Atlanta listing carrying a +1 430 East Texas number. Always take the state from the address, never the area code.

The call sheet

Email and social, from the same scrape

Enriching all 149 rows from their business websites returned an email for 58 (39 %) and an Instagram for 68 (46 %). For solo practitioners Instagram is often the better follow-up channel than email. Addresses are deduplicated case-insensitively; where a site listed several, the first is shown and the count is on hover.

Coverage by category: life coach 12/28, matchmaker 10/23, psychic 17/42, property management 19/56. Enrichment cost $1.17 — targeting known listings bills three events per row, not two.

We are calling from a 315 number

Outbound is +1 (315) 909-8263 — Syracuse, central New York. Every target below is in Atlanta, Austin, Nashville or Phoenix, so every call currently shows up as out-of-state. Small businesses screen unknown out-of-area numbers hard, and this is likely a larger lever on answer rate than which category we pick.

The fix is local DIDs — a 404 calling Atlanta, a 512 calling Austin — at a couple of dollars a month each. New York is a one-party-consent state, so the origin number raises no recording question; this is purely about pickup.

Syracuse is the control arm — filter Local to metro + syracuse

25 Syracuse numbers were added, 24 of them true 315. They can be dialled with a genuinely local caller ID today, from the number we already have, at no infrastructure cost. Same categories, same script, same agent — so comparing their answer rate against Atlanta and Austin isolates the area-code variable before anyone buys a DID. Only property management and life coach: matchmaker measures 2.1 businesses per million, so a 1.06M market holds about two.

One confound to respect. Syracuse listings score lower on the things we can measure — 87 % publish a phone against 93–100 % in the southern metros, and 67–73 % show real opening hours against 87–100 %. Life-coach median review count is 0. So a weaker Syracuse result may be listing quality rather than area code. Compare only against rows that also show hours, or the experiment answers the wrong question.

Suppression keys on the number, not the listing

154 callable listings collapse to 149 unique numbers. One Phoenix operator runs five matchmaking storefronts — A Foreign Affair, Medellin Dating, Cebu Women, Belarus Singles, Barranquilla Dating — behind a single line, and an Atlanta matchmaker runs two. Keying “one answered call per business” on the listing ID would have let the character call that operator five times.

Rows are deduplicated on the phone number, with the other brand names shown beneath the one listed. Those five trade as international marriage brokers rather than local matchmakers — worth a look before dialling, since that is a different business from the one the script has in mind.

Every row below is open, publishes a phone number, and sits in a one-party recording-consent state. Set a disposition as you work the list — it saves for everyone on this page, live. Each row records who set it.

BusinessCategoryCityPhoneLine ContactDispositionNote

Loading saved dispositions…