{"id":77313,"plugin_id":"plugin_asdk_app_6acdf58c61a881919f9c7a10bbe221f7","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-03T00:13:30.123Z","digest":"68e7d95bd79234eff66560a276640be78d0b472c5c80e8fcd0a5f62e790b743f","against":null,"payload":{"description":"Use when the user explicitly asks for person-level outreach contacts for a selected set of Grasp companies or buyers: work emails, phone numbers, person LinkedIn profiles, CEO/CFO/founder/owner contact details, corporate development or M&A people, decision-makers, or outreach lists.","included_files":[],"name":"finding-contacts","skill_md_contents":"---\nname: finding-contacts\nuser-invocable: false\ndescription: \"Use when the user explicitly asks for person-level outreach contacts for a selected set of Grasp companies or buyers: work emails, phone numbers, person LinkedIn profiles, CEO/CFO/founder/owner contact details, corporate development or M&A people, decision-makers, or outreach lists.\"\n---\n\n# Finding Contacts\n\nUse the dedicated contact lookup only after the company or buyer targets are clear. It is the outreach-grade workflow and is different from table fields, research columns, and one-company profile contacts.\n\nDo not infer contact lookup from ranking, shortlist, acquisition-target, PE add-on, or buyer-universe requests. Use this skill only when the user explicitly asks for people, emails, person LinkedIn profiles, outreach, or contact routes.\n\n## Contact Source Choice\n\n- Outreach contacts for selected companies: use the `grasp_search_contacts` tool. Reserve it for selected domains where the user is likely to act on the result.\n- Broad contact-like table fields: use the `table-enrichment` skill. Research columns can cover many companies, but they are not contacts lookup results.\n- Reported/source fields: use the `table-enrichment` skill for company-level phone, website, generic email, or company LinkedIn fields when Grasp exposes them as table columns. These are not person-level outreach contacts.\n- One-company profile contacts: use the `company-lookup` skill only for a one-company profile/deep-dive context. Do not use profile contacts as the default response to outreach requests.\n\n## Guardrails\n\n- Do not run contact lookup across a full long list by default. Reserve it for a trimmed set of companies planned for outreach.\n- If the user asks for contacts for many companies, first narrow to a shortlist. If they insist on broad coverage across hundreds of companies, use research columns from the `table-enrichment` skill instead and state that they are not contact lookup results.\n- Pull domains from inspected table rows or validated company profiles. Do not guess domains when using `grasp_search_contacts` tool.\n- Respect the `grasp_search_contacts` tool's domain, title, and result limits.\n- Founder-owned, owner-managed, PE-backed, family-owned, or management-owned target criteria are ownership criteria, not contact requests. Use `finding-contacts` only when the user asks for people or outreach details.\n\n## Locked Emails and Unlocking\n\nContact emails from `grasp_search_contacts` may be locked (`email_locked: true` with `email: null`). Locked means the email exists but has not yet been revealed for the user.\n\n- Never guess, fabricate, or substitute a locked email. Present the contact with the email marked as locked.\n- To reveal locked emails, use the `grasp_unlock_contact_emails` tool with the contacts' `person_id` values. Contacts the user already unlocked are returned without re-fetching; contacts without a resolvable email come back as `not_found`.\n- Only unlock contacts the user has explicitly selected, and confirm the selection with the user before calling. Never unlock an entire search result set unprompted.\n- Re-running `grasp_search_contacts` returns real emails for contacts the user already unlocked (`email_unlocked: true`).\n\n## Workflow\n\n1. Identify the target companies or buyers.\n   - From a table: use the `working-with-tables` skill to inspect rows and URL/domain columns.\n   - From names: use the `company-lookup` skill to validate canonical domains.\n2. Translate the outreach goal into role filters.\n   - For specific roles such as CEO, CFO, Founder, Owner, Partner, Head of M&A, or Corporate Development, pass explicit `titles`.\n   - Use `senior_only` only as a broad seniority hint when the user asks for senior decision-makers without naming specific roles.\n   - Use `seniorities` only when the user asks for seniority classes rather than titles.\n3. Call the `grasp_search_contacts` tool with selected domains, explicit titles/seniority when useful, and a concise `usage_rationale`.\n4. Present contacts with company/domain, person, title, available contact fields (marking locked emails), and missing coverage.\n5. If the user selects contacts whose emails are locked, confirm the selection, then call `grasp_unlock_contact_emails` with those `person_id` values.\n\nNever invent emails, LinkedIn URLs, source links, or people. Treat absent results as coverage gaps, not proof that no relevant contact exists.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}