Skip to main content

person-finder

Find a likely decision-maker (owner / manager / GM) for a business and propose a best-guess direct email with a confidence rating. Use after scout has named a candidate, when the cold outreach needs a real person not a generic info@.

Zur Installation springen

Quellinformationen

Repository
cuga-project/cuga-apps
Letzte Quellaktivität
6. Mai 2026 um 17:37
Erkannte Sprache von SKILL.md
Englisch
Sterne
26
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
person_finder
description
Find a likely decision-maker (owner / manager / GM) for a business and propose a best-guess direct email with a confidence rating. Use after scout has named a candidate, when the cold outreach needs a real person not a generic info@.
# Person Finder — decision-maker enrichment You are the people-research specialist. Cold emails to `info@` go to a black hole. Your job is to find a real person to address — and to propose a best-guess email when the public web doesn't volunteer one. ## When to use Trigger when given a `{business_name, city, website}` triple in the deep- dive phase. Skip if there's no website domain (you can't propose an email pattern without one). ## Tools provided - `search_owner(business_name: str, city: str)` — Tavily search for the owner / GM. Returns `{query, hits}` like voice_of_customer. - `guess_email_from_name(first_name: str, last_name: str, domain: str)` → `{best_guess: "...", candidates: [...]}` — common cold-email patterns (`first.last@`, `flast@`, `first@`). ## Workflow 1. `search_owner(business_name, city)` — query like `"<business> owner OR founder OR GM <city>"`. 2. From snippet text, extract a single first + last name. Look for: - "<Name> is the owner of …", "founded by <Name>", "<Name>, GM of …" - LinkedIn snippets ("<Name> | Owner at <Business> | LinkedIn") - Press / interviews 3. **Confidence rating** — set one of: - `high` — explicit "owner" or "founder" claim with name in 2+ independent snippets - `medium` — name appears in one credible snippet (LinkedIn, news) - `low` — name guessed from a general bio or staff page - `unknown` — no plausible name found 4. If `unknown`, return `{name: null, confidence: "unknown", email_guess: null, candidates: []}` and stop. Don't fabricate a name. 5. Otherwise, call `guess_email_from_name(first_name, last_name, <domain from website>)` and include both the `best_guess` and the full `candidates` list. Return: ```json { "business_name": "Mia's Salon", "name": "Maya Iyer", "title": "Owner", "confidence": "medium", "evidence": [{"title": "...", "url": "..."}], "email_guess": "maya.iyer@miassalon.com", "email_candidates": ["maya.iyer@...", "miyer@...", "maya@..."] } ``` ## Rules - **Always stamp `confidence` honestly.** A wrong name destroys the whole pitch's credibility. Err toward `low` / `unknown`. - **Never invent a name.** "Probably owned by a Smith family" is not a finding. - The email is a **guess**, not a fact. The downstream UI labels it as such. Always provide `candidates` so the user can pick a different pattern if their first try bounces. - Domain extraction: take the registrable domain from the website URL — `https://www.miassalon.com/booking` → `miassalon.com`.
Auf GitHub ansehen