mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-04-29 18:36:23 +02:00
fix labeling precision
This commit is contained in:
parent
f8aa76076e
commit
4777b106dd
2 changed files with 24 additions and 4 deletions
|
|
@ -68,6 +68,26 @@ ${renderTagSystemForEmails()}
|
|||
5. Always include \`processed: true\` and \`labeled_at\` with the current ISO timestamp.
|
||||
6. If the email already has frontmatter (starts with \`---\`), skip it.
|
||||
|
||||
# Cold Outreach Detection (Critical for Precision)
|
||||
|
||||
Many emails disguise themselves as real relationships. Before assigning \`vendor\`, \`candidate\`, \`partner\`, or \`followup\`, apply these tests:
|
||||
|
||||
**It's \`cold-outreach\` (noise), NOT a real relationship, if:**
|
||||
- The sender is pitching their own product or service to you (design agencies, compliance firms, lead gen tools, dev shops, etc.) — even if they reference your company by name or mention a prior call YOU didn't initiate.
|
||||
- The thread consists entirely of the same sender following up on their own unanswered messages. A real followup requires prior two-way engagement.
|
||||
- A student, job-seeker, or founder cold-emails asking for your time, feedback, or mentorship without a warm intro or a specific open role they're applying to. These are NOT \`candidate\` — they are \`cold-outreach\`.
|
||||
- Someone invites you to an event you didn't sign up for, especially if the email has marketing formatting (tracking links, unsubscribe footers, HTML banners). This is \`promotion\`, not \`event\`.
|
||||
|
||||
**It IS a real relationship if:**
|
||||
- You (the inbox owner) are a participant in the thread (you sent a reply, or someone on your team did).
|
||||
- The sender is from a company you are already paying, or they are providing a service under contract (e.g., your law firm, your accountant, your cloud provider support).
|
||||
- The sender was introduced to you by someone you know (warm intro present in the thread).
|
||||
- The sender references a specific ongoing deal, contract, or project with concrete details (not generic "I noticed your company...").
|
||||
|
||||
**Key heuristic:** If every message in the thread is FROM the same external person and the inbox owner never replied, it's almost certainly cold outreach — regardless of how personalized it sounds. Label it \`cold-outreach\`.
|
||||
|
||||
**Noise array must only contain tags from the Noise category.** Do not put topic or relationship tags (like \`event\`) into the noise array. If an email is an event promotion, use \`promotion\` in noise — not \`event\`.
|
||||
|
||||
# Frontmatter Format
|
||||
|
||||
\`\`\`yaml
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ const DEFAULT_TAG_DEFINITIONS: TagDefinition[] = [
|
|||
{ tag: 'customer', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Paying customers', example: 'We\'re seeing great results with Rowboat. Can we discuss expanding to more teams?' },
|
||||
{ tag: 'prospect', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Potential customers', example: 'Thanks for the demo yesterday. We\'re interested in starting a pilot.' },
|
||||
{ tag: 'partner', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Business partners, corp dev, or strategic contacts', example: 'Let\'s discuss how we can promote the integration to both our user bases.' },
|
||||
{ tag: 'vendor', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Service providers you work with (legal, accounting, infra)', example: 'Here are the updated employment agreements you requested.' },
|
||||
{ tag: 'candidate', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Job applicants or recruiter pitches for specific roles', example: 'Thanks for reaching out. I\'d love to learn more about the engineering role.' },
|
||||
{ tag: 'vendor', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Service providers you already pay or have a contract with (legal, accounting, infra). NOT someone pitching their services to you — that is cold-outreach.', example: 'Here are the updated employment agreements you requested.' },
|
||||
{ tag: 'candidate', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Job applicants responding to a specific open role, or recruiters pitching candidates for your roles. NOT unsolicited students or strangers asking for your time — that is cold-outreach.', example: 'Thanks for reaching out. I\'d love to learn more about the engineering role.' },
|
||||
{ tag: 'team', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Internal team members and co-founders', example: 'Here\'s the updated roadmap for Q2. Let\'s discuss in our sync.' },
|
||||
{ tag: 'advisor', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Advisors, mentors, or board members', example: 'I\'ve reviewed the deck. Here are my thoughts on the GTM strategy.' },
|
||||
{ tag: 'personal', type: 'relationship', applicability: 'both', noteEffect: 'create', description: 'Family or friends', example: 'Are you coming to Thanksgiving this year? Let me know your travel dates.' },
|
||||
|
|
@ -67,12 +67,12 @@ const DEFAULT_TAG_DEFINITIONS: TagDefinition[] = [
|
|||
|
||||
// ── Email Type — high-signal email formats (all create) ───────────────
|
||||
{ tag: 'intro', type: 'email-type', applicability: 'both', noteEffect: 'create', description: 'Warm introduction from someone you know', example: 'I\'d like to introduce you to Sarah Chen, VP Engineering at Acme.' },
|
||||
{ tag: 'followup', type: 'email-type', applicability: 'both', noteEffect: 'create', description: 'Following up on a previous conversation', example: 'Following up on our call last week. Have you had a chance to review the proposal?' },
|
||||
{ tag: 'followup', type: 'email-type', applicability: 'both', noteEffect: 'create', description: 'Following up on a previous two-way conversation (both parties have engaged). A cold sender bumping their own unanswered email is NOT a followup — it is cold-outreach.', example: 'Following up on our call last week. Have you had a chance to review the proposal?' },
|
||||
|
||||
// ── Noise — all skip signals in one place ─────────────────────────────
|
||||
{ tag: 'spam', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Junk and unwanted email', example: 'Congratulations! You\'ve won $1,000,000...' },
|
||||
{ tag: 'promotion', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Marketing offers, sales pitches, and product launches', example: '50% off all items this weekend only!' },
|
||||
{ tag: 'cold-outreach', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Unsolicited contact from someone you don\'t know', example: 'Hi, I noticed your company is growing fast. I\'d love to show you how we can help with...' },
|
||||
{ tag: 'cold-outreach', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Unsolicited contact from someone you don\'t know — includes sales pitches disguised as follow-ups, strangers asking for your time/feedback, and service providers you never engaged with', example: 'Hi, I noticed your company is growing fast. I\'d love to show you how we can help with...' },
|
||||
{ tag: 'newsletter', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Newsletters, digests, and subscription emails', example: 'This week in AI: The latest developments in agent frameworks...' },
|
||||
{ tag: 'notification', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Automated alerts and system notifications with no action needed', example: 'Your password was changed successfully. If this wasn\'t you, contact support.' },
|
||||
{ tag: 'digest', type: 'noise', applicability: 'email', noteEffect: 'skip', description: 'Community digests, forum roundups, and aggregated updates', example: 'YC Bookface Weekly: 12 new posts this week...' },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue