Recruiting Appointment Setter
Linear: RYR-213 — live SDR ops + cadence service build (2026-07-23 vault→Linear audit) Verification correction (2026-07-24): Bulk import is DONE — 7,362 people tagged
courtedlive in FUB (verified via FUB API 2026-07-24); the README "Pending" is stale. Still open: cadence Cloud Run service, recruiting-specific smart lists, recruiting-line call-recording. (RYR-213)One-line description. Build a recruiting funnel where an SDR works the 7,902-agent High/Moderate slice of the Courted database inside the MM Ops FUB instance, booking calls for Ry.
Why
The old Recruiting-Coordinator onboarding SOP described a workflow production couldn't support. Hand-written outreach_log CRM-in-BQ. Fabricated schema. 2-month-stale pipeline. No Indeed automation anywhere. Patching the SOP wouldn't fix the underlying design.
So I redesigned. FUB is the CRM. The SDR lives in FUB. BigQuery is just the data source. Goal: 50 hires (stretch 100) from the Courted pool.
Current state
LIVE / running manually. Setter Anthony hired ~2026-05-13 and is actively dialing the Courted list and booking recruiting appointments for Ry. Verified 2026-06-02 via Google Chat "Team Ryan" space (spaces/AAQAu_u1hHw, 1:1 Ry + Anthony).
- Status: active — setter live, booking appts; automation/wrapper still to build
- Daily volume (from EOD posts): ~90-121 dials/day (May 26=90 / May 27=101 / May 29=111 / Jun 1=121 / Jun 2=120), connect rate ~8-10%. Appts set: Wendy Barton (Jun 1), 2 on Jun 2.
- Workflow live: Anthony books the recruiting call at
schedule.rycolston.com/?agent=ryan-colston→ picks the Recruiting call type → thepos-appointment-schedulerservice creates the appointment in the recruiting FUB (Ry = user 13) → syncs to Ry's calendar → Ry closes (Appointment A). (Before 2026-06-22 he hand-created it in FollowUpBoss.) Script working as designed (no comp pitch, bridges to Ry). - Coaching loop live: daily GMeets, script-rep practice, per-connection/per-good-day bonuses, pay via Wise.
- ⚠️ Call recording status MIXED (investigated 2026-06-30, not cleanly resolved): confirmed broken 6/02. Since then, MR work (commit
60de6ec3, 6/10) built a Mojo-recording-mirror pipeline to GCS, and Linear RYR-26 (Done 6/27) treats Anthony's calls as already recorded in Mojo — implying it started working sometime between 6/02-6/10. But Linear RYR-57 (still Backlog, future Twilio rebuild "for full call recording") implies current recording is partial/unreliable. Re-confirm directly with Ry/Anthony before trusting either snapshot. - Plan C (locked 2026-05-06): Ry's MM FUB role is
Agent/isAdmin: false, so FUB-native Automations + Action Plans aren't usable. Cadence to run externally via a Cloud Run service. Tag-based workflow, no new FUB stages. - Last update: 2026-06-02 (live-status reconciliation vs Google Chat)
- Phase: setter live (manual) → fix call recording → bulk import → cadence service → wrapper automation (Agent Recruiting Wrapper)
Architecture — Plan C
| Layer | Where | Built by |
|---|---|---|
| Tags + Smart Lists + Custom Field | FUB UI (Agent role) | Ry |
| Bulk import (7,902 records, one-shot) | Local Python | Script TBD |
| Cadence engine (Day 1/3/7/14/30 task creation, Day 31 nurture flip) | Cloud Run + Cloud Scheduler (15 min poll) | ~/platform/services/pos-fub-cadence/ TBD |
| State tracking | Notes-as-state on each FUB profile | Self-healing, no external DB |
The motion (5 stages)
- SDR dial — Mulrenin Circle Prospecting structure →
scripts/setter-dial-script.md✅ - Appointment A — Ry's 15-min qualifying call →
scripts/appointment-a-ry-call.md✅ - Appointment B — Hormozi value equation pitched in full (TBD)
- Offer extended — terms + paperwork + derisking confirmed (TBD)
- Onboarding — first 30 days at Listing Legends (TBD)
Hormozi offer payload
Three offers, ranked by research (43% of agents stay for culture/leadership; only 13% for pay):
- Leadership / Effort lever — Market Manager who knows your name, runs CMAs in 24-48 hr
- Time + Risk lever — 90/10 split on first 5 deals; "we don't make a dollar off you until deal 6"
- Likelihood lever — Avg Orchard agent does 6 deals/year, median at their shop does 3, same DFW
Pitched in full only on Appointment B. SDR and Appointment A surface gaps via Mulrenin questions; never name the offer.
Next 3 actions
- Build the 4 FUB smart lists in the UI (
Courted — To Call,Needs Follow-Up,Meetings Booked,Nurture). - Write
scripts/import_courted_to_mm_fub.py. Dry-run 10 records, verify, full import for 7,902. - Spec + build the
~/platform/services/pos-fub-cadence/Cloud Run service (Plan C cadence engine).
Decisions log
- 2026-06-22 — recruiting bookings moved into the Schedule This Appointment tool: added a Recruiting call type that routes the booking to the recruiting FUB (Ry = user 13) and syncs to Ry's calendar. Shipped via MR !711 (scheduler) + MR !713 (handbook §12.3). Replaces hand-creating the appt in FUB.
- 2026-06-02 — live-status reconciliation: confirmed via Google Chat that setter Anthony is hired (~2026-05-13) and actively booking recruiting appointments; status held → active. Recruiting-line call recording confirmed still broken.
- ~2026-05-13 — setter Anthony hired and started (supersedes the 0-hire April OLJ round); "Team Ryan" 1:1 coaching room created.
- 2026-05-06 — Plan C locked (external Cloud Run cadence, tag-based design, no new FUB stages). Ry confirmed
Agentrole on MM FUB via live/v1/identityprobe; admin-required features (Automations, Action Plans, webhooks) bypassed. - 2026-05-01 — locked 3 call scripts off Mulrenin Circle Prospecting + ARP framework
- 2026-04-22 — closed the 4 original blockers (stage names, cadence, texts, import greenlight in principle)
- 2026-04-15 — kill old SOP, redesign with FUB as CRM
- Portfolio organization — tier taxonomy + Projects template
Open issues
Script work: - [ ] Field-test the SDR script on 5 calls - [ ] Draft Appointment B (consult) script - [ ] Draft the "rundown" doc (Ry bio + 3-bullet team overview) - [ ] Draft post-Appointment-B flow (offer extended → onboarding)
FUB UI (Plan C, Agent-role buildable):
- [ ] Build 4 smart lists with tag filters
- [ ] Confirm Previous Brokerage custom field editable
Bulk import:
- [ ] Write scripts/import_courted_to_mm_fub.py
- [ ] Dry-run 10 records → verify → delete → full run (7,902)
Cadence service (Plan C):
- [ ] Write design spec → docs/plans/2026-05-06-plan-c-cadence.md
- [ ] State-tracking method: default to notes-as-state (vs. BigQuery state table)
- [ ] Cadence days: default Day 1/3/7/14/30 + Day 31 nurture flip
- [ ] Meeting-scheduled notification mechanism (FUB note + @mention only?)
- [ ] Build + deploy + stage-roll on 5 test records
Hire: - [x] Hire the SDR — Anthony hired ~2026-05-13, live and booking appts
Live-ops (now the active work): - [ ] Confirm recruiting-line call recording status — broken as of 6/02, likely improved by 6/10 per Mojo-mirror work + Linear RYR-26, but RYR-57 suggests still not "full" recording. Needs a direct Ry/Anthony confirm, not another doc check. - [ ] Build the wrapper so ~90% voicemail dials get automated follow-up (VM drop + SMS) → Agent Recruiting Wrapper - [ ] Draft Appointment B script (Ry is closing on feel today) - [ ] Stand up booked-call reminder / no-show recovery now that appts are landing
Locked scope (no rework):
- One-time bulk import. No delta sync.
- Tag-based workflow. No new FUB stages. (Plan C)
- Tag courted only at import. No tier tags. Plus bad-phone for phone hygiene flagging.
- Hard-skip records with invalid email format. Net import: 7,876 of 7,902 (26 skipped to rejected.csv).
- All contacts assigned to Ry (FUB user ID 13) in stage "Lead".
- Courted metadata in first Note on each profile.
- Cadence runs externally via Cloud Run, not FUB Automations. (Plan C)
References
- Project root:
~/platform/projects/recruiting-appointment-setter/ - Locked scripts:
scripts/setter-dial-script.mdscripts/objection-responses.mdscripts/appointment-a-ry-call.md- FUB infra spec:
docs/plans/2026-04-15-phase-1-spec.md - Source scriptbook:
~/bigbrainremote/Content/Resources/Reverse Selling - Scriptbook.md - Resume order:
README.md→CLAUDE.md→ scripts → spec - Deprecated, do not write:
~/CCPJ/projects/recruiting/,~/CCPJ/projects/pos-agent-recruiting/ -
Related projects: Onboarding SOP Remediation, Appointment Setter Hiring
-
2026-07-01 — Anthony wired into the pay system: registry pay block added (MR !1018 — $4/hr, $5/appt, wise), roster reloaded, June 15-30 computed at $207 ($192 base + $15 bonus) for Ry's reference — paid directly by Ry, NOT carried in payroll_ledger (row removed per Ry); scheduler bookings already attribute to him. Payroll itself lives under The 50OS per Ry.