Research Person
Turn a name into a useful, honest People dossier in the vault — the kind of note that makes the next
conversation, intro, or working relationship go better. Built for Carl's relationship KB: real friends and
colleagues, researched from public sources only, for his own private notes.
This is the generalized version of a clean OSINT pass: resolve identity → gather public footprint →
mark confidence → write it where it belongs without trampling what's already there.
When to use
- "Research and fill out their People note"
- "Build a dossier on these folks: "
- Refreshing a stale People note before a meeting, intro, or 1:1
- A new colleague/friend you want context on before working together
When NOT to use
- A public figure for a general report → use
deep-research instead (this skill writes to the People KB)
- Building a profile of Carl himself → use
profile-me
- You only need one fact (current employer) → just search; don't spin up the whole dossier
Ethics & guardrails (read once, apply always)
- Public sources only. Things the person has published or that are openly indexed. No paywalled
background-check services, no scraping behind logins you'd need to deceive to pass, no pretexting.
- For Carl's private KB, to support real relationships — not surveillance of strangers. If the named
person isn't someone Carl plausibly knows or works with, pause and confirm before researching.
- Contain sensitive material. Home address, family members, health, finances, religion, politics,
legal history — even when public — go in a clearly-fenced
## Sensitive block, each line marked
⚠️, never in the orientation blurb or frontmatter. If it isn't relationship-relevant, omit it.
- Identity confidence is a first-class output. A confidently-written note about the wrong person is
the main failure mode. Always state how sure you are it's the right individual.
Phase 0 — Disambiguate before researching
- Take the name plus any disambiguators Carl gives: employer, city, role, email, a LinkedIn/GitHub/site
URL, "the one who…", mutual company.
- Check the vault first. If a note already exists, that note IS the source of truth for who this is —
read it, reuse its identity, and update in place (Phase 4 routing).
- Work:
~/cloud/gdrive/obsidian-vault-carlkibler/halo/People/<Full Name>.md
- Personal:
~/cloud/gdrive/obsidian-vault-carlkibler/People/<Full Name>.md
- If the name is common (e.g. "Mike Smith") and there are no disambiguators and no existing note,
ask Carl for one or two before burning a research pass. Guessing wrong is worse than asking.
- For a batch, run people in parallel (one research effort each) but keep their notes separate.
Phase 1 — Gather the public footprint
Cast wide, then verify. Aim to answer: who they are, what they do, where they've been, what they've made,
how Carl knows them, and what's useful for the relationship.
Search/fetch angles (skip what doesn't apply):
- Identity & current role — employer, title, location. Cross-check 2+ sources before stating as fact.
- Professional history — past roles, companies, education. LinkedIn, company About pages, bios.
- Builders' trail — GitHub/GitLab, personal site/blog, Stack Overflow, npm/PyPI, patents.
- Writing & speaking — talks, papers (Scholar/academia.edu), podcasts, posts, interviews.
- Public social presence — X/Twitter, Mastodon, LinkedIn, Instagram/YouTube if public and relevant.
- News & affiliations — press mentions, boards, orgs, communities, open-source projects.
- Shared context — mutual employers/companies already in the vault, mutual people, overlapping history.
Tooling notes:
- Default to
WebSearch + WebFetch. For JS-heavy or fetch-blocked sources (LinkedIn, academia.edu,
Bandcamp/Spotify, some company sites) drive a real browser (Playwright MCP) and pull innerText,
<meta> tags, and JSON-LD — that's where the verifiable structured data lives.
- When a thread looks deep or multi-source, you can delegate the heavy searching to the
deep-research
workflow and curate its findings into the dossier. This skill owns identity-resolution, confidence,
routing, and the write; deep-research is just a fan-out engine.
- Delegation hygiene. When you fan out research to subagents, instruct each to return its findings
as its final message — never to write files. Only the main run writes (the raw dump and the vault note);
a subagent that tries to write is sandbox-blocked and wastes a turn. Give each a crisp identity anchor and
the exact structured output shape you want back.
- Dump raw findings as you go to the research folder (Phase 4) — URLs, quotes, screenshots. The curated
note links back to it; never make Carl re-run the search to see your evidence.
Phase 2 — Mark confidence on every non-obvious claim
Per vault convention, tag facts inline:
- VERIFIED — stated in a credible source you actually read (cite it).
- INFERRED — reasoned from evidence, not stated outright.
- UNKNOWN — an open question worth listing (these are valuable; they're the next research).
Plus an explicit identity confidence line near the top: Identity match: HIGH | MEDIUM | LOW with the
basis (e.g. "matched via GitHub→personal site→employer; photo + city consistent"). If MEDIUM/LOW, say what
would raise it.
Phase 3 — Compose the dossier
Match the existing People-note shape. Two flavors:
Work colleague (halo/People/) — frontmatter
---
aliases: [Full Name, nicknames, handle]
tags: [person, <role/team>, confidential]
companies: [[Company A]], [[Company B]]
updated: YYYY-MM-DD
---
Personal friend (People/) — frontmatter (no confidential, no work tags)
---
aliases: [Full Name, nicknames]
tags: [person, friend]
updated: YYYY-MM-DD
---
Body (both flavors)
# Full Name
> One-paragraph orientation: who they are, how Carl knows them, the single most useful thing to know.
**Identity match:** HIGH — basis in one line.
## Identity & contact
- Role / employer / location — **VERIFIED** (source)
- Handles: GitHub `x` · site `url` · LinkedIn `url` · X `@x`
- Email / phone — only if Carl already has it or it's openly published
## Background
- Career history, education, notable work — confidence-marked, sourced.
## Public presence & work
- Projects, writing, talks, repos — with links.
## How Carl knows them / shared context
- Mutual companies [[Company]] · mutual people [[Person]] · overlapping history.
## Conversation hooks
- Genuine, specific things to connect on (interests, recent work, shared people). Not flattery.
## Sensitive (public but handle with care) ← only if any exists
- ⚠️ item — why it's fenced.
## Open questions
- [ ] Unknown to resolve — **UNKNOWN**
## See also
[[Related person]] · [[Company]]
## Sources
Distilled from: `<agent-notes raw path>` (date). Key public sources: <list>.
Keep it honest and skimmable: one idea per line, no padding, no LinkedIn-bio voice.
Phase 4 — Write it where it belongs (auto-write, but never clobber)
Routing:
- Existing note anywhere in the vault → update that file in place.
- Else, work/HaloHealth colleague →
halo/People/<Full Name>.md; personal friend → People/<Full Name>.md.
- LOW identity match → do NOT write a vault note. Keep the research + ruled-out namesakes in the
agent-notes dump only, and report back asking Carl for one disambiguator (city, employer, a profile
URL, or "the one who…"). A confident note about the wrong person is the exact failure this skill exists
to avoid. Promote it to a real People note once confidence reaches MEDIUM+ or Carl confirms the identity.
(Exception: if a vault note already exists, leave it and just append the open question.)
- Genuinely ambiguous and no signal → ask Carl which.
Raw research dump (always):
- Work →
~/dev/agent-notes/work/people-research/<name-slug>/ (this symlinks under halo/ and syncs).
- Personal →
~/dev/agent-notes/me/people-research/<name-slug>/.
- Save
findings.md (URLs + quotes + confidence) and any screenshots/exports there.
Merge rule — preserve existing content:
- Personal notes are often freeform logs / 1:1 notes. Do not overwrite them. Read the file, then
insert a
## Background (researched <date>) dossier section (and the other dossier sections) above
or below the existing log, leaving every dated entry and human-written line intact.
- For an existing structured note, enhance in place — update stale facts, add new findings, bump
updated:, append to Open questions. Never drop Carl's hand-written lines.
- Always finish by updating
updated: / adding a (researched YYYY-MM-DD) marker so refreshes are visible.
Cross-link both ways: link every Company and Person the note touches; redlink [[Like This]] for
named-but-missing entities (marks a note worth creating). Weave into hubs like [[_People Directory]] when
present.
Phase 5 — Report back
Tell Carl, per person: where the note landed (path), identity confidence, the 3–5 most useful new
things found, anything fenced as sensitive, and the top open questions. For a batch, a one-line-per-person
summary table.
The handoff version
If Carl wants to hand this to a friend, a colleague, or a different agent/tool that can't run this skill,
give them the standalone copy-paste prompt in references/handoff-prompt.md.
It carries the same methodology and guardrails without the vault-write step.
1---2name: research-person3description: Research a person from public sources into a confidence-marked Obsidian People dossier.4---56# Research Person78Turn a name into a useful, honest **People dossier** in the vault — the kind of note that makes the next9conversation, intro, or working relationship go better. Built for Carl's relationship KB: real friends and10colleagues, researched from **public sources only**, for his own private notes.1112This is the generalized version of a clean OSINT pass: resolve identity → gather public footprint →13mark confidence → write it where it belongs without trampling what's already there.1415## When to use1617- "Research <name> and fill out their People note"18- "Build a dossier on these folks: <list of names>"19- Refreshing a stale People note before a meeting, intro, or 1:120- A new colleague/friend you want context on before working together2122## When NOT to use2324- A public figure for a general report → use `deep-research` instead (this skill writes to the *People* KB)25- Building a profile of *Carl himself* → use `profile-me`26- You only need one fact (current employer) → just search; don't spin up the whole dossier2728## Ethics & guardrails (read once, apply always)2930- **Public sources only.** Things the person has published or that are openly indexed. No paywalled31 background-check services, no scraping behind logins you'd need to deceive to pass, no pretexting.32- **For Carl's private KB**, to support real relationships — not surveillance of strangers. If the named33 person isn't someone Carl plausibly knows or works with, pause and confirm before researching.34- **Contain sensitive material.** Home address, family members, health, finances, religion, politics,35 legal history — even when public — go in a clearly-fenced `## Sensitive` block, each line marked36 `⚠️`, never in the orientation blurb or frontmatter. If it isn't relationship-relevant, omit it.37- **Identity confidence is a first-class output.** A confidently-written note about the *wrong* person is38 the main failure mode. Always state how sure you are it's the right individual.3940---4142<process>4344## Phase 0 — Disambiguate before researching45461. Take the name plus any **disambiguators** Carl gives: employer, city, role, email, a LinkedIn/GitHub/site47 URL, "the one who…", mutual company.482. **Check the vault first.** If a note already exists, that note IS the source of truth for who this is —49 read it, reuse its identity, and update in place (Phase 4 routing).50 - Work: `~/cloud/gdrive/obsidian-vault-carlkibler/halo/People/<Full Name>.md`51 - Personal: `~/cloud/gdrive/obsidian-vault-carlkibler/People/<Full Name>.md`523. If the name is common (e.g. "Mike Smith") and there are **no disambiguators and no existing note**,53 ask Carl for one or two before burning a research pass. Guessing wrong is worse than asking.544. For a batch, run people **in parallel** (one research effort each) but keep their notes separate.5556## Phase 1 — Gather the public footprint5758Cast wide, then verify. Aim to answer: *who they are, what they do, where they've been, what they've made,59how Carl knows them, and what's useful for the relationship.*6061Search/fetch angles (skip what doesn't apply):62- **Identity & current role** — employer, title, location. Cross-check 2+ sources before stating as fact.63- **Professional history** — past roles, companies, education. LinkedIn, company About pages, bios.64- **Builders' trail** — GitHub/GitLab, personal site/blog, Stack Overflow, npm/PyPI, patents.65- **Writing & speaking** — talks, papers (Scholar/academia.edu), podcasts, posts, interviews.66- **Public social presence** — X/Twitter, Mastodon, LinkedIn, Instagram/YouTube *if public and relevant*.67- **News & affiliations** — press mentions, boards, orgs, communities, open-source projects.68- **Shared context** — mutual employers/companies already in the vault, mutual people, overlapping history.6970Tooling notes:71- Default to `WebSearch` + `WebFetch`. For **JS-heavy or fetch-blocked sources** (LinkedIn, academia.edu,72 Bandcamp/Spotify, some company sites) drive a real browser (Playwright MCP) and pull `innerText`,73 `<meta>` tags, and JSON-LD — that's where the verifiable structured data lives.74- When a thread looks deep or multi-source, you can delegate the heavy searching to the **`deep-research`**75 workflow and curate its findings into the dossier. This skill owns identity-resolution, confidence,76 routing, and the write; deep-research is just a fan-out engine.77- **Delegation hygiene.** When you fan out research to subagents, instruct each to **return** its findings78 as its final message — never to write files. Only the main run writes (the raw dump *and* the vault note);79 a subagent that tries to write is sandbox-blocked and wastes a turn. Give each a crisp identity anchor and80 the exact structured output shape you want back.81- **Dump raw findings as you go** to the research folder (Phase 4) — URLs, quotes, screenshots. The curated82 note links back to it; never make Carl re-run the search to see your evidence.8384## Phase 2 — Mark confidence on every non-obvious claim8586Per vault convention, tag facts inline:87- **VERIFIED** — stated in a credible source you actually read (cite it).88- **INFERRED** — reasoned from evidence, not stated outright.89- **UNKNOWN** — an open question worth listing (these are valuable; they're the next research).9091Plus an explicit **identity confidence** line near the top: `Identity match: HIGH | MEDIUM | LOW` with the92basis (e.g. "matched via GitHub→personal site→employer; photo + city consistent"). If MEDIUM/LOW, say what93would raise it.9495## Phase 3 — Compose the dossier9697Match the existing People-note shape. Two flavors:9899### Work colleague (`halo/People/`) — frontmatter100```yaml101---102aliases: [Full Name, nicknames, handle]103tags: [person, <role/team>, confidential]104companies: [[Company A]], [[Company B]]105updated: YYYY-MM-DD106---107```108109### Personal friend (`People/`) — frontmatter (no `confidential`, no work tags)110```yaml111---112aliases: [Full Name, nicknames]113tags: [person, friend]114updated: YYYY-MM-DD115---116```117118### Body (both flavors)119```markdown120# Full Name121122> One-paragraph orientation: who they are, how Carl knows them, the single most useful thing to know.123124**Identity match:** HIGH — basis in one line.125126## Identity & contact127- Role / employer / location — **VERIFIED** (source)128- Handles: GitHub `x` · site `url` · LinkedIn `url` · X `@x`129- Email / phone — only if Carl already has it or it's openly published130131## Background132- Career history, education, notable work — confidence-marked, sourced.133134## Public presence & work135- Projects, writing, talks, repos — with links.136137## How Carl knows them / shared context138- Mutual companies [[Company]] · mutual people [[Person]] · overlapping history.139140## Conversation hooks141- Genuine, specific things to connect on (interests, recent work, shared people). Not flattery.142143## Sensitive (public but handle with care) ← only if any exists144- ⚠️ item — why it's fenced.145146## Open questions147- [ ] Unknown to resolve — **UNKNOWN**148149## See also150[[Related person]] · [[Company]]151152## Sources153Distilled from: `<agent-notes raw path>` (date). Key public sources: <list>.154```155156Keep it honest and skimmable: one idea per line, no padding, no LinkedIn-bio voice.157158## Phase 4 — Write it where it belongs (auto-write, but never clobber)159160**Routing:**161- Existing note anywhere in the vault → **update that file in place.**162- Else, work/HaloHealth colleague → `halo/People/<Full Name>.md`; personal friend → `People/<Full Name>.md`.163- **LOW identity match → do NOT write a vault note.** Keep the research + ruled-out namesakes in the164 `agent-notes` dump only, and report back asking Carl for **one** disambiguator (city, employer, a profile165 URL, or "the one who…"). A confident note about the *wrong* person is the exact failure this skill exists166 to avoid. Promote it to a real People note once confidence reaches MEDIUM+ or Carl confirms the identity.167 (Exception: if a vault note already exists, leave it and just append the open question.)168- Genuinely ambiguous and no signal → ask Carl which.169170**Raw research dump (always):**171- Work → `~/dev/agent-notes/work/people-research/<name-slug>/` (this symlinks under `halo/` and syncs).172- Personal → `~/dev/agent-notes/me/people-research/<name-slug>/`.173- Save `findings.md` (URLs + quotes + confidence) and any screenshots/exports there.174175**Merge rule — preserve existing content:**176- Personal notes are often **freeform logs / 1:1 notes**. Do **not** overwrite them. Read the file, then177 **insert a `## Background (researched <date>)` dossier section** (and the other dossier sections) *above178 or below* the existing log, leaving every dated entry and human-written line intact.179- For an existing structured note, **enhance in place** — update stale facts, add new findings, bump180 `updated:`, append to Open questions. Never drop Carl's hand-written lines.181- Always finish by updating `updated:` / adding a `(researched YYYY-MM-DD)` marker so refreshes are visible.182183**Cross-link both ways:** link every Company and Person the note touches; redlink `[[Like This]]` for184named-but-missing entities (marks a note worth creating). Weave into hubs like [[_People Directory]] when185present.186187## Phase 5 — Report back188189Tell Carl, per person: where the note landed (path), **identity confidence**, the 3–5 most useful new190things found, anything fenced as sensitive, and the top open questions. For a batch, a one-line-per-person191summary table.192193</process>194195## The handoff version196197If Carl wants to hand this to a friend, a colleague, or a different agent/tool that can't run this skill,198give them the standalone copy-paste prompt in [`references/handoff-prompt.md`](references/handoff-prompt.md).199It carries the same methodology and guardrails without the vault-write step.