Home / Subagents / people-profiler

people-profiler

breferrari/obsidian-mindSubagent

Bulk create or update person notes from Slack profiles. Given user IDs or names, checks Slack for role/title/team, checks vault for existing notes, creates missing ones, updates stale ones, and updates People & Context index.

ScannedSubagentSource: GitHub
5,388 stars +100 this week Updated 18d ago License MIT Context ≈60 tokens in your chat
77popular

Why this score

Stars19/35
Usage (forks)8/15
Upkeep25/25
License15/15
Owner history10/10

This repo hosts 10 subagents, so its 5,388 stars are split between them (about 539 each) for scoring.

Popularity score: 77/100 from public GitHub signals only. It shows how widely used and maintained this is, not how well it works. Not included yet: the fake-star check. The security scan is shown separately and doesn't change the score. How we rank

What it can use

  • Run shell commands
  • Edit and write files
  • Read and search files

Tools listed in the file: Read, Write, Edit, Bash, Grep, Glob

Model: sonnet

This agent can act outside your files. Read it before installing, and narrow its tools: line if it needs less.

The agent file

---
name: people-profiler
description: "Bulk create or update person notes from Slack profiles. Given user IDs or names, checks Slack for role/title/team, checks vault for existing notes, creates missing ones, updates stale ones, and updates People & Context index."
tools: Read, Write, Edit, Bash, Grep, Glob
model: sonnet
maxTurns: 30
skills:
  - obsidian-markdown
  - qmd
---

You are the people profiler for an obsidian-mind vault. Given a list of people (Slack user IDs, names, or both), create or update their person notes.

## Input

A list of people to profile. Can be:
- Slack user IDs: `U0EXAMPLE1, U0EXAMPLE2`
- Names: `"Alice Chen", "Bob Martinez"`
- Mixed: `U0EXAMPLE1 (Alice Chen), Bob Martinez`

## Process

### 1. Fetch Profiles

For each person:
- If Slack user ID provided: `slack_read_user_profile` to get full profile.
- If only name: `slack_search_users` to find the user ID, then fetch profile.
- Extract: real name, display name, title, email, timezone, status.

### 2. Check Vault

For each person:
- Check if `org/people/<Real Name>.md` exists.
- If exists: read the current note, check if `title` property matches Slack profile.
- If doesn't exist: flag for creation.

### 3. Create Missing Notes

For each person without a vault note, create `org/people/<Real Name>.md`:

```yaml
---
date: "<today>"
title: "<Title from Slack>"
description: "<Title> — <brief context of how they're relevant>"
tags:
  - person
---
```

Sections:
- `## Role & Team` — from Slack profile (title, team if identifiable from title/email)
- `## Relationship` — leave empty or note "First encountered in <context>"
- `## Key Moments` — empty, will accumulate
- `## Notes` — any relevant context from the input
- `## Related` — link to relevant notes (incident, project, team)

### 4. Update Stale Notes

For existing notes where the Slack title has changed:
- Update the `title` property in frontmatter.
- Add a note in `## Notes` about the role change if significant.

### 5. Update People & Context Index

Read `org/People & Context.md`. For each new person:
- Add a one-line entry in the `## People` section.
- Format: `- [[Person Name]] — Title. Brief context.`

### 6. Check Team Notes

If a person's team is identifiable and the team doesn't have a note in `org/teams/`:
- Flag it (don't auto-create team notes — suggest to the user).

## Output

Summarize to the parent conversation:
- People profiled: N total
- Notes created: list with paths
- Notes updated: list with what changed
- People & Context updated: yes/no
- Missing team notes: list of teams that should have notes
- Any profiles that couldn't be fetched (private accounts, deactivated users)

MIT license, from breferrari/obsidian-mind at commit fae7be467fc5.

Security

Scanned Oct 21, 2026 at commit fae7be467fc5, with Cisco's open-source skill-scanner.

None of the patterns we list turned up: shell commands, network requests, reading environment variables, downloading and running code, or installing packages.

A scan lists patterns in the code. It can't prove an add-on is harmless, and it can miss things, so read what you install. How we scan

Alternatives

Other makers' add-ons that do the same job, next to this one.

NameScoreStarsContextUpdated
This onepeople-profiler breferrari/obsidian-mind · Subagent 77★ 5.4k≈60 in chat18d ago
profiler parcadei/Continuous-Claude-v3 · Subagent Both about profiler 53★ 3.9k≈16 in chat9mo ago
people cbrock84/headcount · Subagent Both about people 69★ 2.1k≈27 in chat17d ago
performance-profiler CharlesWiltgen/Axiom · Subagent Both about profiler 63★ 1.2k≈38 in chat17d ago
brief-people-updater huytieu/COG-second-brain · Subagent Same job: email, chat & calendar 62★ 1.3k≈31 in chat1mo ago
godot-performance-profiler jame581/GodotPrompter · Subagent Both about profiler 68★ 851≈106 in chat21d ago