---
name: moltsets-enrich-profile-best-email
description: Use this skill when the user has a single LinkedIn URL and wants the best available email - business email if it exists, personal email as fallback.
---

# Enrich Profile - Best Email

Retrieve the best available email for one LinkedIn profile using `MoltSets:linkedin_to_best_email` (hybrid mode).

## Triggers

"get the best email for [LinkedIn URL]", "find any email for this profile", "enrich this LinkedIn with email", "what's the email for this person", or any request to fetch an email from a single LinkedIn URL without specifying business or personal.

Use **enrich-contact** or **test-enrich-single-email** instead if the user explicitly asks for business email only.

## Set Expectations

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

Facts to convey:
- 1 API call, a few seconds
- Returns business email if available, personal email as fallback
- Credits only charged if a result is found
- The email comes back with an A–F deliverability risk score

## Step 0 - Confirm acceptable risk scores

Every email MoltSets returns carries a deliverability risk score - a grade from A to F. Ask which grades to keep (skip if the user already said so this session):

> "MoltSets grades email deliverability risk from A (best) to F (no data). Which grades should I keep? I'd recommend **A, B, C and F** - and dropping **D**, since D is a confirmed bounce, complaint or spam trap."

| Grade | Meaning | Best practice |
|---|---|---|
| A | Strongest engagement signal available | Safe to send immediately |
| B | Solid | Fine in regular sends; on a new or warming domain, send a smaller batch before scaling |
| C | Deliverability can't be confirmed | Segment separately from A/B, warm at low volume, watch engagement, suppress non-responders after 1-2 attempts |
| D | Confirmed bounce, complaint or spam trap | Never send - fastest way to trip spam traps and damage sender reputation for the whole list |
| F | No data - unknown risk, not "safe" | Re-verify before sending, or treat like C |

Use whatever set the user confirms. Treat the grade as a filter, not a guarantee - it lowers risk, it doesn't remove it. Pair it with the user's own sending domain reputation and list hygiene.

## Step 1 - Run enrichment

Call `MoltSets:linkedin_to_best_email` with `linkedin_url: "[URL]"`.

Normalise the URL if needed - if a slug is provided (e.g. `janesmith`), construct `https://www.linkedin.com/in/janesmith`.

## Step 2 - Output

**Found (business):**
```
Email: jane@acmecorp.com [business] risk score: A (validated 2024-11-03)
```

**Found (personal fallback):**
```
Email: jane.smith@gmail.com [personal] risk score: C (validated 2024-09-17)
```

**Found, but outside the accepted set:**
```
Email: sam@oldco.com [business] risk score: D - outside your accepted grades
D means a confirmed bounce, complaint or spam trap. Shown for visibility; do not send.
```

**Not found:**
```
Email: Not found
```

Always label the email type (business / personal) and always show the risk score, including when the grade falls outside the accepted set - flag it rather than hiding the result. Add the one-line best practice for that grade (from Step 0) when the score is C, D or F.

Do not fabricate data.
