flowchart TD
subgraph INTAKE["INTAKE โ thefounders.group (Alex's domain, free for all founders)"]
FOUNDER["Founder visits thefounders.group"]
DECK_UP["Upload Pitch Deck
PDF / PPTX / DOCX up to 50MB
or Google Slides link
or apply without one"]
AI_SCORE["Alex's AI auto-analyzes deck
~60 seconds
Scores across 10 investor categories:
problem ยท solution ยท market ยท traction
team ยท business model ยท โฆ"]
end
subgraph SHARED_LAYER["SHARED LAYER โ AEP + Google Drive (Alex owns; Arbor reads)"]
AEP["AEP (Alex)
Master founder + investor DB
External โ Alex owns and controls"]
DRIVE_SRC["Google Drive (BWI / TF.G โ mid-migration)
Founder decks + pitch assets"]
PORTAL["Founder Portal
thefounders.group dashboard"]
DISCORD["Discord Community
Mentoring + peer network"]
end
subgraph FREEMIUM["ENGINE 1 โ TFG FREEMIUM (free tier, self-serve, Alex)"]
FREE_MATCH["AI Investor Match
Self-serve inside Portal
1,200+ angel network"]
FREE_REQ["Request Warm Introduction
Founder initiates via Portal"]
FREE_MENTOR["Mentoring Community
Discord + peer support"]
FREE_INTRO["Intro sent (self-serve path)
Via TFG platform โ free"]
end
subgraph ARBOR_PULL["ARBOR PULL โ Read-only extract from AEP + Drive (FRICTION)"]
CODEX_FRICTION["FRICTION: Codex read-only
AEP connection not yet set up
Manual read-only export in the interim"]
LOCAL_F["matcher_input/f/id.json
Founder profiles
Exported from AEP โ can go stale"]
LOCAL_P["matcher_input/pairs/id.json
Match rationale
Exported from AEP โ can go stale"]
LOCAL_STALE["FRICTION: Stale middle layer
No automated sync from AEP
Manual re-export required"]
end
subgraph ARBOR_PROC["ENGINE 2 โ ARBOR WHITE-GLOVE / PAID (Arbor IR, Tim's machine)"]
FYXER["Fyxer / Call Recordings
Auto-recorded calls"]
HS["HubSpot CRM
Deal flow tracking โ not integrated with D1"]
SLACK["Slack
Team coordination + feedback"]
GMAIL["Gmail (Ben personal)
benjamincwiggins@gmail.com
Intros sent from here"]
MI["meeting-ingestor skill
Transcript to structured JSON
+ Markdown summary"]
MATCHER["Matcher
Founder + investor JSON
โ scored ranked pairs"]
DRAINER["intro-queue-drainer skill
Polls D1 for queued requests
with no draft yet"]
IID["investor-intro-drafter skill
2-stage Ben-voice draft
(Stage 1: feeler, Stage 2: 3-way)"]
BV["ben-voice skill
Voice corpus loaded
by intro-drafter"]
LI_SK["linkedin-post-writer skill
Founder-voice posts"]
IR_SK["ir-newsletter-writer skill
Founder-voice IR newsletter"]
D2GD["draft-to-googledoc skill
Approved draft to Google Doc
Stamps doc_url back to D1"]
LAPTOP_GATE["FRICTION: Laptop dependency
Faucet only runs while
Tim has an active session"]
end
subgraph STORE["STORE โ Cloudflare D1 + Pages (behind Access)"]
D1_MF["match_feedback
(verdict, context, reviewer)"]
D1_REQ["requests
(queued to approved pipeline)"]
D1_DRAFTS["drafts
(content, version, status, doc_url)"]
D1_APR["approvals
(copy_edit + final gates)"]
D1_MARKS["marks (kanban, stamps)"]
D1_GF["green_flags (positive connection points)
NOT YET IN UI"]
D1_SNAP["entity_snapshot
(frozen profile at draft time)"]
D1_AUD["audit (immutable log)"]
SITE["Arbor Site
arbor-32i.pages.dev
(Cloudflare Access gated)"]
end
subgraph REVIEW["HUMAN REVIEW โ Two parallel pipelines (FRICTION)"]
RQ["Arbor Review Queue
arbor site page โ D1-driven"]
RAF_GDOC["Refael's Google-Doc drafts tab
Separate from Review Queue
NOT unified with D1"]
DUAL_PIPE["FRICTION: Two draft pipelines
D1 Review Queue vs Refael's GD tab
No single source of truth"]
BEN_RATE["HUMAN GATE 1: Ben rates match
good / worth-a-shot / not-a-fit
via Match Review UI"]
COPY_EDIT["HUMAN GATE 2: Copy-Edit
Refael (rafphysic@gmail.com)
or Saviour (registered โ copy_editor / LinkedIn-marketing lead)"]
BEN_FINAL["HUMAN GATE 3: Final Approval
Ben Wiggins
(can skip copy-edit)"]
end
subgraph OUTPUTS["OUTPUTS โ Fragmented across two Drives"]
TFG_DRIVE["TF.G Drive (canonical now)
0ACvmtwPtxab0Uk9PVA
Alex's drive per ADVISORY.md"]
BWI_DRIVE["BWI Drive ARCHIVE ONLY
Still partly in use
Migration half-done"]
DRIVE_HALF["FRICTION: BWI-to-TFG
migration incomplete
(Adam's ongoing work)"]
FB_LOG["feedback.jsonl (raw + parsed)
Ben's verdicts ยท rules ยท green flags
Biweekly to Alex โ the SHARED learning spine"]
INTRO_SEND["Intro sent
Ben's personal Gmail
Manual โ never auto-sent"]
LI_OUT["LinkedIn posts
Founder publishes"]
SLACK_HAND["Slack hand-off
Team notified on delivery"]
end
%% Intake flow
FOUNDER --> DECK_UP
DECK_UP --> AI_SCORE
AI_SCORE -->|"scores stored"| AEP
AI_SCORE -->|"deck assets stored"| DRIVE_SRC
AI_SCORE -->|"founder accesses"| PORTAL
AI_SCORE -->|"joins"| DISCORD
%% Freemium engine
PORTAL --> FREE_MATCH
DISCORD --> FREE_MENTOR
FREE_MATCH --> FREE_REQ
FREE_REQ --> FREE_INTRO
FREE_MENTOR -.->|"community support"| PORTAL
%% Arbor pull from shared layer (read-only, manual)
AEP -.->|"Manual read-only export
(Codex r/o not yet set up)"| CODEX_FRICTION
CODEX_FRICTION -->|"manual export"| LOCAL_F
CODEX_FRICTION -->|"manual export"| LOCAL_P
LOCAL_F -.->|"can go stale"| LOCAL_STALE
LOCAL_P -.->|"can go stale"| LOCAL_STALE
DRIVE_SRC -.->|"manual reference"| MI
%% Arbor processing
FYXER -->|"Recording auto-captured"| MI
GMAIL -.->|"Thread context"| DRAINER
SLACK -.->|"Feedback + rules"| ARBOR_PROC
LOCAL_F --> MATCHER
LOCAL_P --> MATCHER
LOCAL_F --> DRAINER
LOCAL_P --> DRAINER
LOCAL_F --> IID
LOCAL_P --> IID
MI -->|"offering_breakdown"| IR_SK
MI -->|"transcript + voice"| LI_SK
%% Matcher to D1 via site
MATCHER -->|"match pairs"| SITE
SITE -->|"POST /api/feedback"| D1_MF
SITE -->|"POST /api/requests (good verdict)"| D1_REQ
SITE -->|"GET /api/queue"| DRAINER
%% Drainer + drafting
DRAINER -->|"pulls queued request"| D1_REQ
DRAINER -->|"runs"| IID
IID -->|"loads"| BV
IID -->|"POST /api/drafts"| D1_DRAFTS
D1_SNAP -->|"frozen at draft time"| D1_DRAFTS
LI_SK -->|"draft"| D1_DRAFTS
IR_SK -->|"draft"| D1_DRAFTS
%% D1 to review
D1_DRAFTS --> RQ
RQ --> BEN_RATE
BEN_RATE -->|"good verdict"| D1_REQ
RQ --> COPY_EDIT
RAF_GDOC -.->|"parallel track not in D1"| COPY_EDIT
RQ -.->|"not unified"| DUAL_PIPE
RAF_GDOC -.->|"not unified"| DUAL_PIPE
%% Review gates
COPY_EDIT -->|"POST /api/approvals copy_edit"| D1_APR
D1_APR --> BEN_FINAL
BEN_FINAL -->|"POST /api/approvals final"| D1_APR
BEN_FINAL -->|"approved"| D2GD
LAPTOP_GATE -.->|"blocks drafting + D2GD"| D2GD
%% Outputs
D2GD -->|"creates Doc"| TFG_DRIVE
D2GD -.->|"some still going here"| BWI_DRIVE
BWI_DRIVE -.->|"half-done"| DRIVE_HALF
BEN_FINAL -->|"approved โ Ben clicks send"| INTRO_SEND
BEN_FINAL -->|"approved"| LI_OUT
BEN_FINAL -->|"deliverable ready"| SLACK_HAND
GMAIL --> INTRO_SEND
%% Feedback loop
D1_MF -->|"biweekly"| FB_LOG
FB_LOG -->|"sharpens AEP model โ benefits BOTH engines"| AEP
FB_LOG -.->|"Ben's rules + green flags harden Arbor's own curation"| ARBOR_PROC
SLACK -.->|"feedback"| FB_LOG
HS -.->|"separate CRM not integrated with D1"| SITE
%% D1 audit
D1_MF --> D1_AUD
D1_REQ --> D1_AUD
D1_APR --> D1_AUD
D1_REQ --> D1_MARKS
style INTAKE fill:#0F1A2A,stroke:#5BAE97,color:#E8E6E0
style FOUNDER fill:#0F2010,stroke:#5BAE97,color:#E8E6E0
style AI_SCORE fill:#0F2010,stroke:#5BAE97,color:#E8E6E0
style DECK_UP fill:#0F2010,stroke:#5BAE97,color:#E8E6E0
style SHARED_LAYER fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0
style AEP fill:#1C1A26,stroke:#9B8FD8,color:#E8E6E0
style FREEMIUM fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0
style FREE_MATCH fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0
style FREE_REQ fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0
style FREE_MENTOR fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0
style FREE_INTRO fill:#0F1A10,stroke:#5BAE97,color:#E8E6E0
style ARBOR_PULL fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style CODEX_FRICTION fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style LOCAL_STALE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style LAPTOP_GATE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style DUAL_PIPE fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style DRIVE_HALF fill:#3A1A1A,stroke:#C0392B,color:#E8E6E0
style RAF_GDOC fill:#2A1A1A,stroke:#C0392B,color:#E8E6E0
style BWI_DRIVE fill:#2A1A1A,stroke:#C0392B,color:#AAB2C4
style HS fill:#2A2010,stroke:#B5651D,color:#AAB2C4
style ARBOR_PROC fill:#15252A,stroke:#2E6E5E,color:#E8E6E0
style STORE fill:#1C1A26,stroke:#6B5EA8,color:#E8E6E0
style REVIEW fill:#1A1F2A,stroke:#46546F,color:#E8E6E0
style OUTPUTS fill:#201A0A,stroke:#B5651D,color:#E8E6E0