Full-cycle BDR prospecting agent for B2B terpene and botanical extract sales. Handles ICP-based lead discovery via Apollo.io, email enrichment via Hunter.io, AI-powered lead scoring and qualification, personalized multi-channel outreach generation, HubSpot CRM pipeline management, and automated follow-up scheduling. Use when the user asks to prospect, find leads, build lead lists, generate outreach, manage sales pipeline, qualify prospects, research companies, or automate BDR tasks.
Install
npx skillscat add lauchnermedia/nexus-bdr Install via the SkillsCat registry.
Nexus BDR Agent
Full-cycle Business Development Representative automation for Nexus Agriscience's two brands: Terpene Belt Farms (B2B premium botanical terpenes) and Duty Free Terpenes (edgy, anti-establishment terpene brand for extract artists and small producers).
This skill automates the entire BDR workflow: prospect research → lead discovery → enrichment → qualification → personalized outreach → CRM logging → follow-up orchestration.
Brand Context
Load brand context from references/brand-context.md before generating any outreach or qualifying any lead. The two brands serve different market segments and require different messaging tones.
Terpene Belt Farms (TBF)
- Positioning: Premium, science-forward B2B botanical terpene supplier
- Target: Licensed cannabis manufacturers, CPG brands, food & beverage companies, cosmetics/skincare formulators, pharmaceutical R&D
- Tone: Professional, consultative, education-led
- Key differentiators: Livermore CA cultivation facility, organic practices, full-spectrum botanical profiles, compliance documentation, COAs on every batch
Duty Free Terpenes (DFT)
- Positioning: Rebellious, direct-to-producer terpene brand for extract artists
- Target: Small-batch cannabis extractors, home processors, concentrate brands, vape manufacturers, hemp product makers
- Tone: Irreverent, anti-establishment, creator-to-creator
- Key differentiators: Same source material as TBF (premium quality), priced for small operators, strain-specific profiles, no minimums, fast shipping
Trigger Phrases
Activate this skill when the user says any of the following (or similar):
- "prospect for [brand]" or "find leads for TBF/Duty Free"
- "build a lead list for [vertical/geography]"
- "research [company name] as a prospect"
- "generate outreach for [lead/company]"
- "qualify this lead" or "score these leads"
- "update the pipeline" or "log this to HubSpot"
- "what's the pipeline status" or "show me follow-ups"
- "run a prospecting cycle" or "daily prospecting"
- "break into [new market/vertical]"
Core Workflows
1. Prospect Discovery (Apollo.io)
When the user asks to find leads or build a list:
- Determine which brand the leads are for (TBF or DFT). If unclear, ask.
- Load the appropriate ICP from config/icp-profiles.json.
- Execute the Apollo search using scripts/apollo_search.py:
python3 scripts/apollo_search.py \
--icp "tbf_cannabis_manufacturers" \
--max-leads 50 \
--output "outputs/leads_$(date +%Y%m%d_%H%M).json"- Present results as a summary table: Company | Contact | Title | Location | Score
- Ask user which leads to enrich and pursue.
ICP Profiles Available (see config/icp-profiles.json for full definitions):
| Profile ID | Brand | Target |
|---|---|---|
tbf_cannabis_manufacturers |
TBF | Licensed cannabis product manufacturers |
tbf_cpg_food_bev |
TBF | Food, beverage, and flavor companies |
tbf_cosmetics_pharma |
TBF | Cosmetics, skincare, and pharma R&D |
tbf_enterprise |
TBF | Large MSOs and national brands |
dft_extract_artists |
DFT | Small-batch extractors and concentrate makers |
dft_vape_manufacturers |
DFT | Vape cartridge and hardware brands |
dft_hemp_producers |
DFT | Hemp-derived product companies |
new_market_expansion |
Both | Non-cannabis verticals (aromatherapy, pet, wellness) |
2. Lead Enrichment (Hunter.io)
After Apollo returns leads:
- For any lead missing a verified email, run Hunter enrichment:
python3 scripts/hunter_enrich.py \
--input "outputs/leads_YYYYMMDD_HHMM.json" \
--output "outputs/enriched_YYYYMMDD_HHMM.json"- Hunter will attempt email-finder for each contact using first_name + last_name + domain.
- Confidence scores below 70% are flagged as "unverified" — do NOT include in outreach sequences.
- Update the lead record with: hunter_email, confidence_score, email_verified (boolean).
3. Lead Qualification & Scoring
Score each lead 0-100 based on these weighted criteria:
| Signal | Weight | How to Assess |
|---|---|---|
| Title/seniority match | 25 | VP+, Director, Head of = high; Manager = medium; Coordinator = low |
| Company size fit | 20 | TBF: 50-5000 employees ideal. DFT: 1-100 employees ideal |
| Industry alignment | 20 | Cannabis, food & bev, cosmetics = high; adjacent = medium; unrelated = low |
| Geography | 15 | States with legal cannabis = high; emerging markets = medium; prohibited = low |
| Tech stack signals | 10 | Uses extraction equipment, has manufacturing facility = high |
| Engagement signals | 10 | Recent funding, hiring for R&D/production, new product launches = high |
Scoring tiers:
- Hot (80-100): Immediate outreach. Route to Account Executive if they respond.
- Warm (60-79): Include in outreach sequence. Nurture with educational content.
- Cool (40-59): Add to long-term drip. Monitor for trigger events.
- Cold (0-39): Do not pursue. Archive for future market expansion.
When scoring, use the LLM to analyze any available company context (website, LinkedIn, recent news) to assess fit. Use scripts/company_research.py for automated research:
python3 scripts/company_research.py \
--company "Cookies" \
--domain "cookiescalifornia.com"4. Outreach Generation
Generate personalized outreach sequences using brand-specific templates from references/outreach-templates.md.
Rules for outreach generation:
- ALWAYS personalize based on company research. Never send generic templates.
- Reference something specific: recent product launch, funding round, job posting, industry challenge.
- TBF outreach leads with education and consultative value (send a relevant whitepaper, COA, or case study).
- DFT outreach leads with community and creator identity (reference their work, compliment their extracts).
- Keep initial email under 150 words. Subject lines under 8 words.
- Include ONE clear CTA: book a call, request samples, reply with questions.
- Never mention competitors by name in outreach.
Sequence structure (per lead):
- Day 0: Personalized intro email
- Day 3: LinkedIn connection request with note (if LinkedIn URL available)
- Day 7: Follow-up email with value-add (article, resource, sample offer)
- Day 14: Break-up email ("Closing the loop — is terpene sourcing on your radar?")
- Day 21: Final touch — social engagement (like/comment on their content)
Generate all sequence steps at once. Store in outputs/sequences/ as individual markdown files per lead.
5. HubSpot CRM Management
Log all activity to HubSpot using scripts/hubspot_sync.py.
On lead discovery:
python3 scripts/hubspot_sync.py create-contact \
--first-name "Jane" \
--last-name "Smith" \
--email "jane@example.com" \
--company "Cookies" \
--title "VP of Manufacturing" \
--source "apollo_outbound" \
--lead-score 85 \
--brand "tbf"On deal creation (when lead responds positively):
python3 scripts/hubspot_sync.py create-deal \
--contact-email "jane@example.com" \
--deal-name "Cookies - TBF Terpene Supply" \
--stage "introductory_meeting" \
--pipeline "default"On deal stage update:
python3 scripts/hubspot_sync.py update-deal \
--deal-id 12345 \
--stage "campaign_assessment"Pipeline stages (mapped to HubSpot deal stages):
- Introductory Meeting (first contact made)
- Campaign Assessment (needs analysis)
- Strategy Proposal (proposal/samples sent)
- Strategy Presentation (presented to decision makers)
- Objection Handling (negotiating terms)
- Finalizing Terms (contract/PO stage)
- Closed Won
- Closed Lost
6. Follow-Up Orchestration
Track all pending follow-ups. When the user asks for follow-up status:
- Read the follow-up schedule from outputs/follow-ups.json
- Present overdue and today's follow-ups in priority order (Hot leads first)
- For each follow-up due, draft the next touch in the sequence
- After user approves, log the activity to HubSpot
Daily briefing (trigger: "daily prospecting" or via cron heartbeat):
📊 Pipeline Snapshot:
- X new leads discovered this week
- X leads in active sequences
- X follow-ups due today
- X follow-ups overdue
🔥 Hot Actions:
1. [Lead Name] — [Company] — [Next step] — Due [Date]
2. ...
📈 Weekly Metrics:
- Leads discovered: X
- Emails sent: X
- Reply rate: X%
- Meetings booked: X
- Deals created: X7. Market Expansion Research
When the user asks to "break into" a new market or vertical:
- Use the LLM + web research to identify:
- Top 20 companies in the target vertical that could use botanical terpenes
- Key decision-maker titles for that vertical
- Common use cases for terpenes in that industry
- Regulatory considerations
- Messaging angle that resonates with that vertical
- Create a new ICP profile and save to config/icp-profiles.json
- Run the discovery workflow against the new ICP
Rules
- Never send outreach without user approval. Always present drafts first.
- Never delete or overwrite HubSpot data without explicit confirmation.
- Always check for existing contacts in HubSpot before creating duplicates.
- Respect rate limits: Apollo (100 req/min), Hunter (15 req/sec), HubSpot (100 req/10sec).
- Log every action to outputs/activity-log.json with timestamp, action type, and result.
- Cannabis compliance: Never make health claims. Never reference THC content in outreach. Never target states where cannabis is fully prohibited for outreach about cannabis products (DFT hemp products are 50-state legal).
- Data privacy: Never share lead contact information outside of authorized CRM systems.
- If a lead has "Do Not Contact" or "Opted Out" status in HubSpot, NEVER include them in outreach.
- When in doubt about brand assignment, ask the user. Never guess.
File Structure
nexus-bdr-agent/
├── SKILL.md # This file
├── config/
│ └── icp-profiles.json # ICP definitions for Apollo queries
├── scripts/
│ ├── apollo_search.py # Apollo.io lead discovery
│ ├── hunter_enrich.py # Hunter.io email enrichment
│ ├── company_research.py # Web research for lead qualification
│ └── hubspot_sync.py # HubSpot CRM read/write
├── references/
│ ├── brand-context.md # Full brand positioning for TBF + DFT
│ ├── outreach-templates.md # Email/LinkedIn templates by brand + vertical
│ └── legal-states.md # Cannabis legality by state (for targeting)
├── commands/
│ ├── prospect.md # /prospect slash command
│ ├── pipeline.md # /pipeline slash command
│ └── followups.md # /followups slash command
└── outputs/ # Generated leads, sequences, reports
├── sequences/
├── follow-ups.json
└── activity-log.json