Enrich people in a knowledge graph or wiki with contact and social media information — LinkedIn, email, phone, Twitter/X — using premium enrichment APIs via the agentcash CLI. Use this skill when the user wants to enrich contacts, find someone's LinkedIn or email, fill in missing contact info for people in their wiki or knowledge base, or says 'enrich', 'find contact info', 'look up LinkedIn', 'fill in missing info', or anything about augmenting people/contact pages with external data.
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Enrich people pages in a user's knowledge graph or wiki with contact and social media data from premium APIs (Minerva, PDL) via the agentcash CLI. Minerva is the primary API — it returns rich data (work/personal emails, phones, Twitter, demographics, wealth signals) at $0.05/person. PDL (People Data Labs) is the fallback for name+company lookups when no LinkedIn URL is available ($0.28/match, free when no match). The APIs cost real money (typically 5-30 cents per person), so the skill guides the user through funding before making any paid calls.
Only ever ask the user one question at a time. Never present multiple decisions or questions simultaneously. Be conversational — guide them step by step.
Before doing anything else, understand the structure of the user's knowledge graph. Don't assume any particular directory layout, frontmatter schema, or file naming convention.
wiki/people/, people/, contacts/, network/tags: [person] or type: person in frontmattertitle, name, first_name/last_name, full_name, etc.email, linkedin, twitter, x, phone, social, etc.org, company, role, title, location, etc.If you can't find people pages, ask the user: "Where do your people pages live?"
Run:
npx agentcash balanceIf the balance is zero or very low (under $0.50):
open https://agentcash.dev/onboard to open signup in a browser.npx agentcash onboard <code> to redeem it. This is what actually deposits the credits into their wallet.npx agentcash accounts and give them the deposit URL from the output so they can send USDC.After the user confirms they have funds, re-check balance with npx agentcash balance and proceed.
If the user passed an argument (e.g., /enrich-knowledge-graph John Doe), skip the scan summary and go straight to enriching that person.
For each person to enrich, build the best possible query from their existing data and call the APIs.
The more identifying info you provide, the better the match. Prioritize fields in this order:
Minerva returns rich data at low cost: work emails, personal emails, phone numbers, Twitter, demographics, wealth signals, and full work history. It works best when you have a LinkedIn URL.
npx agentcash fetch https://stableenrich.dev/api/minerva/enrich \
--method POST \
--body '{"records":[{"record_id":"1","linkedin_url":"https://linkedin.com/in/johndoe"}]}'You can also pass minerva_pid, first_name/last_name, emails, or phones in the record. LinkedIn URL gives the best results.
From the response, extract:
professional_emails[0].email_address -> work emailpersonal_emails[0].email_address -> personal emailphones[0].phone_number -> phonetwitter_url -> twitter/xlinkedin_url -> linkedinwork_experience (where work_status: "current") -> role, orgeducation_experience -> educationestimated_income_range, estimated_wealth_range -> financial signals (optional, don't write to wiki unless schema supports it)If you don't have a LinkedIn URL but have an email or phone, use Minerva Resolve to find one:
npx agentcash fetch https://stableenrich.dev/api/minerva/resolve \
--method POST \
--body '{"records":[{"record_id":"1","first_name":"John","last_name":"Doe","emails":["john@example.com"]}]}'Important: Minerva Resolve requires at least one email or phone number. It cannot match on name alone. If is_match: true, follow up with Minerva Enrich using the returned linkedin_url or minerva_pid.
Use PDL (People Data Labs) when Minerva fails or when you only have a name + company (no LinkedIn URL, no email, no phone). PDL can match on name + organization without needing a LinkedIn URL.
npx agentcash fetch https://stableenrich.dev/api/pdl/people-enrich \
--method POST \
--body '{"first_name":"John","last_name":"Doe","company_name":"Acme Corp"}'Requires one of: email, profile (LinkedIn URL), or first_name + last_name + (company_name OR company_domain). Name alone returns 400. Prefer email when known, then profile. The response has status (200 = found, 404 = no record — HTTP still 200 with data: null, not billed) and data with the person record: emails, phone, LinkedIn/Twitter URLs, title, company, location, and career history.
After each enrichment call, check whether the result looks like a genuine match — does the name, company, and role align with what you already know about this person? If the match looks wrong, skip it and note it in the report. Don't write bad data to the knowledge graph.
For each successfully enriched person:
professional_emails[0].email_address -> email field (prefer rank 1)personal_emails[0].email_address -> personal email (if schema supports it)linkedin_url -> linkedin fieldphones[0].phone_number -> phone fieldtwitter_url -> twitter/x fieldwork_experience (first entry where work_status: "current") -> role (work_title), org (work_company_name)work_city + work_state -> location fielddata):
data.work_email (or data.emails) -> email fielddata.linkedin_url -> linkedin fielddata.mobile_phone (or data.phone_numbers[0]) -> phone fielddata.twitter_url -> twitter/x field (extract handle from URL if the project stores handles)data.job_title -> role/title fielddata.job_company_name -> org/company fielddata.location_name -> location fielddata are provider-defined — run npx agentcash check https://stableenrich.dev/api/pdl/people-enrich if a mapping looks off.updated date field, set it to today.After all enrichments, show a summary:
If you're unsure about the exact request/response schema for any endpoint, run:
npx agentcash check <url>To see all available enrichment endpoints:
npx agentcash discover stableenrich.dev522d5da
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.