CommunityCodierung & Entwicklunggithub.com

Nicholas-V-rld/upwork-scout

Finde, filtere und bewerte aktuelle Upwork-Jobs für deine Nische mit Upworks offiziellem MCP-Connector und entwerfe dann ehrliche Angebote für die besten 3–5 Jobs. Standardmäßig schreibgeschützt; es reicht nie etwas ein oder gibt Connects ohne explizite Zustimmung aus.

Was ist upwork-scout?

Upwork Scout ist ein KI-gestützter Skill, der Freelancern hilft, in ihrer Nische die vielversprechendsten Aufträge auf Upwork zu identifizieren und darauf zu bieten. Er durchsucht Upwork systematisch nach relevanten Jobs, filtert ungeeignete Angebote anhand von Kriterien wie bereits besetzten Stellen, niedrigen Kundenbewertungen oder unpassenden Standorten heraus und bewertet die verbleibenden Jobs mit einem Punktesystem (0–10), um die Top 3–5 zu ermitteln. Der Skill erstellt dann personalisierte Angebote, die auf die spezifischen Anforderungen der Jobausschreibung eingehen, echte, überprüfbare Fakten aus der eigenen Profildatei (me.md) verwenden und vor dem Einreichen eine explizite Benutzerbestätigung erfordern. Er unterstützt die offizielle Upwork-MCP-Schnittstelle und ist so konzipiert, dass er schreibgeschützt arbeitet, um versehentliche Connects-Nutzung oder das Einreichen von Angeboten ohne Genehmigung zu vermeiden. Der Skill ist ideal für Freelancer, die ihre Jobsuche optimieren, Connects sparen und sicherstellen möchten, dass ihre Angebote relevant und effektiv sind.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Nicholas-V-rld/upwork-ai-playbook/tree/main/skills/upwork-scout

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht upwork-scout?

Findet Jobs, die Connects wert sind, lässt die fallen, die sie verschwenden, und entwirft Angebote, die nur Beweise verwenden, die der Freelancer belegen kann.

Bevor du beginnst

  1. Lese me.md (kopiere me.example.md beim ersten Mal und fülle sie aus). Sie enthält die Nische, den Stundensatz, die Suchbegriffe und die einzigen Beweise, die du verwenden darfst.
  2. Rufe list_accounts auf und wähle das TALENT-Konto aus, das in me.md genannt wird. Der Connector kann zwischen Sitzungen die Konten wechseln. Wenn das genannte Konto nicht vorhanden ist, stoppe und sage es. Erstelle niemals Angebote für die falsche Person.
  3. Lese das Connects-Guthaben mit get_profile action=connects_balance aus.

1. Suche

Führe jede Suche aus und entferne dann Dubletten anhand der Job-ID:

  • find_jobs smart_search mode=most_recent, days_posted=2, verified_payment_only=true
  • find_jobs search mit title = jedem Titelbegriff aus me.md, verified_payment_only=true, proposals_max=10
  • find_jobs search mit query = den „Problemwörtern“ aus me.md (z. B. „gehackt ODER langsam ODER kaputt“), gleiche Filter

Achtung: title kann nicht mit query oder sort=relevance kombiniert werden. search hat keinen Datumsfilter, verwende also smart_search mode=most_recent für „heute veröffentlicht“.

Überspringe jede Job-ID, die bereits in einer früheren Datei im Ausgabeordner aufgeführt ist.

2. Prüfen, dann ablehnen

Rufe find_jobs get für die besten ~10 auf. Lehn einen Job ab, wenn:

  • applied wahr ist oder activityStat.jobActivity.totalHired ≥ 1 oder totalOffered ≥ 1
  • preferred_locations.location_required wahr ist und das Land des Freelancers ausschließt
  • die feedback_score des Kunden unter 4,0 liegt oder aktuelle Bewertungen 1–2★ (flagge es, wenn der Job ansonsten großartig ist)
  • er außerhalb der Nische in me.md liegt

3. Bewertung (0–10), behalte die Top 3–5

SignalPunkte
Ein Reparatur-Job (kaputt, gehackt, langsam, fehlerhafter Checkout, Migration)+3
Kernentwicklung in der Nische+2
Laufende oder Retainer-Arbeit erwähnt+2
Kunde hat 1.000 $+ ausgegeben mit einer Bewertung von 4,5★++2
0 Vorstellungsgespräche und weniger als 5 Angebote+1
Kostet mehr als 20 Connects−1

4. Entwurf

Für jede Auswahl:

  • Die erste Zeile handelt von ihrem Job. Wenn der Beitrag eine öffentliche URL nennt, rufe sie ab (20s Timeout) und eröffne mit einer echten Sache, die du gesehen hast. Kunden sehen nur die ersten beiden Zeilen in ihrer Liste, daher wird eine generische Eröffnung nie geöffnet.
  • Dann ein nummerierter Plan, ein Preis und eine Frage am Ende.
  • Beantworte jede Screening-Frage und befolge jede Anweisung „Beginne dein Angebot mit X“ genau.
  • Beweise stammen nur aus me.md: Live-Links, gemessene Zahlen, bestätigte Geschichten. Alles, was nur der Freelancer wissen kann (Rolle in einem Projekt, eine frühere Reparatur, Durchlaufzeit, ein Preis, den er nicht festgelegt hat), wird als [CONFIRM: ...] gesetzt. Erfinde niemals Ergebnisse, Kunden, Zahlen oder Erfahrungen.
  • Solange das Konto weniger als 10 Bewertungen hat, bepreise so, dass du gewinnst, und plane, nach der Lieferung einen Pflegeplan zu verkaufen.

5. Datei schreiben

Schreibe <Ausgabeordner>/YYYY-MM-DD.md mit:

  1. Einer Kopfzeile mit dem aktuellen Connects-Guthaben.
  2. Einer Ranglistentabelle: Job-Link, Kunde (Land, Ausgaben, Bewertung), Connects-Kosten und Grund für die Auswahl.
  3. Einer Zeile „Übersprungen“, die erklärt, warum die anderen abgelehnt wurden.
  4. Der Gesamtanzahl der Connects für alle Auswahlen.
  5. Einem Entwurf pro Auswahl.

Wenn nichts die Filter passiert, schreibe trotzdem die Datei mit einer leeren Tabelle und dem Grund.

6. Senden (nur wenn der Benutzer es sagt)

Mache das ein Angebot nach dem anderen. Upwork hat eine einzige offene Vorschau, und das Erstellen einer zweiten ungültigt die erste.

  1. list_freelancer_proposals action=invitations und action=list. Wenn es eine Einladung für den Job gibt, verwende accept_invitation anstelle von create.
  2. manage_proposals create erstellt eine Vorschau. Zeige dem Benutzer den vollständigen Text, connects_cost, connects_balance, alle unmet_preferred_qualifications und den Boost-Block (current_top_bids und recommended_connects oder „Boost nicht verfügbar“).
  3. Festpreis-Jobs benötigen einen payment_mode (by_project oder by_milestone), und der Benutzer muss den Upwork-Text zur Streitbeilegung bestätigen, bevor du einreichst.
  4. Frage nach Dateianhängen und schlage vor, relevante Portfolio-Projekte über portfolio_project_ids (von get_profile action=list_highlights) anzuhängen.
  5. Rufe confirm_preview nur nach einem expliziten Ja auf. Lies dann das Angebot mit list_freelancer_proposals action=get zurück und überprüfe, ob connectsBid dem genehmigten Boost entspricht.

Niemals

  • Etwas einreichen, bearbeiten, zurückziehen, eine Nachricht senden oder annehmen ohne die explizite Zustimmung des Benutzers für diese bestimmte Aktion.
  • Fakten einer Person auf das Konto einer anderen Person setzen.
  • Eine [CONFIRM]-Lücke mit einer Schätzung füllen.

Verwandte Skills