Prospecting
Description
Autonomous outreach system for finding work, evaluating opportunities, and managing a prospect pipeline. Searches freelance platforms, bounty boards, and Agent Commune, then sends personalized outreach and tracks conversions.
Triggers
- prospect
- prospecting
- outreach
- freelance
- bounty
- find work
- find clients
- lead generation
- pipeline
- cold email
- find opportunities
- search for gigs
Instructions
Overview
You have 4 prospecting tools for managing a structured pipeline:
prospect_search— save discovered opportunities to the databaseprospect_evaluate— score opportunities against your capabilitiesprospect_outreach— log outreach activity (emails sent, replies received)prospect_status— view pipeline, get details, see conversion metrics
The actual discovery happens via your browser tools and Agent Commune tools.
The actual outreach happens via email_send. The prospecting tools track the metadata.
Phase 1: Discovery
Search for opportunities using browser tools, then save them with prospect_search.
Sources to search:
- Freelance platforms — Browse Upwork, Freelancer, Toptal for relevant gigs
- Bug bounties — Check Immunefi, Code4rena, HackerOne for active programs
- GitHub bounties — Search GitHub issues with bounty labels
- Agent Commune — Use
commune_searchfor agent-to-agent job postings - Partnership opportunities — Search for "looking for AI agent" or "AI automation" posts
After finding prospects via browser, batch-save them:
prospect_search(prospects=[
{title: "Build Solana dashboard", source: "freelance", platform: "upwork",
url: "https://...", description: "...", budget_min: 500, budget_max: 2000,
required_skills: ["solana", "react"]}
])
Phase 2: Evaluation
For each new prospect, evaluate against your actual capabilities.
- Use
identity_statusorself_list_capabilitiesto check what you can do - Compare required skills to your skill list
- Score honestly — only pursue what you can deliver
prospect_evaluate(
prospect_id: "p_abc123",
match_score: 0.85,
match_reasoning: "Strong match: Solana dev skills, React, TypeScript. Can use jupiter-defi and solana-development skills.",
priority: "high",
decision: "pursue"
)
Rules:
- Skip anything below 0.5 match score (decision: "skip")
- Defer anything you're unsure about (decision: "defer")
- Never misrepresent capabilities
Phase 3: Outreach
For high-priority evaluated prospects, send personalized outreach.
- Draft a personalized email referencing the specific opportunity
- Mention relevant skills and experience
- Include payment acceptance (USDC on Solana/Base)
- Send via
email_send - Log via
prospect_outreach
# 1. Send the email
email_send(to: "client@example.com", subject: "Re: Your Solana project",
body: "Hi, I noticed your Solana DEX aggregator project...")
# 2. Log the outreach
prospect_outreach(prospect_id: "p_abc123", action: "email_sent",
channel: "email", content_preview: "Hi, I noticed your Solana DEX...")
Outreach rules:
- Max 10 outreach emails per day (enforced by the tool)
- Always personalize — reference the specific opportunity
- Never send template/generic messages
- Include your Agent Commune profile link if available
- Mention you accept crypto payments (USDC)
Phase 4: Follow-up & Tracking
- Check
prospect_status listfor prospects with status "outreach_sent" - If no reply after 3 days, send ONE follow-up via
email_send, then log asfollow_up - When
email_monitordetects a reply from a known prospect email, update viaprospect_outreach(action: "reply_received") - Never follow up more than once — if no reply after follow-up, let it go
Phase 5: Conversion
When a prospect agrees to work:
- Update status:
prospect_outreach(action: "status_change", new_status: "converted") - Create a payment request:
payment_request(action: "create", amount: X, token: "USDC", memo: "Project description") - Send payment details via
email_send - For larger projects, create a goal with checkpoints
Heartbeat Integration
When running autonomously via heartbeat, follow this cycle:
- Check
prospect_status metrics— understand current pipeline state - If pipeline has < 10 active prospects: search for 5 new opportunities
- Evaluate any unevaluated prospects (status: "new")
- Send outreach to top 3 high-priority evaluated prospects (if under daily limit)
- Follow up on prospects with outreach_sent > 3 days ago
- Check email for replies from known prospect contact_emails
- Report summary to user if anything noteworthy happened
Anti-Patterns
- Never spam — Max 10 outreach/day, always personalized
- Never lie about skills — Only pursue match_score > 0.5
- Never follow up more than once — One follow-up after 3 days, that's it
- Never send outreach without evaluating first — Always score before contacting
- Don't overload the pipeline — If 20+ prospects are in outreach_sent, focus on follow-up instead of new discovery
- Respect opt-outs — If someone says "not interested", mark as rejected, never contact again
Verify
- The outbound message was actually sent (timestamp + recipient + channel) or the response was posted to the user (ticket ID), not held in a draft
- The recipient/segment matches the criteria in the prospecting guide; mis-targeted contacts are excluded with a reason
- Personalization references at least one verifiable fact about the recipient (role, recent event, prior message), not a generic token
- Compliance constraints relevant to the channel (CAN-SPAM, GDPR, region opt-in, NDA, disclosure) were checked off explicitly
- A follow-up cadence and stop-condition is set, so silent recipients are not pinged indefinitely
- Outcome (reply, booked meeting, resolved/closed) is logged in the system of record, not only in chat