Community생산성 & 협업github.com

MartinezAgullo/job-offer-evaluator

채용 제안 또는 리크루터 메시지(LinkedIn, 이메일, 헤드헌터)를 평가합니다. 현재 패키지에 대해 사용자와 인터뷰하고, 순 실수령액을 추정하며, 이력서와의 적합성을 확인하고, 조건을 평가하며, 핵심 질문을 제안하고, 답변 초안을 작성합니다.

job-offer-evaluator란 무엇인가요?

이 스킬은 리크루터로부터 받은 채용 제안이나 메시지를 평가할 때 사용됩니다. 사용자가 '이 역할이 가치 있을까?', '제안을 받았어요', 'LinkedIn 메시지'와 같은 말을 할 때 자동으로 활성화됩니다. 주요 기능은 사용자가 제공한 개인 정보(연봉, 계약 유형, 위치, 혜택 등)를 기반으로 현재 직장과 제안된 직장 간의 순 실수령액을 비교하는 것입니다. 스킬은 스페인, 미국 등 여러 국가의 사회보장세, 소득세, 자영업자 비용을 고려하여 ‘순수 실수령액’을 계산합니다. 또한 이력서(CV)와 제안의 적합성을 10점 만점으로 평가하고, 원격 근무, 복리후생, 경력 개발 가능성 등 조건을 분석합니다. 마지막으로 리크루터에게 물어볼 2-3가지 핵심 질문과 거절 또는 세부 사항 요청을 위한 답변 초안을 제공합니다. 이 스킬은 Claude Code, Codex CLI, Gemini CLI 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있도록 설계되었습니다.

지원 대상✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/MartinezAgullo/agent-skills-toolbox/tree/HEAD/skills/job-offer-evaluator

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

채용 제안 평가기 (Job offer evaluator)

사용자는 정기적으로 리크루터 메시지를 받으며, 매번 동일한 심사를 원합니다: 역할이 적합한지, 실제(순) 조건이 현재보다 나은지, 무엇을 물어봐야 하는지, 어떻게 답변해야 하는지. 계약 유형과 국가에 따른 총액(Gross) 수치는 오해를 불러일으키므로, 이 스킬의 핵심은 사용자가 직접 제공한 사실에 기반한 순 실수령액 비교입니다. 절대 사용자가 기억하거나 가정한 사실을 사용하지 마십시오.

0단계: 컨텍스트 로드

개인 데이터는 스킬 외부에 저장되므로, 스킬을 업데이트, 복사 또는 게시해도 데이터가 노출되거나 덮어쓰이지 않습니다. 데이터 폴더 <data_dir>을 다음 순서로 한 번 확인합니다:

  1. $JOB_SEARCH_DIR이 설정된 경우 해당 경로.
  2. 사용 중인 에이전트의 사용자 수준 설정 폴더 내 job-search/ 폴더: Claude Code의 경우 ~/.claude/job-search/, Codex CLI의 경우 ~/.codex/job-search/, Gemini CLI의 경우 ~/.gemini/job-search/. 다른 에이전트의 경우 동등한 사용자 수준 폴더를 사용하십시오.

스킬 내부나 프로젝트 저장소 내의 폴더는 절대 사용하지 마십시오. <data_dir>이 존재하지 않으면 생성하고, 이 스킬의 templates/profile.md와 templates/offers_log.md를 복사한 다음 사용자에게 사용한 경로를 알려주십시오.

  1. 이력서(CV). <data_dir>/profile.md에서 cv_path를 읽습니다. 값이 ?이거나, 없거나, 파일을 찾을 수 없으면 사용자에게 이력서(경로 또는 붙여넣은 텍스트)를 요청하고 경로를 프로필에 저장합니다. 이력서 없이 적합성을 평가하지 마십시오. 이력서는 기술과 경력 수준에 대한 신뢰할 수 있는 출처입니다. 경험을 지어내지 마십시오.
  2. LinkedIn (선택 사항, 최선의 노력). LinkedIn은 일반적으로 자동화된 읽기를 로그인 장벽으로 차단하므로, 프로필에 linkedin URL이 있으면 한 번 시도해보고 차단되면 조용히 건너뜁니다. 제안이 이에 의존할 때만(예: 리크루터가 사용자 프로필에 대해 주장하거나, 이력서에 역할에 필요한 내용이 부족한 경우) 사용자에게 붙여넣은 프로필이나 PDF 내보내기를 요청하십시오. 이력서가 기본이며, LinkedIn은 리크루터가 본 내용을 교차 확인하는 용도로만 사용합니다.
  3. 프로필. <data_dir>/profile.md를 읽습니다 (1단계 참조).
  4. 과거 제안. <data_dir>/offers_log.md를 훑어봅니다. 동일한 회사나 리크루터가 다시 나타나거나, 급여가 이전 제안과 비교하여 유용할 경우 언급합니다.

1단계: 확인 또는 인터뷰 (추측하지 말고 질문하세요)

급여 수치와 조건은 변하며, 잘못된 가정은 비교를 조용히 망칩니다.

  • 프로필에 값이 있고 last_verified가 존재함: 저장된 세부 정보의 간결한 요약을 보여주고 사용자에게 확인하거나 변경된 사항을 말하도록 요청합니다. ?로 표시되거나 사용자가 수정하는 필드에 대해서만 질문하십시오. last_verified가 6개월보다 오래된 경우 이를 알리고 필드를 더 주의 깊게 살펴봅니다.
  • 프로필이 비어 있거나 없음 (첫 실행): 아래 전체 인터뷰를 진행한 후, 답변을 <data_dir>/profile.md에 쓰고 last_verified를 오늘 날짜로 설정합니다.
  • 변경 후에는 profile.md를 업데이트하여(기존 레이아웃 유지) 다음 실행 시 빠른 확인이 가능하도록 합니다.

질문은 하나의 그룹 메시지로 보내고(에이전트에 구조화된 질문 도구가 있으면 사용), 누락된 제안 세부 정보도 함께 보냅니다.

1. 재정 기준 및 계약 구조

  • 현재 총 기본 급여 및 연간 목표 보너스/변동급(그리고 실제 지급되는 신뢰도).
  • 계약 유형: 스페인 정규직/임시직, EOR, 자영업자/프리랜서, 미국 W2 대 1099, 기타.
  • 급여 지급 횟수(12회 또는 14회). 이는 월별 현금 흐름을 변경하며, 연간 순액은 변경하지 않지만 월별 수치 비교 시 중요합니다.

2. 위치 및 세금 컨텍스트

  • 현재 세금을 내는 국가 및 도시/지역, 그리고 제안 조건에서 세금을 내야 할 국가 및 지역(세율은 스페인 자치 지역, 스위스 칸톤, 미국 주 등에 따라 다름).
  • 특별 제도 또는 공제 혜택(Beckham/외국인 특례 제도, 장애, 부양가족, 주택 담보 대출, 지역별 공제).

3. 복리후생 및 자비 부담 비용

  • 현재 비현금 복리후생: 민간 건강 보험, 연금 매칭, 식사 바우처, 교통 보조금, 스톡옵션, 교육 예산 (각각 연간 대략적인 EUR 가치).
  • 사용자가 직접 부담하는 업무 관련 비용: 보상되지 않는 통근 비용, 장비, 코워킹 비용.

4. 근무 방식 및 비용 영향

  • 현재 근무 모델(100% 원격, 주당 일수 하이브리드, 사무실 출근) 및 선호하는 모델과 감수할 수 있는 사무실 출근 정도.
  • 하이브리드 또는 사무실 출근인 경우: 월 통근 비용 및 주당 통근 시간.

5. 의사 결정 기준

  • 이직을 고려할 최소 순 급여 상승분(예: "+15% 실질 순액"). 이직 시 약 +15-20%, B2B 또는 덜 안정적인 제안의 경우 더 높게 제안하고 사용자가 무시할 수 있도록 합니다. 절대적인 거절 조건(출근 필수, 계약직 전용, 특정 업종)에 대해 질문합니다.

제안별(프로필에 저장되지 않음): B2B/시간제의 경우 현실적인 연간 청구 가능 시간 및 계약 간 예상 공백 기간; 비EUR 급여의 경우 환율(2단계에서 가져옴).

2단계: 순 실수령액 비교

현재 직장과 제안에 대해 총액(Gross)이 아닌 순액(Net)을 비교합니다. 순액은 사회보장세, 소득세, 그리고 프리랜서의 경우 자영업 비용(autónomos 부담금, 회계사 비용, 보험료)을 공제한 금액입니다. 그런 다음 비현금 복리후생의 연간 가치를 더하고 자비 부담 업무 비용을 빼서 실질 순액(Effective net) 을 계산합니다.

  • 환율(FX): 비EUR 제안의 경우 python3 scripts/fetch_fx.py USD를 실행하고(frankfurter.dev를 통한 ECB 환율) 해당 환율과 날짜를 인용하여 사용합니다. 조회에 실패하면 사용자에게 환율을 요청합니다.
  • 스크립트 실행: python3 scripts/net_compare.py를 실행합니다(--help 참조). 현재 직장은 --country로, 제안은 --offer-country로 과세됩니다(기본값: 동일). 현재 계약 유형, 총 급여(예상 변동급 포함), 복리후생, 추가 비용, 지역 조정 및 제안 세부 정보를 입력받아 순액, 실질 순액(EUR), 차액을 출력하고, --threshold와 함께 사용하면 상승분이 기준을 충족하는지 보여줍니다. --irpf-shift(--region-adjust의 별칭)는 현재 국가의 지역 조정이고 --offer-region-adjust는 제안 국가의 지역 조정입니다. 전달한 값을 설명하십시오.
    • 스페인(ES): 조정은 IRPF 백분율 포인트 이동입니다(마드리드와 같은 저세율 지역의 경우 대략 -0.01 ~ -0.015, 고세율 지역의 경우 +0.01, 확실하지 않으면 0).
    • 미국(US): 연방세만, 단일 신고자, 표준 공제, 401(k)/HSA 없음, QBI 공제 없음. 조정은 사용자의 평균 주(state) 소득세율입니다(텍사스/플로리다/워싱턴은 0, 그 외 주는 사용자에게 질문). 1099 근무의 경우 자비 부담 건강 보험료를 --expenses에 포함합니다. W-2 제안의 경우 고용주 부담 건강 보험과 401(k) 매칭을 --offer-benefits에 넣습니다.
    • 통화: 제안 금액은 제안 국가의 통화로 표시됩니다. --fx는 급여 통화를 해당 통화로 변환하고(스페인에서 과세되는 USD 급여: --fx 0.89), --to-eur는 제안 국가의 통화를 EUR로 변환합니다(미국에서 과세되는 USD 급여: --fx 1 --to-eur 0.89). 복리후생과 추가 비용은 항상 EUR입니다.
  • 세금 모듈: 국가별 규칙은 scripts/tax/<cc>.py에, 수치는 data/tax_<cc>.json에 있습니다. 스페인(ES)과 미국(US)이 존재합니다. 다른 국가(스위스, 영국 등)의 경우 현재 세금 구간과 사회보장 규칙(현재 연도 수치 웹 검색)을 기반으로 순액을 수동으로 추정하고, 주요 단계를 보여주며 대략적인 추정치임을 표시합니다. 해당 국가의 제안이 계속 들어오면 모듈 구축을 제안합니다(references/adding-a-country.md 참조).
  • 최신성 확인: net_compare.py는 세금 데이터가 오래되었거나 확인되지 않은 경우 WARNING을 출력합니다. 이를 발견하면 사용자에게 알리고, 수치를 신뢰하기 전에 아래 새로 고침 절차를 제공합니다.
  • 사용된 가정(환율, 청구 가능 시간, 비용, 지역, 과세 연도)을 항상 명시하십시오. 결과는 추정치이며, 실제 결정을 위해서는 세무사/회계사의 확인이 필요하다고 말합니다.
  • B2B의 경우 순액은 여전히 직원이 무료로 받는 것(유급 휴가, 유급 병가, 실업 보호, 연금 적립, 고용주 부담금)을 무시합니다. "동등한 직원 총 급여"를 제공하고 계약 위험(단일 고객, 해지 조건, 허위 자영업 위험, 전속 계약)을 표시합니다.

3단계: 적합성 및 조건

적합성 (이력서 대 역할). 이유와 함께 10점 만점으로 평가합니다. 일치 항목(이력서 증거 포함), 차이점(실제 대 단순히 목록에 없는 것), 그리고 현재 역할과 비교한 실제 일상 업무 및 경력 수준을 나열합니다. 리크루터의 직함은 종종 광고된 것보다 더 좁은 범위의 업무를 숨기므로, 역할이 실제로 무엇인지 말하십시오.

조건 (우선순위: 순 급여 > 원격 근무 > 경력 경로). 복리후생 목록은 references/benefits-checklist.md를 사용하고, 각 항목을 명시됨 / 법정 기본값 / 알 수 없음으로 표시합니다:

  • 급여 및 복리후생(건강 보험, 퇴직 연금 매칭, 유급 휴가, 병가, 육아 휴직). 특히 법정 기본값이 다른 스페인 이외의 역할에서 중요합니다.
  • 사용자가 명시한 선호도에 따른 근무 방식, 시간대 중복 및 여행.
  • 경력 경로: 성장 경로, 소유권, 회사 및 고객 평판, 업무가 프로필의 target_roles_and_topics를 향해 나아가는지 또는 멀어지는지, 고용 안정성.

리크루터 측 신호. references/recruiter-signals.md를 사용하여 메시지 자체를 읽고(숨겨진 최종 고객, 템플릿화된 접근, "최대" 급여, 역할 대비 계약 형태, 범위 대비 직함) 발견된 경고 및 긍정 신호를 나열합니다. 선택적으로 회사 및 최종 고객 평판을 웹에서 검색합니다.

4단계: 판결, 질문, 답변

  • 판결(Verdict): 추진(Pursue), 먼저 질문(Ask first), 또는 거절(Decline) 중 하나로, 결정을 좌우한 2-3가지 이유와 함께 사용자의 기준 및 거절 조건에 대해 명시적으로 확인합니다.
  • 리크루터를 위한 질문: 답변에 따라 결정이 바뀔 수 있는 2-3가지 질문만 합니다(보통 실제 급여 구조와 유급 휴가 조건, 실제 업무 범위와 팀, 계약 기간 및 해지 조건). 일반적인 질문은 넣지 않습니다.
  • 답변 초안: 결정이 명확해지거나 사용자가 결정을 말하면, 리크루터의 언어로, 간결하게, 사용자의 어조로 작성합니다. 거절: 감사 인사와 함께 선택적으로 한 줄의 이유를 포함합니다. 세부 사항 요청: 조건부 관심과 함께 질문을 포함합니다. 현재 연봉을 밝히지 말고(필요하다면 목표 범위를 제시). 아직 결정하지 못한 경우, 두 초안을 간략하게 제공합니다. 한 문단은 한 줄로(강제 줄바꿈 없음) 하고 대시는 드물게 사용합니다.

5단계: 제안 기록

판결 후, <data_dir>/offers_log.md에 한 행을 추가합니다(날짜, 회사 및 최종 고객, 역할, 계약, 제안된 급여, 실질 순액 차이, 적합성, 판결, 결과/설명). 사용자가 기록하라고 말하지 않은 경우 쓰기 전에 물어봅니다. 나중에 사용자가 결과(답변, 거절, 면접)를 알려주면 해당 행의 결과(Outcome)를 업데이트합니다.

연간 세금 데이터 새로 고침

각 data/tax_<cc>.json에는 해당 국가의 소득세율표, 사회보장 또는 급여 세율 및 상한선, 공제 항목이 포함되어 있으며(스페인의 경우 autónomo 부담금 표도 포함), tax_year, verified_on 및 verified_by 필드가 있습니다. 수치는 매년 1월에 만료되므로, 스크립트가 경고할 때, 역년이 tax_year를 초과할 때, 또는 사용자가 요청할 때 새로 고칩니다. 절차:

  1. 파일의 sources에 나열된 공식 출처를 검색합니다. 스페인: IRPF 세율표 및 개인 최소 공제액은 AEAT, RETA 부담금 표, 최대 기여 기준 및 MEI를 포함한 직원 부담률은 Seguridad Social. 미국: 세금 구간 및 표준 공제액은 IRS 물가 조정 Rev. Proc., 사회보장 임금 기준은 SSA; 추가 메디케어 세금 및 자영업 세금 규칙을 다시 읽습니다(첫 번째 버전은 일반 지식에서 가져옴).
  2. 변경된 모든 값의 이전/이후 차이점을 출처 링크와 함께 사용자에게 보여줍니다. 조용히 덮어쓰지 마십시오: 잘못된 세금 수치는 향후 모든 비교를 조용히 망치므로 사용자가 먼저 확인해야 합니다.
  3. 승인을 받으면 JSON을 편집하고, tax_year, verified_on을 오늘 날짜로 설정하고, verified_by를 실제로 읽은 출처로 설정합니다(공식 페이지에서 실제로 확인한 경우에만 "확인되지 않음" 문구를 제거).
  4. 샘플 비교를 다시 실행하여 문제가 없는지 확인합니다.

정기적인 알림은 선택 사항입니다. 사용자가 1월에 실제 알림을 원하면, 에이전트 또는 OS가 제공하는 일정 메커니즘(cron, 예약된 에이전트 작업, 캘린더 이벤트)을 사용하여 이 새로 고침을 실행하는 세션을 여는 알림을 설정하겠다고 제안합니다.

출력 형식

에세이가 아닌 훑어보기 쉽게 유지하십시오. 정확히 다음 섹션을 이 순서대로 사용하십시오:

  1. TL;DR (2줄): 판결, 적합성 점수, 기준 대비 실질 순액 차이.
  2. 순액 비교: 행(총 급여, 사회보장/부담금, 소득세, 순액, 복리후생, 자비 부담 비용, 실질 순액)과 열(현재 / 제안 / 차이)로 구성된 표; 그 아래 가정 목록.
  3. 적합성: 점수, 일치 항목, 차이점, 실제 예상 업무 범위.
  4. 조건: 원격 근무, 복리후생, 경력 경로, 위험에 대한 간단한 표.
  5. 리크루터 신호 (각각 한 줄 간략히) 및 리크루터를 위한 질문: 2-3개 번호 항목.
  6. 답변 초안.
  7. 가정되거나 확인되지 않은 사항: 글머리 기호 목록.

표나 글머리 기호로 충분한 곳에 산문 단락을 만들지 마십시오.

관련 스킬