35 lines
782 B
Bash
35 lines
782 B
Bash
#!/bin/bash
|
|
# Process a single Upwork job: scrape details, score, decide whether to apply
|
|
set -euo pipefail
|
|
|
|
JOB_URL="$1"
|
|
MSG_ID="${2:-}"
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
MIN_HOURLY=50
|
|
MIN_FIXED=1000
|
|
|
|
echo "[job] Scraping job details: $JOB_URL"
|
|
|
|
# Fetch the job page
|
|
JOB_PAGE=$(curl -sL "$JOB_URL" 2>&1 | head -500)
|
|
|
|
# Extract key fields from the page
|
|
# Job title
|
|
TITLE=$(echo "$JOB_PAGE" | grep -oP '(?<="title":")[^"]+' | head -1 || echo "")
|
|
# Budget/rate
|
|
BUDGET=$(echo "$JOB_PAGE" | grep -oP '(?<="amount":)\{[^}]+\}' | head -1 || echo "")
|
|
|
|
echo "[job] Title: $TITLE"
|
|
echo "[job] Budget raw: $BUDGET"
|
|
|
|
# Output structured JSON for Clawdbot to process
|
|
cat <<EOF
|
|
{
|
|
"job_url": "$JOB_URL",
|
|
"msg_id": "$MSG_ID",
|
|
"title": "$TITLE",
|
|
"needs_full_scrape": true
|
|
}
|
|
EOF
|