Was macht Job-Angebotsbewerter?
Der Nutzer erhält regelmäßig Recruiter-Nachrichten und möchte bei jeder die gleichen Fragen beantwortet haben: Passt die Rolle? Sind die tatsächlichen Netto-Bedingungen besser als die aktuellen? Was sollte ich fragen? Was sollte ich antworten? Bruttogehälter über verschiedene Vertragsarten und Länder hinweg täuschen, daher liegt der Kern dieser Fähigkeit in einem Netto-Vergleich, der auf Fakten basiert, die der Nutzer Ihnen nennt – niemals auf Fakten, die Sie sich merken oder annehmen.
Schritt 0: Kontext laden
Persönliche Daten liegen außerhalb der Fähigkeit, sodass Aktualisierung, Kopie oder Veröffentlichung der Fähigkeit diese niemals offenlegt oder überschreibt. Ermitteln Sie das Datenverzeichnis <data_dir> einmalig in dieser Reihenfolge:
$JOB_SEARCH_DIR, falls gesetzt.job-search/im benutzerspezifischen Konfigurationsverzeichnis des von Ihnen verwendeten Agenten:~/.claude/job-search/für Claude Code,~/.codex/job-search/für Codex CLI,~/.gemini/job-search/für Gemini CLI. Verwenden Sie für jeden anderen Agenten den entsprechenden benutzerspezifischen Ordner.
Verwenden Sie niemals einen Ordner innerhalb der Fähigkeit oder in einem Projekt-Repository. Wenn <data_dir> nicht existiert, erstellen Sie es, kopieren Sie templates/profile.md und templates/offers_log.md aus dieser Fähigkeit hinein und teilen Sie dem Nutzer mit, welchen Pfad Sie verwendet haben.
- Lebenslauf. Lesen Sie
cv_pathaus<data_dir>/profile.md. Wenn es?ist, fehlt oder die Datei nicht gefunden wird, fragen Sie den Nutzer nach einem Lebenslauf (Pfad oder eingefügter Text) und speichern Sie den Pfad im Profil; bewerten Sie die Eignung nicht ohne einen Lebenslauf. Der Lebenslauf ist die maßgebliche Quelle für Fähigkeiten und Erfahrungsstufe; erfinden Sie keine Erfahrung. - LinkedIn (optional, nach bestem Wissen). LinkedIn blockiert üblicherweise automatisierte Leseversuche hinter einer Anmeldemaske. Versuchen Sie daher einmalig die
linkedin-URL aus dem Profil, wenn vorhanden, und falls sie blockiert ist, überspringen Sie sie stillschweigend. Fragen Sie den Nutzer nur dann nach einem eingefügten Profil oder PDF-Export, wenn etwas im Angebot davon abhängt (z. B. Recruiter-Behauptungen über das Profil des Nutzers, oder der Lebenslauf enthält nicht, was die Rolle benötigt). Der Lebenslauf bleibt primär; LinkedIn dient nur als Querverweis darauf, was der Recruiter gesehen hat. - Profil. Lesen Sie
<data_dir>/profile.md(siehe Schritt 1). - Bisherige Angebote. Überfliegen Sie
<data_dir>/offers_log.md. Erwähnen Sie es, wenn dasselbe Unternehmen oder derselbe Recruiter erneut auftritt, oder wenn sich die Vergütung sinnvoll mit früheren Angeboten vergleichen lässt.
Schritt 1: Bestätigen oder Interview (fragen, nicht annehmen)
Gehaltszahlen und Bedingungen ändern sich, und eine falsche Annahme ruiniert stillschweigend den gesamten Vergleich.
- Profil hat Werte und
last_verifiedexistiert: Zeigen Sie eine kompakte Zusammenfassung der gespeicherten Details und bitten Sie den Nutzer, sie zu bestätigen oder mitzuteilen, was sich geändert hat. Fragen Sie nur für Felder, die mit?markiert sind oder die der Nutzer korrigiert. Wennlast_verifiedälter als 6 Monate ist, sagen Sie dies und gehen Sie die Felder sorgfältiger durch. - Profil ist leer oder fehlt (erste Ausführung): Führen Sie das vollständige Interview unten durch, schreiben Sie dann die Antworten in
<data_dir>/profile.mdund setzen Sielast_verifiedauf heute. - Nach jeder Änderung aktualisieren Sie
profile.md(behalten Sie das bestehende Layout bei), sodass die nächste Ausführung eine schnelle Bestätigung ist.
Senden Sie Fragen als eine gruppierte Nachricht (verwenden Sie Ihr strukturiertes Fragen-Werkzeug, falls der Agent eines hat), zusammen mit allen Angebotsdetails, die fehlen.
1. Finanzielle Grundlagen und Vertragsstruktur
- Aktuelles Bruttogrundgehalt und jährliche Zielprämie/variable Vergütung (und wie zuverlässig sie ausgezahlt wird).
- Vertragsart: Spanisch unbefristet/befristet, EOR, Autónomo/Freelancer, US W2 vs 1099, andere.
- Anzahl der Zahlungstranchen (12 oder 14). Dies ändert den monatlichen Cashflow, nicht das jährliche Netto, ist aber beim Vergleich monatlicher Zahlen relevant.
2. Standort und Steuerkontext
- Land und Stadt/Region, in der sie jetzt versteuert werden, und wo sie unter dem Angebot versteuert würden (Sätze unterscheiden sich nach spanischer Autonomer Gemeinschaft, Schweizer Kanton, US-Bundesstaat usw.).
- Besondere Regelung oder Abzüge (Beckham/Impatriate-Regelung, Behinderung, Angehörige, Hypothek, regionale Abzüge).
3. Zusatzleistungen und Eigenkosten
- Nicht-monetäre Leistungen jetzt: private Krankenversicherung, Rentenbeitragszuschuss, Essensgutscheine, Fahrtkostenzuschuss, Aktien, Fortbildungsbudget, jeweils mit ungefährem jährlichen EUR-Wert.
- Vom Arbeitnehmer selbst getragene Kosten: nicht erstattetes Pendeln, Ausrüstung, Coworking.
4. Arbeitsweise und Kostenauswirkung
- Aktuelles Arbeitsmodell (100 % remote, hybrid mit Tagen pro Woche, im Büro) und ihr bevorzugtes Modell mit Angabe, wie viel Bürozeit sie tolerieren würden.
- Wenn hybrid oder im Büro: monatliche Pendelkosten und wöchentliche Pendelzeit.
5. Entscheidungsschwelle
- Die minimale Netto-Steigerung, die einen Wechsel lohnenswert macht, z. B. „+15 % effektives Netto“ (Schätzen Sie +15-20 % für einen Jobwechsel vor, höher für B2B oder weniger stabile Angebote, und lassen Sie den Nutzer dies überschreiben). Fragen Sie nach harten Ausschlusskriterien (Vor-Ort-Pflicht, nur Vertragsposition, bestimmte Branche).
Pro Angebot (niemals im Profil gespeichert): Für B2B/stündlich realistische abrechenbare Stunden pro Jahr und erwartete Lücken zwischen Verträgen; für nicht in EUR den Wechselkurs (Schritt 2 holt ihn ab).
Schritt 2: Netto-Vergleich
Vergleichen Sie das Netto, nicht das Brutto, für den aktuellen Job und das Angebot. Netto bedeutet nach Sozialversicherung, Einkommensteuer und für Freelancer die Selbstständigenkosten (Cuota de autónomos, Steuerberater, Versicherung). Addieren Sie dann den jährlichen Wert der nicht-monetären Leistungen und subtrahieren Sie die Eigenkosten, um ein effektives Netto zu erhalten.
- Wechselkurs: Führen Sie für nicht auf EUR lautende Angebote
python3 scripts/fetch_fx.py USD(EZB-Kurs über frankfurter.dev) aus und verwenden Sie diesen Kurs unter Angabe des Datums. Schlägt die Abfrage fehl, fragen Sie den Nutzer nach einem Kurs. - Skript ausführen:
python3 scripts/net_compare.py(siehe--help). Der aktuelle Job wird in--country, das Angebot in--offer-countrybesteuert (Standard: gleich). Es erhält den aktuellen Vertragstyp, das Bruttogehalt (einschließlich erwarteter variabler Vergütung), Zusatzleistungen, Zusatzkosten, regionale Anpassung und Angebotsdetails und gibt Netto, effektives Netto (in EUR), Delta und mit--thresholdaus, ob die Steigerung die Hürde übersteigt.--irpf-shift(Alias--region-adjust) ist die regionale Anpassung für das aktuelle Land und--offer-region-adjustfür das Angebotsland; sagen Sie, was Sie übergeben haben.- Spanien (ES): Die Anpassung ist eine IRPF-Prozentpunktverschiebung (ungefähr -0,01 bis -0,015 für Niedrigsteuerregionen wie Madrid, +0,01 für höhere Steuerregionen, 0 bei Unsicherheit).
- Vereinigte Staaten (US): Nur Bundessteuer, Single-Filer, Standardabzug, kein 401(k)/HSA, kein QBI-Abzug. Die Anpassung ist der durchschnittliche staatliche Einkommensteuersatz des Nutzers (0 für TX/FL/WA, andernfalls nach dem Bundesstaat fragen). Für 1099-Arbeit selbst bezahlte Krankenversicherung in
--expensesaufnehmen; für W-2-Angebote die Arbeitgeber-Krankenversicherungsdeckung und den 401(k)-Match in--offer-benefitseintragen. - Währungen: Angebotsbeträge sind in der Währung des Angebotslandes.
--fxwandelt die Vergütungswährung in diese Währung um (USD-Vergütung in Spanien besteuert:--fx 0.89), und--to-eurwandelt die Währung des Angebotslandes in EUR um (USD-Vergütung in den USA besteuert:--fx 1 --to-eur 0.89). Zusatzleistungen und Zusatzkosten sind immer in EUR.
- Steuermodule: Die Länderregeln befinden sich in
scripts/tax/<cc>.pymit ihren Zahlen indata/tax_<cc>.json; Spanien (ES) und die Vereinigten Staaten (US) existieren. Für andere Länder (Schweiz, Großbritannien usw.) schätzen Sie das Netto manuell aus den aktuellen Steuerstufen und Sozialversicherungsregeln (Websuche nach aktuellen Jahreszahlen), zeigen Sie die wichtigsten Schritte und kennzeichnen Sie es als grobe Schätzung. Wenn weiterhin Angebote aus diesem Land eingehen, schlagen Sie vor, ein Modul zu erstellen (references/adding-a-country.md). - Aktualitätsprüfung:
net_compare.pygibt eineWARNUNGaus, wenn die Steuerdaten veraltet oder unbestätigt sind. Wenn Sie dies sehen, teilen Sie es dem Nutzer mit und bieten Sie das unten beschriebene Aktualisierungsverfahren an, bevor Sie sich auf die Zahlen verlassen. - Geben Sie stets die verwendeten Annahmen an: Wechselkurs, abrechenbare Stunden, Ausgaben, Region, Steuerjahr. Sagen Sie, dass das Ergebnis eine Schätzung ist und dass ein Steuerberater oder Asesor für eine echte Entscheidung bestätigen sollte.
- Für B2B ignoriert das Netto immer noch, was ein Arbeitnehmer kostenlos erhält: bezahlten Urlaub, bezahlte Krankschreibung, Arbeitslosenversicherung, Rentenanwartschaften, Arbeitgeberbeiträge. Geben Sie das „äquivalente Arbeitnehmer-Brutto“ an und kennzeichnen Sie Vertragsrisiken (Einzelkunde, Kündigungsfristen, Risiko der Scheinselbstständigkeit, Exklusivität).
Schritt 3: Eignung und Bedingungen
Eignung (Lebenslauf vs. Rolle). Bewertung von 10 mit einer Begründungszeile. Listen Sie Übereinstimmungen (mit Nachweis aus dem Lebenslauf), Lücken (echt vs. nur nicht aufgeführt) und die wahrscheinliche tatsächliche Tätigkeit und Erfahrungsstufe im Vergleich zur aktuellen Rolle des Nutzers auf. Recruiter-Jobtitel verbergen oft engere Arbeit als beworben, sagen Sie daher, was die Rolle wahrscheinlich ist.
Bedingungen (Priorität: Netto-Gehalt > Remote > Karriereentwicklung). Verwenden Sie references/benefits-checklist.md für die Liste der Zusatzleistungen und markieren Sie jeden Punkt als genannt / gesetzlicher Standard / unbekannt:
- Gehalt und Zusatzleistungen (Krankenversicherung, Rentenbeitragszuschuss, bezahlte Freistellung, Krankenstand, Elternzeit), insbesondere für Rollen außerhalb Spaniens, wo die gesetzlichen Standards abweichen.
- Arbeitsmodell im Verhältnis zu den angegebenen Vorlieben, plus Zeitzonenüberlappung und Reisetätigkeit.
- Karriereentwicklung: Entwicklungspfad, Verantwortung, Ruf des Unternehmens und des Kunden, ob die Arbeit auf die
target_roles_and_topicsim Profil hinarbeitet oder von ihnen wegführt, Stabilität des Engagements.
Recruiter-Seitige Signale. Lesen Sie die Nachricht selbst unter Verwendung von references/recruiter-signals.md (versteckter Endkunde, vorlagenbasierte Kontaktaufnahme, „bis zu“-Gehälter, Vertragsform vs. Rolle, Umfang vs. Titel) und listen Sie die gefundenen Warnsignale und guten Anzeichen auf. Optional suchen Sie im Web nach dem Ruf des Unternehmens und des Endkunden.
Schritt 4: Urteil, Fragen, Antwort
- Urteil: Verfolgen, Zuerst fragen oder Ablehnen, mit den 2-3 Gründen, die entscheidend waren, explizit geprüft gegen die Schwelle und Ausschlusskriterien des Nutzers.
- Fragen an den Recruiter: nur die 2-3, deren Antworten die Entscheidung umkehren könnten (normalerweise die tatsächliche Gehaltsstruktur und Regelungen zur bezahlten Freistellung, der tatsächliche Umfang und das Team, Vertragsdauer und Kündigungsbedingungen). Keine allgemeinen Füllfragen.
- Antwortentwurf, sobald die Entscheidung klar ist oder der Nutzer sie angibt, in der Sprache des Recruiters, kurz, im Stil des Nutzers. Ablehnung: Danken, optional eine Begründungszeile. Um Details bitten: bedingtes Interesse plus die Fragen; das aktuelle Gehalt nicht preisgeben (stattdessen, falls nützlich, eine Zielspanne anbieten). Wenn noch unentschlossen, bieten Sie kurz beide Entwürfe an. Ein Absatz entspricht einer Zeile (keine manuellen Zeilenumbrüche) und verwenden Sie Striche sparsam.
Schritt 5: Angebot protokollieren
Nach dem Urteil fügen Sie eine Zeile an <data_dir>/offers_log.md an (Datum, Unternehmen und Endkunde, Rolle, Vertrag, Angebotene Vergütung, Effektives Netto-Delta, Eignung, Urteil, Ergebnis/Kommentare). Fragen Sie vor dem Schreiben, wenn der Nutzer nicht gesagt hat, es zu protokollieren. Wenn der Nutzer Ihnen später mitteilt, was passiert ist (geantwortet, abgelehnt, Vorstellungsgespräch), aktualisieren Sie das Ergebnis dieser Zeile.
Jährliche Aktualisierung der Steuerdaten
Jede data/tax_<cc>.json enthält die Einkommensteuertabelle des Landes, die Sätze und Höchstbeträge der Sozialversicherung oder Lohnsteuer sowie Abzüge (Spanien auch die Autónomo-Beitragstabelle), mit tax_year, verified_on und verified_by. Die Zahlen werden jeden Januar veraltet, daher aktualisieren Sie sie, wenn das Skript warnt, wenn das Kalenderjahr tax_year überschreitet oder wenn der Nutzer danach fragt. Verfahren:
- Suchen Sie die offiziellen Quellen, die in den
sourcesder Datei aufgeführt sind. Spanien: AEAT für die IRPF-Skala und den persönlichen Mindestbetrag, Seguridad Social für die RETA-Beitragstabelle, die maximale Beitragsbemessungsgrundlage und die Arbeitnehmerbeiträge einschließlich MEI. USA: IRS-Überprüfung des Inflationsanpassungs-Rev. Proc. für Steuerstufen und Standardabzug, SSA für die Social Security-Lohnbemessungsgrenze; lesen Sie die Regeln für den Additional Medicare Tax und die Selbstständigensteuer erneut, die die erste Version aus allgemeinem Wissen übernommen hat. - Zeigen Sie dem Nutzer einen Vorher/Nachher-Unterschied jedes geänderten Werts mit dem Quelllink. Überschreiben Sie nicht stillschweigend: Eine falsche Steuerzahl beschädigt stillschweigend jeden zukünftigen Vergleich; der Nutzer bestätigt daher zuerst.
- Nach der Zustimmung des Nutzers bearbeiten Sie das JSON, setzen
tax_year,verified_onauf heute undverified_byauf die tatsächlich gelesenen Quellen (entfernen Sie die Formulierung „NOT checked“ nur, wenn Sie wirklich anhand offizieller Seiten überprüft haben). - Führen Sie einen Beispielvergleich erneut aus, um zu prüfen, ob nichts kaputt gegangen ist.
Eine planmäßige Erinnerung ist optional: Wenn der Nutzer eine echte Erinnerung im Januar wünscht, bieten Sie an, eine mit dem Planungsmechanismus des Agenten oder des Betriebssystems einzurichten (cron, ein geplanter Agenten-Task, ein Kalenderereignis), der eine Sitzung öffnet, die diese Aktualisierung ausführt.
Ausgabeformat
Halten Sie es überschaubar, keinen Aufsatz. Verwenden Sie genau diese Abschnitte in dieser Reihenfolge:
- TL;DR (2 Zeilen): Urteil, Eignungsbewertung, effektives Netto-Delta vs. Schwelle.
- Netto-Vergleich: eine Tabelle mit Zeilen Brutto, Sozialversicherung/Cuota, Einkommensteuer, Netto, Zusatzleistungen, Eigenkosten, Effektives Netto und Spalten Aktuell / Angebot / Delta; darunter die Liste der Annahmen.
- Eignung: Bewertung, Übereinstimmungen, Lücken, wahrscheinlicher tatsächlicher Umfang.
- Bedingungen: kurze Tabelle zu Remote, Zusatzleistungen, Karriereentwicklung, Risiken.
- Recruiter-Signale (jeweils eine kurze Zeile) und Fragen an den Recruiter: 2-3 nummerierte Punkte.
- Antwortentwurf.
- Angenommen oder unbestätigt: Aufzählungsliste.
Erzeugen Sie keine Fließtextabsätze, wo eine Tabelle oder Aufzählung ausreicht.