Skip to content

Latest commit

 

History

History
190 lines (127 loc) · 3.31 KB

QUICKSTART.md

File metadata and controls

190 lines (127 loc) · 3.31 KB

Quick Start Guide

Get the Upwork Auto-Apply system running in 5 minutes.


Step 1: Clone & Install (2 min)

cd /Users/growthgod/.openclaw/workspace/upwork_scripting_app

# Install Python dependencies
pip install -r requirements.txt

# Copy environment template
cp .env.example .env

Step 2: Add API Key (1 min)

Edit .env and add your Claude API key:

CLAUDE_API_KEY=sk-ant-xxxxxxxxxxx

Get one free at: https://console.anthropic.com/


Step 3: Initialize Database (30 sec)

python -c "from db.database import init_db; init_db()"

You should see: ✅ Database initialized at upwork.db


Step 4: Start Backend (30 sec)

python main.py

You should see:

[INFO] Uvicorn running on http://0.0.0.0:8000

Step 5: Open Dashboard

In a new terminal window:

# Option A: Open in default browser
open http://localhost:8000/dashboard/index.html

# Option B: Or just navigate manually
# Visit: http://localhost:8000/dashboard/index.html

Step 6: Run First Cycle

Click "Run Cycle" button in dashboard.

You should see:

  • Jobs fetched from Upwork RSS
  • Jobs filtered by budget/keywords
  • Proposals generated by Claude

Step 7: Review & Approve

  1. Go to Queue tab
  2. Read the generated proposal
  3. Click ✅ Approve or ❌ Reject

Step 8: Export & Send

  1. Click Export button
  2. Files appear in /exports/YYYY-MM-DD/ folder
  3. Copy proposal text
  4. Paste into Upwork manually

That's it! 🎉

Your system is now:

  • ✅ Polling Upwork feeds every 30 minutes
  • ✅ Filtering jobs by budget & keywords
  • ✅ Generating proposals with Claude
  • ✅ Ready for you to approve & send

What to Customize

1. Your Profile (in config.py)

Edit the proposal system prompt to match YOUR background:

SYSTEM_PROMPT = """You are writing Upwork proposals for a skilled developer named [YOUR NAME].
Their background:
- [YOUR EXPERIENCE]
- [YOUR SKILLS]
...
"""

2. Job Filters (in config.py)

Adjust budget minimums and keywords to match what you want:

BUDGET_FILTERS = {
    "fixed_min": 150,    # Change this
    "hourly_min": 25,    # Or this
}

KEYWORD_WHITELIST = [
    "automation",        # Add your target keywords
    "python",
]

3. RSS Feeds (in config.py)

Change which Upwork categories you monitor:

UPWORK_FEEDS = [
    "https://www.upwork.com/ab/feed/jobs/rss?q=landing+page&sort=recency",
    # Add more feeds...
]

Common Issues

"ModuleNotFoundError: No module named 'anthropic'" → Run: pip install -r requirements.txt

"CLAUDE_API_KEY not set" → Check .env has your API key

"Database locked" → Only one backend can run at a time

Dashboard doesn't load → Ensure backend is running on :8000 → Check browser console (F12) for errors


Next Steps

  1. Customize job filters for your niche
  2. Test 1-2 cycles and review proposal quality
  3. Adjust Claude prompt if tone doesn't match you
  4. Monitor proposals daily — review queue in dashboard
  5. Track which proposals get responses
  6. Optimize based on what works

Need Help?

Check the full README.md for:

  • API endpoint documentation
  • Database schema details
  • Configuration options
  • Future enhancements

Happy proposing! 🚀