
Person Dossier
- 33 installs
- 61 repo stars
- Updated August 4, 2026
- joelhooks/joelclaw
Build a structured person dossier from email, meeting, and memory history and write it to Vault/Resources when someone is discussed.
About
Builds and refreshes a structured person dossier by pulling communication history from email, meetings, memory, and event logs. A developer uses it when a person is discussed for strategy, follow-up, or relationship context.
- Pulls evidence from Front email, Granola meetings, memory recall, and event logs
- Writes a structured dossier with fixed sections to Vault/Resources/
Person Dossier by the numbers
- 33 all-time installs (skills.sh)
- Ranked #1,197 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/joelhooks/joelclaw --skill person-dossierAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 33 |
|---|---|
| repo stars | ★ 61 |
| Last updated | August 4, 2026 |
| Repository | joelhooks/joelclaw ↗ |
What it does
Build a structured person dossier from email, meeting, and memory history and write it to Vault/Resources when someone is discussed.
Files
Person Dossier
Build or refresh a dossier whenever an individual is discussed.
Trigger
Run this workflow when a person is mentioned in:
- strategy or planning conversations
- follow-up decisions
- relationship context questions
- opportunity/deal/property discussions
Output Path
Vault/Resources/<Person Name> - Dossier.md
Required Sections
1. All Email Threads 2. Key Topics Discussed 3. Projects Mentioned 4. Properties or Deals Referenced 5. Timeline of Interactions 6. Current Status of Open Items
Workflow
1. Validate runtime and auth
secrets status
secrets lease front_api_token --ttl 15mIf secrets service is down:
secrets serve &2. Resolve identifiers
Collect:
- primary name
- known email(s)
- aliases/handles
Use these as query inputs for all sources.
3. Pull Front threads (primary)
joelclaw email inbox -q "<person name>" -n 200
joelclaw email inbox -q "from:<email-or-handle>" -n 200Read each matching conversation:
joelclaw email read --id <cnv_id>4. Pull Granola meetings
List meetings in a practical window:
granola meetings --range this_week
granola meetings --range this_monthFor each candidate meeting ID:
granola meeting <meeting_id>
granola meeting <meeting_id> --transcript5. Pull memory context
joelclaw recall "<person name> <company> <project>" --limit 20 --min-score 0.25
joelclaw recall "<person email or alias>" --limit 206. Pull event timeline context
joelclaw events --hours 720 --count 200
joelclaw events --prefix meeting --hours 720 --count 2007. Normalize extracted data
Populate these buckets from evidence:
- email threads: subject, conversation id, participants, last activity date
- topics: recurring discussion themes
- projects: named initiatives
- properties/deals: assets, opportunities, transactions
- timeline: dated interaction entries by channel
- open items: owner, status, due date, next step
8. Create or update dossier markdown
If file does not exist: create from template.
If file exists: update in-place.
Update rules:
- append new timeline entries without removing older ones
- dedupe by stable key (
channel + source_id + date + summary) - merge open item status updates instead of creating duplicates
- keep
VerifiedandInferredlabels on each material claim - refresh
Last Updatedtimestamp
9. Record evidence and confidence
Each section must indicate provenance:
Verified from Front threadVerified from Granola meetingInferred from memory/event context
Never present inferred content as verified.
10. Blocker handling
If blocked:
1. record exact technical error text 2. attempt one fallback source (joelclaw events or joelclaw recall) 3. produce a blocked dossier with explicit gaps 4. include exact next-run commands
No silent partials.
Dossier Template
# <Person Name> - Dossier
## Identity
- Name: <name>
- Emails: <email1>, <email2>
- Aliases: <alias1>, <alias2>
- Last Updated: YYYY-MM-DD
## 1. All Email Threads with <Person Name>
- Thread: <subject>
- Conversation ID: <cnv_id>
- Last activity: YYYY-MM-DD
- Evidence: Verified from Front thread
## 2. Key Topics Discussed
- <topic> (Verified/Inferred)
## 3. Projects Mentioned
- <project> (Verified/Inferred)
## 4. Properties or Deals Referenced
- <item> (Verified/Inferred)
## 5. Timeline of Interactions
- YYYY-MM-DD | <channel> | <summary> | <source_id>
## 6. Current Status of Open Items
- Item: <description>
- Owner: system owner | other person | unknown
- Status: open | blocked | closed
- Next step: <text>
- Due: YYYY-MM-DD | unknown
- Evidence: <source>
## Evidence Index
- Front conversation IDs: <list>
- Granola meeting IDs: <list>
- Memory queries: <list>
- Event windows: <list>
## Blockers
- <none or error text>Quick Build Command Set
# 1) Front discovery
joelclaw email inbox -q "<person name>" -n 200
# 2) Front thread read
joelclaw email read --id <cnv_id>
# 3) Granola context
granola meetings --range this_month
granola meeting <meeting_id> --transcript
# 4) Memory context
joelclaw recall "<person name>" --limit 20
# 5) Event timeline
joelclaw events --prefix meeting --hours 720 --count 200Quality Bar
- No fabricated facts
- Open items always include owner
- Timeline uses concrete dates whenever available
- Verified and inferred content clearly separated
interface:
icon_small: "./assets/small-logo.svg"
icon_large: "./assets/large-logo.png"
<svg width="16" height="16" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="JoelClaw icon">
<defs>
<clipPath id="circle-clip">
<circle cx="256" cy="256" r="248" />
</clipPath>
</defs>
<circle cx="256" cy="256" r="248" fill="#0a0a0a" />
<g clip-path="url(#circle-clip)">
<path fill="#ff1493" d="M175.656 22.375l-48.47 82.094c-23.017 4.384-43.547 11.782-60.124 22.374-24.436 15.613-40.572 37.414-45.5 67.875-4.79 29.62 1.568 68.087 24.125 116.093 93.162 22.88 184.08-10.908 257.25-18.813 37.138-4.012 71.196-.898 96.344 22.97 22.33 21.19 36.21 56.808 41.908 113.436 29.246-35.682 44.538-69.065 49.343-99.594 5.543-35.207-2.526-66.97-20.31-95.593-8.52-13.708-19.368-26.618-32-38.626l14.217-33-41.218 10.625c-8.637-6.278-17.765-12.217-27.314-17.782l-7.03-59.782-38.157 37.406c-12.418-5.186-25.184-9.804-38.158-13.812l-8.375-71.28-57.625 56.5c-9.344-1.316-18.625-2.333-27.812-2.97l-31.094-78.125zM222 325.345c-39.146 7.525-82.183 14.312-127.156 11.686 47.403 113.454 207.056 224.082 260.125 87-101.18 33.84-95.303-49.595-132.97-98.686z" />
</g>
</svg>