Every email from a real company is researched and scored against who you sell to; the best leads reach you in Slack within minutes.
Uses
Claude
Gmail
Perplexity
Slack
Get a Slack alert when a high-value lead emails you
email.When an email arrives. Save it as email.slackUserId to blank.Set slackUserId to blank.whatWeSell to blank.Set whatWeSell to blank.yourEmailDomain to blank.Set yourEmailDomain to blank.vipThreshold to 7.Set vipThreshold to 7.watchThreshold to 4.Set watchThreshold to 4.email.subject is empty and email.body is emptyIf email.subject is empty and email.body is emptyYes
No
No steps
email.from and save it as senderLine.Trim email.from and save it as senderLine.senderLine and save it as senderEmail.Extract the first email address from senderLine and save it as senderEmail.email.thread_id isn't blank and email.email_id isn't blank and…If email.thread_id isn't blank and email.email_id isn't blank and…Yes
No
No steps
@ with in yourEmailDomain and save it as ownDomain.Replace @ with in yourEmailDomain and save it as ownDomain.senderEmail and save it as senderDomain.Extract the first domain from senderEmail and save it as senderDomain.ownDomain isn't blank and senderDomain is ownDomain in lowercaseIf ownDomain isn't blank and senderDomain is ownDomain in lowercaseYes
senderDomain is not scored, so nothing was researched or sent.Finish the run: Mail from a colleague at senderDomain is not scored, so nothing was researched or sent.No
No steps
email.subject and save it as subject.Trim email.subject and save it as subject.email.body to 4000 characters (keeping words whole) and save it as emailBody.Shorten email.body to 4000 characters (keeping words whole) and save it as emailBody. | as the separator:
<company name> | <person's full name> | <company website domain>
Rules:
- Trust, in this order: the signature block, the sender's email domain, the body.
- Ignore free mailbox domains (gmail.com, outlook.com, hotmail.com, yahoo.com, icloud.com, proton.me, aol.com). They name a mailbox provider, not an employer — read the signature instead.
- Write UNKNOWN for any field the email does not tell you. Never guess a company from a first name, a job title, or the subject line alone.
- If this is a newsletter, an automated notification, a receipt, a calendar invite, a vendor cold pitch or spam, reply with exactly: UNKNOWN | UNKNOWN | UNKNOWN
- One line only. No preamble, no explanation, no markdown, no quotes.
--- EMAIL ---
FROM: senderLine
SUBJECT: subject
BODY:
emailBody'. Save it as identity.
Maximum response length: 100identityLine to identity.response_text | | .Set identityLine to identity.response_text | | .identityLine by | and save it as identityParts.Split identityLine by | and save it as identityParts.identityParts[0] and save it as companyName.Trim identityParts[0] and save it as companyName.identityParts[1] and save it as contactName.Trim identityParts[1] and save it as contactName.identityParts[2] and save it as companyDomain.Trim identityParts[2] and save it as companyDomain.companyName is empty or companyName in uppercase is UNKNOWNIf companyName is empty or companyName in uppercase is UNKNOWNYes
senderLine), so it was not researched or scored. Newsletters, notifications and personal mail land here.Show in the output: No company could be identified from this email (senderLine), so it was not researched or scored. Newsletters, notifications and personal mail land here.No
No steps
companyName
Website domain: companyDomain
Cover each of these on its own line, and write unknown wherever the public record does not tell you — a gap is useful, a guess is not:
- What they do, in one sentence
- Approximate headcount, with the year of the figure
- Annual revenue or latest funding round, with amounts and dates
- Notable customers or logos
- Industry and headquarters
- Anything in the last 12 months that changes their ability to buy: funding, an acquisition, layoffs, a leadership change, expansion into a new market
Prefer the company's own site, recent news and filings, and cite a source URL for every figure. Watch for name collisions: confirm the company you describe is the one at this domain. If you cannot find it at all, reply with exactly: COMPANY NOT FOUND'. Save it as research.research.response_text and save it as researchText.Trim research.response_text and save it as researchText.whatWeSell
--- WHO GOT IN TOUCH ---
contactName at companyName (companyDomain)
From: senderLine
Subject: subject
Their message:
emailBody
--- WHAT PUBLIC RESEARCH SAYS ABOUT THE COMPANY ---
researchText
Score this lead from 1 to 10 on how much revenue it could be worth to us and how ready they look to buy.
- 8-10: fits who we sell to on size and budget, AND the message shows real intent — they ask about pricing, a demo, a timeline, or name a project they are trying to solve.
- 5-7: a plausible fit, but either the fit or the intent is unproven — a general enquiry, a company you could not size, an individual with no clear budget.
- 1-4: not a lead. Out of who we sell to, no company found, a vendor pitching us, a recruiter, a job applicant, a student, a partnership blast, or a mass mailing.
Weigh what the email actually asks for at least as heavily as the company's size: a large company sending a vague hello is not a VIP lead, and a small company with a funded, named project can be.
Reply with exactly one line, the score first:
<score> | <one sentence naming the single fact that decided it>
The score must be a whole number from 1 to 10 and must be the first thing in your reply. No preamble, no markdown, no explanation beyond that one sentence.'. Save it as scoring.
Maximum response length: 300scoreLine to scoring.response_text | .Set scoreLine to scoring.response_text | .scoreLine by | and save it as scoreParts.Split scoreLine by | and save it as scoreParts.leadScore to +the first number in scoreParts[0].Set leadScore to +the first number in scoreParts[0].scoreParts[1] and save it as scoreReason.Trim scoreParts[1] and save it as scoreReason.leadScore is greater than or equal to vipThresholdIf leadScore is greater than or equal to vipThresholdYes
alertText to 🚨 *VIP lead — companyName* · score leadScore/10Set alertText to 🚨 *VIP lead — companyName* · score leadScore/10
*Who:* contactName · senderEmail
*Subject:* subject
*Why it scored that:* scoreReason
*What the research turned up:*
researchText truncated to 1200 characters using … as the ellipsis (keeping words whole)
*Open the thread:* https://mail.google.com/mail/u/0/#inbox/@email.thread_id.slackUserId. Save it as alert.Send a direct message to slackUserId. Save it as alert.alertTextcompanyName (scored leadScore/10).Show in the output: VIP alert sent for companyName (scored leadScore/10).Else if @leadScore is greater than or equal to @watchThresh…
companyName scored leadScore/10 — below the VIP bar of vipThreshold, so no alert was sent. scoreReason Add a CRM step here to log the lead instead.Show in the output: companyName scored leadScore/10 — below the VIP bar of vipThreshold, so no alert was sent. scoreReason Add a CRM step here to log the lead instead.Otherwise
companyName scored leadScore/10 — not a lead, so nothing was sent. scoreReason.Show in the output: companyName scored leadScore/10 — not a lead, so nothing was sent. scoreReason.