πŸͺ For Kevin Clark Β· Dakar Foundation

The second brain
for your media nonprofit.

An Obsidian knowledge graph + Claude Code agent + Supabase backbone that captures every apprentice, every employer partner, every event, every sponsor β€” and a voice AI named Linna who talks about it. Built the way you asked for it.

β€”
Atomic notes
One concept, one file, wikilinked
Wikilinks
Cross-references between notes
β€”
Folder hubs
From Tracks to Sponsors
6
Tracks live
In Supabase + the vault
01 Β· The build

Six pieces. One brain.

Andrej Karpathy's "AI reads, summarizes, extracts relationships, builds the graph autonomously" β€” except instead of a personal journal, it's the entire operational map of Dakar Foundation.

1

Hubs + atomic notes

Your vault has six hub notes β€” Dakar Pathway, Cinema Basel West, Employer Partners, Sponsors, Academic Partners, Compliance β€” and one file per apprentice, employer, sponsor, event. One concept, one file.

2

Wikilinks instead of folders

Every note [[wiki-links]] to related notes. Andre Robinson's apprentice file links to [[Lighting & Grip]], [[LA City College]], and [[Dakar Pathway]]. Obsidian renders the relationships in Graph View.

3

Claude Code agent on the inbox

Drop emails, PDFs, or notes into 99-Inbox/. A Python harness running Claude Opus 4.7 reads each one, extracts entities (people, partners, events), writes atomic notes, and wikilinks them automatically.

4

Supabase as the structured spine

The same data lives in a Supabase Postgres β€” 11 tables for tracks, apprentices, employers, sponsors, equipment, events, placements, sponsor-track sponsorships, compliance items. Wikilinks become foreign keys.

5

Smart Connections + Dataview

The Smart Connections plugin generates embeddings on every note for semantic search. Dataview turns the vault into a queryable database β€” "show me every active apprentice in the AI in Media track" returns a live table.

6

Linna β€” the voice layer

A Vapi voice agent (Claude Haiku + ElevenLabs) trained on the entire vault. Students, employers, sponsors, and journalists can phone in and Linna routes them. Same knowledge, two surfaces.

02 Β· The graph view

Every note. Every link. Every relationship.

This is your vault's live graph. Drag a node. Hover for the excerpt. Watch clusters form around hubs β€” apprentices around tracks, tracks around the Dakar Pathway, partners around sponsors.

Drag to pan Β· scroll to zoom Β· hover a node for details Β· click to highlight links
03 Β· The folder structure

Numbered folders. Predictable paths.

Obsidian's lightest convention β€” numbered top-level folders so the index reads itself.

04 Β· Sample notes

YAML frontmatter + body + wikilinks.

Click a note to see its raw markdown β€” that's what the agent reads, that's what Smart Connections embeds, that's what Dataview queries.

Pick a note on the left to view its raw markdown β†’
05 Β· The Claude agent loop

How new information becomes structured knowledge.

Drop a CSV of new sponsor leads, a PDF of a partnership agreement, or a forwarded email into 99-Inbox/. The rest happens by itself.

πŸ“₯
Inbox
Email, PDF, voice memo, screenshot β€” drop it into 99-Inbox/
β†’
πŸ€–
Claude reads
Opus 4.7 extracts people, partners, events, dates, ask types
β†’
πŸ“
Atomic notes
One file per entity, YAML frontmatter, wikilinked to hubs
β†’
πŸ•ΈοΈ
Graph updates
Obsidian Graph View re-clusters Β· Smart Connections re-embeds
β†’
πŸ—„οΈ
Supabase synced
Structured rows posted via service_role Β· Linna picks them up
06 Β· The stack

Three layers. Zero lock-in.

Your data lives in plain markdown + plain Postgres. Anything we build on top is replaceable. You're not renting your knowledge.

πŸ“š

Knowledge layer

Obsidian vault β€” plain markdown files on your filesystem. Wikilinks, YAML frontmatter, atomic notes. Open it in any text editor, sync it to iCloud, version it in Git.

ObsidianSmart ConnectionsDataviewCanvas
πŸ€–

Agent layer

Claude Code + Claude Opus 4.7 running locally. Reads the inbox, extracts entities, writes notes, wikilinks them, archives sources. One Python harness. Configurable in plain markdown.

Claude Opus 4.7Claude CodePython
πŸ—„οΈ

Structured layer

Supabase Postgres β€” 11 tables modeling the entire Dakar operation. Public read on academic partners + events. Service-role for staff CRUD. Foreign keys mirror the wikilinks.

SupabasePostgresPostgRESTpgvector
πŸŽ™οΈ

Voice layer

Linna β€” a Vapi-powered voice agent with Grace's voice clone. Routes students, employers, sponsors, journalists. Available 24/7 from any phone or browser.

VapiClaude HaikuElevenLabsDeepgram
🌐

Marketing layer

Your existing dakarpathway.lovable.app stays in place. This tour deploys alongside it. Plug into your CRM, your email, your social β€” without re-architecting anything.

LovableVercelResend
πŸ”

Compliance layer

DOL + CA DAS audit-ready exports out of Supabase. Apprentice rosters, hours logged, employer placements, certifications β€” queryable in plain SQL when the auditor calls.

DOLCA DASLA CountyCOYA

Kevin β€” this is yours.

The vault, the agent, the Supabase, the voice layer β€” all wired and running. Next move is a 30-minute call to walk you through running it locally, dropping your first real email into the inbox, and watching it become structured knowledge.