Onboard Person
SkillFiles & storageCreate or enrich a Teams/People/@Name.md file with metadata pulled from external sources (an ATS for hiring data, a profile source for bio). Replaces manual data entry for newly-hired teammates.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Onboard Person skill
What this skill tells your AI
The instructions your AI receives, as published by benoror/obsidianos_work in .agents/skills/onboard-person/SKILL.md and read by ahel’s review.
Usage
/onboard-person <Name>— Create or enrichTeams/People/@<Name>.md. Pulls from available MCPs (an applicant-tracking system for hiring data, a professional-network profile source for bio)./onboard-person @<Name>— Same; bracket-less form also accepted./onboard-person <Name> --candidate— Treat as a candidate stub (lower-confidence frontmatter, parked inTeams/People/Candidates/).
Why this skill exists
When a new teammate joins, manually creating their @Name.md file means hopping between your ATS, a profile source, and the vault to copy FullName, Team, Location, Start Date, and so on. This skill consolidates the data pull and stub creation into one prompt.
It's complementary to /people-stubs: that one creates empty stubs from unresolved wikilinks; this one fills out a single stub with real metadata.
Workflow
Step 1: Check what exists
Teams/People/@<Name>.mdexists? → enrich mode (add missing properties, never overwrite existing ones)- Doesn't exist? → create mode
Step 2: Gather metadata
Try the following sources in order, accumulating what each returns. Which MCPs are available depends on your setup — examples below:
| Source | MCP / tool | Pulls |
|---|---|---|
| ATS (if MCP available, e.g. Greenhouse) | the ATS's MCP tools (when set up) | FullName, Role, Start Date, Hiring manager, Team (mapped from job → team) |
| Profile source (if MCP available, e.g. LinkedIn) | the profile MCP (when set up) | FullName, Location, Job title, Profile URL |
| Manual fallback | Prompt the user | Whatever's missing |
If neither MCP is set up yet, gracefully fall back to manual input — prompt the user for each property one at a time, defaults filled in from the wikilink display name (e.g. [[@Jane Doe]] → FullName: Jane Doe).
Step 3: Resolve Team
Use known mappings (e.g. eng membership → [[+Engineering]], design → [[+Design]], etc.). Cross-reference with Teams/+TeamName.md files via obsidian list folders path=Teams to confirm the team file exists.
If team is ambiguous, ask the user.
Step 4: Write the file
Use obsidian create path="Teams/People/@<Name>.md" content="<frontmatter + body>". Frontmatter shape:
---
FullName: <Full Name>
Team: "[[+<TeamFile>]]"
Location: <Country flag emoji>
Office: <City, if applicable>
Start Date: <YYYY-MM-DD>
created: <ISO 8601 with offset>
---
#team-<short> #<role-tag>
Body: usually empty for new stubs. If pulled from a profile source, add a single-line bio.
Step 5: Verify
Run obsidian property:read name=FullName path="Teams/People/@<Name>.md" to confirm the write. If --candidate, ALSO verify the file is in Teams/People/Candidates/.
Step 6: Commit
See /commit. Commit message: chore(people): onboard @<Name> (<Team>).
Edge Cases
- MCPs not yet set up: skill falls back to interactive prompting. Note in output: "ATS MCP not configured — used manual entry. Set up via /mcp."
- Conflicting data: if the ATS says Team A but the user manually says Team B, prefer manual input. Log the conflict.
- Name collision: if
Teams/People/@<Name>.mdexists with non-empty content, switch to enrich mode (additive only, no overwrites). - Candidate handling: if
--candidate, write toTeams/People/Candidates/@<Name>.mdinstead. This keeps the mainTeams/People/clean for actual teammates and prevents candidates from pollutingPeople.baseActive view (which filters byfile.folder == "Teams/People"and would not match a sub-folder).
Important Notes
- Never overwrite an existing non-empty property. Use enrich (fill blanks) only.
- The skill creates a file; subsequent skills (like
/fill-participants) consume it. Order matters when bulk-onboarding from a fresh batch of interview notes. - Candidates folder filtering: ensure
People.baseActive view filter (file.folder == "Teams/People") excludes sub-folders. If not, candidates will show up.
Signals
- GitHub stars
- 165
- Forks
- 13
- Last commit
- Jun 2026
Advanced
- Catalog kind
- skill
- Gateway key
onboard-person- Source
- github.com/benoror/obsidianos_work