Termin buchenKostenloses 30-Min.-Erstgespräch
Case Study · Kunde: Internal (Artikuno Commerce)

Auto-Apply mit Claude Code und dem Upwork MCP

Ein Claude-Code-Agent prüft jeden Job anhand festgelegter Kriterien, korrigiert, was sich korrigieren lässt, kalkuliert das Angebot und reicht es ein – danach liest er es zurück und protokolliert einen Beleg.

Auto-Apply With Claude Code and the Upwork MCP
Ergebnis

806 Bewerbungen eingereicht, jede mit eigener Demo, eigenem Video und Anschreiben; läuft alle zwei Stunden.

Kurz gesagt

  • 806 Bewerbungen eingereicht, jede mit eigener Demo, eigenem Video und eigenem Anschreiben.
  • Der Agent folgt schriftlichen Bewerbungskriterien: wann überspringen, wie kalkulieren, wie viel Boost.
  • Jede Einreichung wird aus Upwork zurückgelesen, mit Beleg protokolliert und nach Notion geschrieben.

Das Problem

Nachdem Demo, Video und Anschreiben automatisiert waren, musste trotzdem noch jemand jeden Job öffnen, prüfen, ob er noch offen ist und ob schon jemand eingestellt wurde, einen Stundensatz wählen, über den Boost entscheiden, Antworten einfügen und auf „Senden“ klicken. Bei Tausenden fertigen Anschreiben in der Warteschlange waren das Stunden an Klicks – und manche Jobs waren schon geschlossen, bis wir dran waren.

Was wir gebaut haben

Einen zeitgesteuerten Agenten, kein Skript: Claude Code läuft ohne Oberfläche auf unserem Server, mit dem Upwork MCP verbunden und einem Prompt, der die Regeln unten festlegt. Er arbeitet die Warteschlange Job für Job ab – wie eine sorgfältige Assistenz.

Die Bewerbungskriterien

1. Zuerst prüfen: nur aus echten Gründen überspringen

  • Die Kundin hat schon jemanden eingestellt.
  • Der Job ist geschlossen oder nur auf Einladung.
  • Das Video funktioniert nicht oder wurde für einen anderen Job gemacht.

Upwork selbst blockiert außerdem Jobs, auf die wir uns schon beworben haben, Festpreis-Jobs ohne Budget und alles über unserem Tageslimit.

2. Korrigieren statt überspringen

Ziel ist die Bewerbung. Behebbare Probleme werden vor dem Senden behoben: unvollständige Sätze, fehlende oder unpassende Screening-Antworten, die falsche Domain, übrig gebliebene Platzhalter oder ein toter Demo-Link (dieser Satz wird entfernt). Korrekturen dürfen nur Fakten aus unserem Profil verwenden – nie erfundene Zahlen, Jahre oder Zertifikate. Der korrigierte Text geht zurück nach Notion, die Änderung steht im Beleg.

3. Das Angebot kalkulieren

SituationRegelBeispiel
Stundensatz mit SpanneKnapp unter der Mitte: Mitte − 10 % der Spannbreite20–40 $ → 28 $
Stundensatz ohne SpanneStandard45 $
FestpreisDas volle ausgeschriebene Budget, eine Zahlung, keine Meilensteine—
Unser Text nennt einen anderen SatzÜberspringen. Das Angebot darf unseren eigenen Worten nie widersprechen—

4. Boost

Höchster aktueller Boost +1 Connect, aber nur wenn das 49 oder weniger ergibt – sonst kein Boost. Hat noch niemand geboostet, bieten wir das Upwork-Minimum. Tageslimit: 300 Connects (Wiener Zeit).

5. Das Format des Anschreibens

  1. 1
    Begrüßung: Firmenname, sonst Vorname, sonst Stadt, sonst Land („Hallo nach Irland!“).
  2. 2
    Der Demo-Link, in 2–4 Wörtern benannt.
  3. 3
    Der Video-Link.
  4. 4
    Zwei bis drei Sätze zur Passung, die den genauen Tech-Stack spiegeln, ein echtes Kundenergebnis nennen und unsere Upwork-Glaubwürdigkeit zeigen (Top Rated Plus, 100 % Job Success).

Verbotene Wörter: excited, leveraging, I would love, passionate, thrilled, delighted, synergy. Steht im Post „Beginnen Sie Ihr Angebot mit X“, kommt X in die erste Zeile.

Unter der Haube

  • Immer nur eine Vorschau. Auf Upwork macht eine neue Angebotsvorschau die vorige ungültig. Der Agent geht daher so vor: anlegen → Boost-Gebote lesen → mit Boost neu anlegen → bestätigen → nächster Job. Zwei Agenten gleichzeitig würden beide scheitern, deshalb ist die alte Desktop-Aufgabe dauerhaft deaktiviert.
  • Belege. Nach jedem Senden liest der Agent das Angebot aus Upwork zurück, speichert einen Beleg mit Angebots-ID, Satz, Connects und Boost und setzt Time Applied und Connects Spent in Notion.
  • Tagesprotokoll. Eine Zusammenfassung (eingereicht, übersprungen und warum, Text geändert) geht in eine Notion-Datenbank und an Telegram.
  • Sichere Modi. --dry-run durchläuft alle Entscheidungen, ohne einzureichen. --backfill repariert die Einträge der letzten 7 Tage, ohne etwas zu senden.
  • Eine Falle, die wir teilen wollen. Die Sicherheitsprüfung der Shell blockierte Befehle mit JSON. Frühe Durchläufe reichten Bewerbungen ein, konnten sie aber nicht verbuchen – spätere Läufe sahen „bereits beworben“ und übersprangen. Wir haben das Verbuchen umgestellt und die Lücke nachgetragen.

Ergebnisse

KennzahlWert
Eingereichte Bewerbungen (mit Zeitstempel)806
Geschriebene Anschreiben2.945
Entworfene Screening-Antworten644 Jobs mit mindestens einer Antwort (bis zu 5 pro Job)
TaktAlle 2 Stunden, rund um die Uhr
Menschliche Klicks pro Bewerbung0 (Freigabe nur, wenn sich Regeln ändern)

Was wir gelernt haben

  • Regeln aufschreiben wie für eine neue Mitarbeiterin. Der Prompt ist im Grunde ein Onboarding-Dokument. Ging etwas schief, war die Lösung fast immer ein präziserer Satz in den Regeln.
  • „Korrigieren statt überspringen“ schlägt Perfektionismus. Die erste Version übersprang alles Unvollkommene. Die meisten Probleme waren trivial zu beheben – also beheben wir sie und senden.
  • Immer zurücklesen. Sich ohne Zurücklesen auf „eingereicht“ zu verlassen, verursachte unseren einzigen echten Datenverlust.

Verwandte Projekte

Galerie

Bilder.

How it works: Auto-Apply With Claude Code and the Upwork MCP

Bereit für Ihr KI-Projekt?

Kostenloses 30-Minuten-Erstgespräch. Kein Verkaufsgespräch — einfach ein Austausch darüber, was KI für Sie tun könnte.

  • Kostenlos · 30 Min.
  • Ein konkreter erster Schritt zum Umsetzen
  • Auf Deutsch oder Englisch, online
Auto-Apply mit Claude Code und dem Upwork MCP | AI Labs