Recruiting Appointment Setter
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
Active. 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 runs externally via a Cloud Run service. Tag-based workflow, no new FUB stages.
- Status: active
- Last update: 2026-05-06
- Phase: scripts done → FUB UI smart lists → bulk import → cadence service → SDR hire
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-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: - [ ] Hire the SDR (paused project still has the OLJ pipeline)
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