person-research
Analyze a person's media presence, including their own words and how others discuss them.
Install
mkdir -p .claude/skills/person-research && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/19566" && unzip -o skill.zip -d .claude/skills/person-research && rm skill.zipInstalls to .claude/skills/person-research
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Researches a person across podcasts and YouTube for interview or meeting prep: where they appeared, their own words, who discusses them. Uses arcmira.Key capabilities
- →Analyze person mention frequency and momentum
- →Retrieve recent quotes from a specific speaker
- →List recent media appearances for an individual
- →Summarize how others discuss a person
- →Identify top shows featuring an interviewee
How it works
The skill aggregates data across three lenses: momentum for attention, mentions for appearances, and search for both the person's own words and others' commentary.
Inputs & outputs
When to use person-research
- →Prepare for an interview with a podcast guest
- →Find recent episodes featuring a specific tech leader
- →Analyze how a specific person is perceived in the industry
- →Get a summary of a person's recent talking points
- →Identify the most active shows for a specific interviewee
About this skill
Person research
Three lenses on one person id. momentum gives attention and the shows that mention them most. mentions with mode: "appearances" lists the episodes they were on. search with speakerIds returns their own words; about returns what others said about them.
Run each program with arcmira_execute_read; arcmira_describe has the method reference.
When to use
- prep for an interview, a podcast booking or a meeting with someone
- what has a person said recently, and where
- who talks about a person, and is attention rising
Pick the entity the user meant
Users give names; filters take ids only (ent_..., UC..., 11-character video ids), and a name where an id belongs throws id_required.
- Resolve the exact name the user said, with their own words about it as
context(a bare "Theo" has none). bestandsuggestedgive the id. Asuggestedpick is an assumption: the answer names it, withsuggested.evidenceas the reason.ask: several entities fit, andask.optionsgoes back to the user. No answer at all: the name is not in the index.
For this task:
- Resolve with
{ type: "person" }. A first name alone ("Sam") matches many people: pass what the user said about them (runs OpenAI, hosts a show) ascontext, and when resolve still answersask, show its options.
Worked program
Pass each block to arcmira_execute_read as one program (a block marked arcmira_execute_write goes to that tool), with the name swapped for the user's. It opens with the pick: set CONTEXT to the user's own words about the name. When several entities fit it returns ask and runs nothing else. Show those options to the user, then run it again with ID set to the pick. Build date windows from arcmira.daysAgo(n) and arcmira.today().
Prep on one person
const NAME = "Jensen Huang", CONTEXT = undefined, ID = null; // CONTEXT: the user's own words about the name, never a guess. After an ask, set ID to the picked option's id and run again
const r = ID ? null : await arcmira.resolve(NAME, { type: "person", context: CONTEXT });
const e = r && (r.best ?? r.suggested);
if (r && !e) return { ask: r.ask };
const id = ID ?? e.id;
const assumed = Boolean(r?.suggested), why = r?.suggested?.evidence ?? null;
const [m, rows, own] = await Promise.all([
arcmira.momentum(id),
arcmira.mentions({ entityId: id, mode: "appearances", after: arcmira.daysAgo(90), limit: 40 }),
arcmira.search({ query: "AI", speakerIds: [id], after: arcmira.daysAgo(180), limit: 5 }),
]);
const about = await arcmira.search({ query: m.entity.name, about: [id], after: arcmira.daysAgo(90), limit: 3 });
const appeared = new Map();
for (const x of rows.mentions) appeared.set(x.media.video_id, { show: x.media.source_channel?.name ?? null, episode: x.media.title, date: x.media.published_at });
let fromAppearance = null; // no speaker-tagged chunks: read their newest appearance instead
const ep = own.chunks.length === 0 ? rows.mentions[0] : undefined;
if (ep) {
try {
const t = await arcmira.transcript(ep.media.video_id, { start: Math.max(0, ep.start_seconds - 5), end: ep.start_seconds + 90 });
const s = Math.floor(t.lines[0]?.start ?? ep.start_seconds);
fromAppearance = { episode: t.video.title, show: t.video.channel_name, date: t.video.published_at, url: `${t.video.watch_url}${t.video.watch_url.includes("?") ? "&" : "?"}t=${s}`, lines: t.lines.map(l => `[${Math.round(l.start)}s] ${l.text}`), speaker_labelled: t.lines.some(l => l.speaker) };
} catch (err) {
fromAppearance = { episode: ep.media.title, error: err.code };
}
}
return {
person: { id, name: m.entity.name, page: m.entity.page, assumed, why },
attention: { verdict: m.verdict, last_30d: m.volume.mentions_30d, prior_30d: m.volume.mentions_prior_30d, as_of: m.as_of, top_shows: m.top_shows.map(s => [s.channel_name, s.mentions]) },
appeared_on: [...appeared.values()].slice(0, 8),
appeared_on_partial: rows.has_more || appeared.size > 8,
appeared_on_cursor: rows.has_more ? rows.next_cursor : null,
in_their_words: own.chunks.map(c => ({ said: c.text.slice(0, 300), episode: c.video_title, show: c.channel_name, date: c.published_at, url: c.watch_url })),
from_their_appearance: fromAppearance,
said_about_them: about.chunks.map(c => ({ said: c.text.slice(0, 200), show: c.channel_name, date: c.published_at, url: c.watch_url })),
};
A good answer
- Names the person it researched (name and id), and any other person with the same name it set aside.
- Separates what the person said (speaker-filtered) from what others said about them, each with show, date and link.
- Gives the attention verdict, the 30-day count against the prior 30 days, and the top shows, with
as_of. - Lists recent episodes they appeared on, and ends with a few questions or themes that follow from the quotes when the user is prepping.
Traps
- A search with
aboutreturns other people talking; onlyspeakerIdsreturns the person's own words. Speaker tags cover part of the index, so when the speaker search is empty, read a window of an episode they appeared on and say the lines come from their appearance, since caption lines do not name the speaker. - A chunk found with
speakerIdscan include other people's lines. Lines start with "Name: " when the speaker is known. Quote only the person's lines. When no line names a speaker, say the attribution covers the passage, not each line. - Put the user's topic in
queryfor the speaker search (it needs a word or phrase of two or more characters). - Mentions and momentum count the shows Arcmira indexes, not all media.
Docs: https://arcmira.com/docs/mcp-server
After the answer
Monitors can follow what a research turn found, and each alert uses 25 credits from the account's plan, then its on-demand budget. The company-watch skill sets one up.
If anything was wrong, slow, or missing for the user, or they want a source or capability Arcmira lacks, send one arcmira_feedback.
When not to use it
- →When the person name is too ambiguous to resolve
- →When the person has no indexed appearances
- →When the user provides no context for common names
Prerequisites
Limitations
- →Mentions and momentum count indexed shows only
- →Speaker attribution relies on transcript quality
- →Requires context for common names
How it compares
It consolidates disparate media appearance data into a structured research profile, facilitating preparation for interviews or meetings.
Compared to similar skills
person-research side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| person-research (this skill) | 0 | 7d | No flags | Intermediate |
| literature-review | 559 | 4mo | Review | Advanced |
| openalex-database | 48 | 10mo | Review | Intermediate |
| linkedin-sales-navigator-alt | 23 | 4mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by arcmira
View all by arcmira →You might also like
literature-review
K-Dense-AI
Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).
openalex-database
davila7
Query and analyze scholarly literature using the OpenAlex database. This skill should be used when searching for academic papers, analyzing research trends, finding works by authors or institutions, tracking citations, discovering open access publications, or conducting bibliometric analysis across 240M+ scholarly works. Use for literature searches, research output analysis, citation analysis, and academic database queries.
linkedin-sales-navigator-alt
OneWave-AI
Build targeted prospect lists by analyzing LinkedIn profiles, extracting job titles, companies, locations, and recent activity. Identifies decision-makers, tracks job changes for warm outreach, and enriches contact data. Use when users need to find prospects, build lead lists, or track decision-maker movements.
web-search
Igosuki
This skill should be used when users need to search the web for information, find current content, look up news articles, search for images, or find videos. It uses DuckDuckGo's search API to return results in clean, formatted output (text, markdown, or JSON). Use for research, fact-checking, finding recent information, or gathering web resources.
market-research-reports
davila7
Generate comprehensive market research reports (50+ pages) in the style of top consulting firms (McKinsey, BCG, Gartner). Features professional LaTeX formatting, extensive visual generation with scientific-schematics and generate-image, deep integration with research-lookup for data gathering, and multi-framework strategic analysis including Porter's Five Forces, PESTLE, SWOT, TAM/SAM/SOM, and BCG Matrix.
annas-archive-ebooks
ratacat
Use when needing to look up book content, find a book by title/author, download an ebook, or reference material from a published book. Triggers on book lookups, ebook downloads, "find the book", "get the PDF/EPUB of". Downloads produce PDF/EPUB/MOBI files - use ebook-extractor skill to convert to text.