ai-resume-screening-safeguards
AI로 이력서를 거를 때의 안전장치입니다. 평가표의 보호 속성 점검, 경력 계산, 이력서 속 프롬프트 주입 탐지를 담았습니다.
어떤 문제를 푸나The problem
AI가 지원자를 가려내는 흐름에서는 평가표, 계산, 입력 세 곳을 지켜야 합니다. 보호 속성으로 가르는 평가표는 확정할 수 없어야 하고, 경력 합계는 모델이 아니라 코드가 계산해야 하며, 스스로를 높게 평가하라고 모델에게 지시하는 이력서는 사람에게 보여 주어야 합니다.
이런 분께 맞습니다Who it is for
채용 보조에 LLM을 쓰는 팀, 평가표와 이력서 입력을 구조적으로 점검하고 싶은 사람.
무엇을 하나What it does
- rubric_lint.py는 영어와 한국어 예시 어휘로 보호 속성을 막고(모든 문자열 필드 검사), 프록시와 모호한 기준을 경고하며 가중치 합 100과 서로 다른 네 단계 앵커를 확인합니다. 통과는 편향이 없다는 뜻이 아닙니다.
- career_facts.py는 겹치는 경력을 한 번만 세고 공백은 감점이 아닌 질문으로 보여 주며, 연도만 있거나 미래이거나 검증 안 된 항목은 알 수 없음으로 나눕니다.
- injection_scan.py는 영 너비·방향 제어 문자, 유사 문자, 글자 사이 공백을 정규화한 뒤 여러 언어의 문구를 찾고, 경고는 사람이 보며 점수를 바꾸지 않습니다.
직접 돌려 본 출력Real output
저장소의 examples 폴더를 실행한 결과입니다.
$ bash examples/demo.sh
# 1. A rubric that selects on a protected attribute cannot be frozen
$ python3 scripts/rubric_lint.py examples/rubric-biased.json
[blocking] protected_attribute ['c1']
[warning] weight_concentration ['c1']
BLOCKED: cannot freeze
[exit 1]
$ python3 scripts/rubric_lint.py examples/rubric-good.json
[warning] weight_concentration ['c1']
ok: no blocking issue found. This is not a bias clearance: a person must still read the rubric
[exit 0]
알아둘 한계Limits
- 단어 목록은 예시이며 완전할 수 없습니다. 관할 지역에 맞게 고치고 전문가의 검토를 받으십시오.
- 법률 자문이 아니며 사람이 평가표와 이력서를 읽는 일을 대신하지 않습니다.
받아서 쓰기Get it
# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/ai-resume-screening-safeguards.git
# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/ai-resume-screening-safeguards.git ~/.claude/skills/hiring-screen-safeguards
정보Info
- 분류Category
- 콘텐츠·서비스Content & services
- 형태Type
- 명령줄 도구Command-line tool
- 라이선스License
- MIT
- 필요한 것Requires
- Python 3.10 이상
- 저장소Repository
- ai-resume-screening-safeguards
- 토픽Topics
hiringrecruitingai-ethicsfairnessprompt-injectionllmcomplianceclaude-skills
2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.