---
name: email-to-full-identity
description: Use this skill when the user has a business email address and wants to resolve it to a complete identity — LinkedIn profile, job title, company, personal email, and mobile phone.
---

# Email to Full Identity

Resolve a business email to a complete identity: LinkedIn → job profile → personal contact data.

## Triggers

"who is this email", "look up this email address", "resolve this email to a person", "find the LinkedIn for this email", "get everything for [email@company.com]", "enrich this email address". Chains HEM resolution with full profile and contact enrichment.

## Chain

```
business email
  → hem_to_best_linkedin          (email → LinkedIn URL)
  → linkedin_to_business_profile  (LinkedIn → name, title, company, firmographics)
  → enrich_personal_email         (LinkedIn → personal email)     ─┐ parallel
  → enrich_phone                  (LinkedIn → mobile)             ─┘
```

## Set Expectations

Before firing any calls, give the user a brief, dry heads-up. Deadpan over enthusiastic — no filler, no corporate speak.

Facts to work with:
- 4-step sequential chain: email → LinkedIn → full profile → personal contact data
- Single email: ~15–20 seconds
- Batch: each step depends on the previous — roughly N × 4–5 seconds total
- If the email isn't in the identity graph, the chain stops at step 1 with nothing to show

## Step 1 — Credit check

Call `MoltSets:get_billing` (free). This chain costs up to 4 credits per email on full hits. Check balance before proceeding for batches.

## Step 2 — Resolve email to LinkedIn

Call `MoltSets:hem_to_best_linkedin` with `email: "[address]"`.

**If no LinkedIn found:** stop and report — "This email was not found in the identity graph." Do not proceed further (nothing to look up).

## Step 3 — Get full business profile

Call `MoltSets:linkedin_to_business_profile` with the resolved LinkedIn URL.

## Step 4 — Enrich personal contact data (parallel)

- `MoltSets:enrich_personal_email` with `linkedin_url`
- `MoltSets:enrich_phone` with `linkedin_url`

Both use the LinkedIn URL from Step 2.

## Step 5 — Output

```
Resolved: jane@acmecorp.com

Jane Smith — Head of Marketing, Acme Corp
LinkedIn:  https://www.linkedin.com/in/janesmith
Location:  San Francisco, US
Industry:  Information Technology · 201–500 employees

Personal email:  jane.smith@gmail.com (validated 2024-09-17)
Mobile:          +1 415 555 0192
```

Show `Not found` for any empty field.

## Batch mode

For a list of emails, use `hem_to_best_linkedin` with `emails` array (max 100), then batch-enrich the resolved LinkedIn URLs.

Credit estimate: `N emails × (hem_to_best_linkedin + linkedin_to_business_profile + enrich_personal_email + enrich_phone)`

## Edge cases

- Email not in graph → `hem_to_best_linkedin` returns nothing → report and stop, do not make further calls
- Personal email / phone misses are free — credits only charged on hits
- Business email domain ≠ guaranteed company domain (aliases, acquired domains, etc.) — rely on the profile data, not domain inference
