Skip to content

Gojer16/Dock-Hunter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Opportunity Pipeline

An AI-assisted opportunity pipeline for solo developers to discover freelance leads, score them against their skill set, and draft responses faster—with manual review always in control.

What it does: Discovers opportunities from job boards and Freelancer, scores them against your profile, extracts deal signals, stores everything in SQLite, generates AI drafts, and provides a dashboard to manage the workflow.

What it doesn't do: Auto-submit bids, auto-send proposals, or authenticate without explicit setup.

Features

Feature Details
Discovery ATS sources, Freelancer marketplace, public search (Google, Tavily, etc.)
Scoring Services match, preferred stack, budget floor, source quality
Signals Listing type, bid counts, budget text, client quality hints
Storage SQLite: opportunities, drafts, feedback, runs, source-quality stats
Drafting Claude (Anthropic), OpenAI, templates, or custom CLI/MCP commands
Dashboard Filter, score, bookmark, regenerate drafts, assign feedback labels

Quick Start

1. Install & Initialize

uv sync  # or: pip install -r requirements.txt
python main.py profile init  # creates skill_profile.json

2. Configure skill_profile.json

Edit these key sections:

  • target_services – your offerings
  • preferred_stack – tech preferences
  • min_budget_usd – minimum budget
  • excluded_keywords – reject terms
  • source_settings.freelance – Freelancer-specific filters
  • drafting.providertemplate, anthropic, openai, or mcp_command

3. Set Environment Variables

# Search providers (pick what you need)
export GOOGLE_CSE_API_KEY=your_key
export GOOGLE_CSE_ID=your_id
export TAVILY_API_KEY=your_key
export OPENAI_API_KEY=your_key
export ANTHROPIC_API_KEY=your_key

4. Run Discovery & Dashboard

python main.py discover run-once --provider google
python main.py dashboard  # opens UI at localhost

Commands

python main.py discover run-once [--provider google]    # one-shot discovery
python main.py discover watch --interval-minutes 30    # continuous watch
python main.py discover smoke-test --provider google   # validate setup
python main.py profile init/show                       # manage profile
python main.py draft generate --opportunity-id 1       # regenerate draft
python main.py feedback labels/set                     # track outcomes
python main.py dashboard                              # operator UI

Provider Configuration

Template (no API needed):

{"drafting": {"provider": "template"}}

Claude or OpenAI:

{"drafting": {"provider": "anthropic"}}  // or "openai"

Custom CLI/MCP:

{
  "drafting": {
    "provider": "mcp_command",
    "providers": {
      "mcp_command": {
        "type": "command",
        "command": ["your-cli-here"],
        "payload_mode": "json-stdin"
      }
    }
  }
}

External commands receive JSON on stdin (prompt, opportunity, skill profile) and can return raw text or {"content": "...", "rationale": "..."}.

Skill Profile Example

{
  "target_services": ["Python automation", "API development"],
  "preferred_stack": ["Python", "FastAPI"],
  "min_budget_usd": 500,
  "excluded_keywords": ["contest", "logo design"],
  "source_settings": {
    "freelance": {
      "focus_sources": ["freelancer", "upwork"],
      "preferred_listing_types": ["project", "fixed"],
      "max_bid_count": 20,
      "auth_mode": "public"
    }
  },
  "feedback": {
    "allowed_labels": ["won", "lost", "ignored", "applied"],
    "positive_labels": ["won"],
    "negative_labels": ["lost"]
  },
  "drafting": {"provider": "anthropic"}
}

Data & Architecture

SQLite stores: opportunities, drafts, runs, skill_profile_versions, opportunity_feedback, source_quality_stats

Key modules:

  • src/source_adapters.py – discovery from ATS and Freelancer
  • src/discovery_service.py – orchestration, deduping, scoring
  • src/opportunity_store.py – SQLite persistence
  • src/opportunity_scorer.py – skill-fit and source-quality scoring
  • src/ai_drafting.py – provider integrations
  • dashboard.py – Flask operator UI

Benefits: Idempotent rediscovery, draft history, feedback-driven learning, quality tracking per provider/platform.

Testing & Support

Run tests:

pytest -q

Provider APIs:

  • OpenAI: Responses API
  • Claude: Anthropic Messages API
  • Tavily: Semantic search
  • Google CSE: Custom search engine

For issues, see /help or report at https://github.com/anthropics/claude-code/issues

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages