KG System Map

Live from the VPS · updated Mon Oct 19, 12:23 PM · refreshes every 15 min
43 running4 shadow / dry1 off0 failing

Needs you

  • Nothing is failing right now.

Rebuild progress

  • S1Account configDone
  • S2System MapDone
  • S3Compliance guardTo do
  • A1Inbox engineIn shadow
  • A2Follow-up engineIn shadow
  • A3Qualify & reviewTo do
  • A4Hand-off to dispoTo do
  • A5Seller listsTo do
  • A6Seller contracts (last)To do
  • D1Deal bookTo do
  • D2BoweTo do
  • D3Buyer marketingTo do
  • D4Walks (7 jobs -> 1)To do
  • D5OffersTo do
  • D6Buyer contracts & closing (last)To do
RunningShadow or dry run: works out what it would do, writes nothingOffFailing

Seller lists & blasts

Sellers are pulled and texted by each account's main blast.

Seller auto-enroll: OFF
  • blast-monitorRunning

    Reports how many fresh sellers are left in each SMS account's blast

    ran 1h ago · next in 16m
    “every market has people left to text.”
  • blast-replenishOff

    has not run
    “Nothing needs refilling. No credits spent.”

Seller replies

Every reply is read: fields filled, opt-outs handled, callbacks dated. Part 2 (inbox engine) is replacing these in shadow.

  • acq-inboxShadow

    Part 2 inbox engine: reads each new seller reply once and decides everything (SHADOW: logs, writes nothing)

    ran 6m ago · next in 8m
    “SHADOW - nothing written to GHL. actions: {'fill_fields': 1, 'note_recommendation': 9, 'suggest_reply': 8, 'suppress': 5, 'mark_read': 1, 'flag_va': 1}”
  • acq-extractRunning

    Reads seller texts and fills asking price, condition, timeline fields

    ran 22m ago
    “updated: 4 contact(s)”
  • acq-clear-unreadRunning

    Marks negative seller replies read so Unread only shows people owed a reply

    ran 7m ago
    “TOTAL: cleared 1, keeping 129 unread”
  • acq-callback-dateRunning

    Turns a seller's "call me tomorrow at 9" into a real callback date

    ran 4m ago
    “filled 4, could not read 12”
  • acq-lead-cardsRunning

    Creates the seller's card in the right acq stage when they engage

    ran 7m ago
    “cards created: 0”
  • city-autotagRunning

    Tags each new opp's contact with its city

    ran 3m ago
    “[2026-10-19T12:20:13] === done ===”
  • acq-callback-notifyRunning

    Tells the VA and rep when a seller booked a callback, and chases it

    ran 4m ago
    “sent 0 alert(s)”
  • seller-callback-watchRunning

    When a VA books a Seller Callback slot, moves the card/tasks to match

    ran 1m ago
    “appointments seen 0 | recorded 0 | already handled 0”

New Lead / No Answer

51 open cards

VAs work the replies. When a VA qualifies on the phone, the VA moves the card to Underwriting.

  • New Lead / No Answer / No Reply51
Automation moving acq cards: OFF
  • va-worklistShadow

    A2: each morning, one GHL task per VA with their ranked sellers to work (SHADOW)

    has not run · next in 15h
  • alexis-auditRunning

    Reviews what the AI VA (Alexis) said and flags rule breaks

    ran 23m ago
    “TypeError: 'NoneType' object is not subscriptable”
  • disqualified-sweepRunning

    When a VA tags a lead disqualified, closes its card and removes its Property

    ran 16m ago · next in 13m
    “0 card(s) closed · 0 property record(s) removed”

Follow-Up ladder

305 open cards

AI texts a check-in when a follow-up is due, then moves the card down the ladder.

  • Today7
  • 7 Day2
  • 14 Day21
  • 1 Month94
  • 3 Month119
  • 6 Month43
  • 1 Year19
Follow-up AI moves cards down the ladder: ONAI follow-up texts: ON
  • acq-followupRunning

    AI writes and sends long-term follow-up texts to sellers

    ran 16m ago · next in 43m
    “SKIP 212 N Elm St, Muncie, IN no contact on the card”
  • callback-chaseShadow

    A2: seller callback passed with no call logged -> VA task, then Korbin after 1h (SHADOW)

    ran 4m ago · next in 10m
    “SHADOW - nothing written: {'task_va': 0, 'escalate_korbin': 0}”
  • followup-watchRunning

    Alerts if the follow-up engine silently stops

    ran 22m ago
    “The follow-up engine is running.”

Underwriting & offers

19 open cards

Acq reps comp, make offers. Friday review grades the VAs' leads.

  • Underwriting14
  • Offer Made / Follow-up5
  • lead-reviewRunning

    Friday: grades the VAs' leads (asking <= 70% of ARV + motivation)

    ran 2d ago · next in 4d

Seller contract

1 open cards

Offer Accepted -> PSA sent and signed. Auto-send is built but OFF (last step of the rebuild).

  • Offer Accepted0
  • Contract Sent1
  • Contract Signed0
Contract auto-send: OFF
  • contracts-morningDry run

    Daily dry report of seller PSAs and buyer Assignments ready or blocked

    ran 3h ago · next in 20h
  • post-contract-auditRunning

    After a contract is signed, checks the deal has every field dispo needs; alerts gaps

    ran 1h ago
    “Every signed deal has what dispo needs.”
  • closing-datesRunning

    Copies each deal's closing date from the PandaDoc PSA into GHL

    ran 3h ago
    “set=0 this run. still no PSA match for: []”
  • welcome-packetsRunning

    On newly signed deals, builds a welcome packet for review and texts Alexis

    ran 23m ago
    “2026-10-19 12:00 mode=live queued=0 alerted=0 sent=0 | Spencer Sms 1:pipe HTTP Error 401: Unauthorized ; Spencer SMS 2:pipe HTTP Error 401: Unauthorized ; send ”
  • pandadoc-pollerRunning

    Checks PandaDoc every 30 min for signed Sourced liability forms, archives PDF, alerts

    ran 24m ago
    “[2026-10-19T11:58:14] Patricio Lastra (xcXojvL6W3adEsVNXH5dzS): API error HTTP 403”

Hand-off to dispo

0 open cards

A signed deal crosses into KG Dispo with its Property record.

  • Send to Dispo0
  • acq-property-ensureRunning

    Gives every acq card its Property record (matched by house number + street)

    ran 8m ago · next in 1m
    “created 0 Property record(s)”
  • acq-to-dispoRunning

    Hands a signed deal from acq accounts into KG Dispo

    ran 1m ago
    “handed off: 0”
  • tc-syncRunning

    Copies 'Contract Signed' deals into the TC account

    ran 7m ago
    “Done. New: 0 Errors: 0 Total synced ever: 69”
  • dispo-syncRunning

    Old cross-account push of Contract Signed deals into Dispo Acc (Spencer accounts)

    ran 7m ago
    “Done. New: 0 Errors: 0 Total synced ever: 159”
  • dispo-tc-reconcileRunning

    Double-checks every trigger-stage opp actually landed in Dispo/TC

    ran 31m ago
    “[2026-10-19T11:52:12] ✅ ALL CLEAR — Dispo has received everything sitting in its trigger stages.”

KG Dispo - marketing

3 open cards

Bowe works buyers on ACTIVE deals only; buyer blasts and walkthroughs.

  • New Contract Signed0
  • Dispo Started1
  • Buyer Walkthrough0
  • Buyer Offer Made2
Bowe (dispo rep): ONDaily deal texts to buyers: ONCross-send live deals to engaged buyers: ON
  • boweRunning

    Bowe, the dispo rep: texts buyers on active deals

    ran just now
    “done. 0 handled {} | 0 left for a human”
  • dispo-crossrefRunning

    has not run · next in 1h
  • deal-followupRunning

    Asks interested buyers on active deals if they are still interested

    ran 4h ago · next in 6m
    “asked 0 · skipped 137”
  • dispo-push-liveRunning

    has not run · next in 18h
  • dispo-ladderRunning

    Escalation ladder: how hard each deal is marketed and what comes next

    ran 4h ago · next in 19h
    “DRY RUN — nothing sent, nothing enrolled, no credits spent.”
  • blast-coverageRunning

    Alerts when an active deal is not actually being marketed

    ran 20m ago · next in 39m
    “alerted on 20 change(s)”
  • dispo-offersRunning

    Turns buyer offers in texts into records and alerts

    ran 3m ago
    “No offers in that window.”
  • walk-remindersRunning

    Texts buyers 2h before and 2h after a walk

    ran 8m ago · next in 6m
    “24 booked walk(s) · 0 reminder(s) due now”
  • walk-lifecycleRunning

    Moves walks through scheduled/confirmed/completed/no-show; day-before/after texts

    ran 2m ago
    “0 walkthrough(s) needed something”
  • dispo-props-syncRunning

    Builds Bowe's deal list from the GHL property records

    ran 1m ago
    “wrote 64 deals -> /root/ghl-kpi/dispo_deals.json (backup dispo_deals.json.bak.20261019-122124)”

Buyer contract & closing

1 open cards

Buyer Offer Accepted -> Assignment -> Closing pipeline -> paid.

  • Buyer Offer Accepted0
  • Buyer Contract Sent0
  • Buyer Contract Signed0
  • Closing Contract Signed0
  • Escrow1
  • Closing Scheduled0
  • closing-watchRunning

    Flags deals past their closing date

    ran 7h ago · next in 16h
    “COULD NOT TEXT: HTTP Error 400: Bad Request”
  • jv-pollerRunning

    Picks up new JV Deal Board submissions, creates the dispo card, alerts Korbin/Spencer

    ran 29m ago
    “✓ processed 3746 Chapel Hill Rd, Douglasville, GA 30135 (contact EGUMQvsI7wJAlxN1nER7, opp None)”

Compliance guard

  • auto-pauseRunning

    Pauses an account's senders 20 min after an opt-out warning if nobody acts

    ran 1m ago
    “no pending alerts”
  • optout-watchRunning

    Warns Korbin + Spencer when an account's opt-out rate nears carrier suspension

    ran 29m ago
    “no accounts over opt-out warning threshold”
  • sms-restrictionRunning

    Instant alert when an account-level carrier/A2P restriction hits SMS 1/2/3 or KG Dispo

    ran just now
    “[12:22] restriction alerts: 0”
  • ghl-email-watchRunning

    Alerts Korbin + Joad on GHL compliance emails (opt-out/suspension/A2P)

    ran 1m ago
    “ghl_email_watch: 3 accounts, scanned 290, fired 0”
  • suppress-sweepRunning

    Every 12h tags people who said no/stop as opted-out/not-interested

    ran 19m ago
    “1 never again · 31 not now”
  • optout-backfillRunning

    Every 4h re-scans old threads for people who said stop and were texted anyway

    ran 2h ago
    “133 exposed · 80 suppressed”

Health & checks

  • health-checkRunning

    Morning health text

    ran 4h ago · next in 19h
    “🟠 KG Systems Mon Oct 19 | dispo-rep OK · missed X · syncs OK · resends X · discord OK · awake OK · dispo-live OK · mail OK · PPC leads today: 0”
  • accounts-checkRunning

    Daily: the account config still matches GHL

    ran 3h ago
    “accounts-check.service: Unit configuration has fatal error, unit will not be started.”
  • heartbeatRunning

    Checks the wholesale system works right now and alerts on breakage

    ran 24m ago
    “notified”

Switches: what is on or off

  • OFF Seller auto-enrollKorbin: 'lets stop the auto enroll for acq accounts' (blast-replenish disabled) | Korbin 2026-10-19: set up auto enroll for sellers AND buye
  • OFF Auto-resendKorbin: resends only when he asks, for the accounts he names
  • OFF Contract auto-sendKorbin: auto-send contracts LAST, once the system is consolidated. Pipelines run dry.
  • ON Daily deal texts to buyersKorbin: 'make sure bowe sends the other deals we have so we can get all 5 sold'. dispo-push-live daily 10:05 ET, 400 buyers per deal (cautio
  • ON Bowe (dispo rep)works only active deals (property deal_status=active)
  • ON AI follow-up textsacq-followup sends AI follow-ups to sellers; inventory flagged it for Korbin to confirm
  • OFF iMessageDiscord only
  • OFF Buyer auto-enrollKorbin: buyer auto enroll comes later, with seller auto enroll, after consolidation
  • OFF Automation moving acq cardsKorbin: 'i want you to not move any oppurtunites on acq side thats VA and Acq jobs'. No automation moves an acq card's stage; VAs and acq re
  • ON Follow-up AI moves cards down the ladderKorbin: 'foillow up ai can move' - the ONE exception to acq_card_moves: after the AI sends a follow-up it moves the card down the Follow-Up
  • ON Cross-send live deals to engaged buyersKorbin: 'make sure bowe is dispoing all deals that we have cross sending the current live deals'. VPS dispo-crossref 3x/day, max 150 buyers/
  • ON bowe_handoff_after_sheetKorbin: 'once bowe sends proip details put human handling for now so i can take over'. After a sheet goes out Bowe tags human-handling and p

Card counts are open cards across Korbin SMS 1-4 (acq stages) and KG Dispo (dispo and closing stages). Jobs on the Mac are not shown yet.