내 오픈소스 라이브러리로 AI에게 손발을 줬더니, AI 회사에서 거절당했다
I gave the AI arms and legs then it rejected me
TL;DR Highlight
Rust로 만든 입력 시뮬레이션 오픈소스 라이브러리 enigo의 메인테이너가 Anthropic의 Claude Computer Use에 자신의 코드가 쓰이고 있다는 걸 발견하고 해당 팀에 지원했다가 거절당한 경험담. 오픈소스 기여와 취업 사이의 간극을 잘 보여주는 사례다.
Who Should Read
오픈소스 프로젝트를 운영하거나 기여하면서 커리어와 연결하려는 개발자. 또는 빅테크 채용 프로세스의 현실에 관심 있는 개발자.
Core Mechanics
- enigo는 macOS, Windows, Linux(Wayland/X11/libei), *BSD에서 루트 권한 없이 마우스/키보드 입력을 시뮬레이션할 수 있는 Rust 라이브러리다. crates.io 기준 30만 다운로드, GitHub 1,200+ 스타로 해당 분야에서 사실상 표준 라이브러리다.
- Anthropic은 Claude Desktop의 Computer Use 기능 구현에 enigo 0.2.1을 사용하고 있다. Claude.dmg를 압축 해제해서 바이너리를 문자열 검색하면 직접 확인할 수 있다.
- Claude Desktop은 Electron 앱인데도 macOS와 Windows만 공식 지원한다. Electron의 장점이 크로스플랫폼인데 Linux를 빠뜨린 건 이상한 결정이고, 커뮤니티가 직접 Linux 포팅을 해서 사용 중이다(enigo 호출 부분을 stub으로 대체하는 방식).
- 저자는 지인의 지인을 통해 Anthropic에서 enigo를 사용하는 미공개 기능 관련 포지션을 모집 중이라는 걸 알게 됐고, 직접 지원했다. 자신의 코드가 이미 제품에 들어가 있으니 꽤 유리할 거라 생각했다.
- 결과는 'the team doesn't have the capacity to review additional applications'라는 자동화된 거절 메일이었다. 몇 주 뒤에 받은 거라 ATS(지원자 추적 시스템)가 자동 처리한 것으로 보인다.
- 저자는 MIT 라이선스로 배포했기 때문에 Anthropic이 enigo를 사용해도 금전적 보상은 전혀 없다. GitHub 스타와 crates.io 다운로드 수만 올라갔다.
- 저자의 아쉬움은 단순한 취업 실패가 아니라, 수년간 쌓은 입력 시뮬레이션 분야 전문 지식과 크로스플랫폼 경험으로 Anthropic과 enigo 모두에게 실질적 가치를 줄 수 있었을 텐데 기회조차 못 얻었다는 점이다.
Evidence
- 저자의 지원 실패는 '친구의 친구'를 통해 정보를 얻고도 콜드 지원으로 간 게 패착이라는 의견이 많았다. 올바른 전략은 커버레터 제출이 아니라 그 '친구의 친구'에게 해당 엔지니어링 매니저에게 직접 소개를 부탁하는 것이었다는 지적이다.
- '왜 공짜로 쓰고 있는 사람한테 돈을 주겠냐'는 냉소적인 댓글이 있었다. MIT 라이선스로 무료로 쓸 수 있는 이상 회사 입장에서는 고용 인센티브 자체가 없다는 시각이고, 이는 오픈소스 생태계의 구조적 문제로 연결된다.
- 오픈소스 포트폴리오가 취업에 실질적으로 도움이 됐던 시기는 2014~2019년이고 그 이후로는 GitHub 스타나 다운로드 수가 채용 결정에 거의 영향을 미치지 않는다는 경험담이 공유됐다. HR 프로세스와 ATS가 정량적 매칭 이외의 맥락을 걸러내지 못한다는 지적이다.
- 지원자가 독일 뮌헨에 있고 Anthropic이 미국 SF 기반이라 비자/지리적 문제로 자동 필터됐을 가능성이 있다는 의견도 있었다. 2025년 현재 미국 비자 상황을 고려하면 해외 거주자를 걸러내는 게 이상하지 않다는 맥락이다.
- MIT 같은 지나치게 허용적인 라이선스는 장기적으로 엔지니어 시장을 왜곡한다는 주장이 나왔다. 라이브러리가 없었다면 회사가 직접 개발자를 고용해야 했을 텐데, 오픈소스 덕분에 그 비용을 절약하면서도 기여자는 아무 보상을 못 받는 구조가 문제라는 것이다. LGPL이나 AGPL 같은 카피레프트 라이선스를 써야 한다는 제안도 있었다.
How to Apply
- 빅테크 채용에 지원할 때 자신과 관련된 내부 정보를 얻었다면 콜드 지원 대신 내부 소개(referral) 경로를 먼저 찾아라. 특히 자신의 오픈소스가 해당 회사 제품에 쓰이고 있다면 해당 팀 엔지니어링 매니저나 커미터에게 LinkedIn/GitHub을 통해 직접 접촉하는 게 ATS 필터를 우회하는 현실적인 방법이다.
- Claude Desktop의 Computer Use 기능을 직접 분석하고 싶다면 글에서 제공한 명령어(`7z x Claude.dmg` → `perl` 문자열 검색)를 활용해 바이너리에서 사용된 Rust 라이브러리와 경로를 추출할 수 있다. 이 방식으로 Anthropic이 어떤 오픈소스 크레이트에 의존하는지 파악 가능하다.
- macOS/Windows 전용 데스크탑 앱에서 마우스/키보드 입력 자동화가 필요하다면 enigo를 검토해볼 만하다. 루트 권한 없이 크로스플랫폼 지원이 되고 Rust 기반이라 FFI로 Node.js(Electron), Python 등에서도 사용 가능하다.
- 오픈소스 라이브러리를 출시할 때 상업적 이용에 대한 정책을 명확히 해두는 게 좋다. MIT는 제약이 없어 기업이 제품에 자유롭게 사용할 수 있고, 기여나 고용 없이 써도 법적으로 문제없다. 지속 가능한 오픈소스를 원한다면 BUSL, SSPL, AGPL 같은 라이선스나 GitHub Sponsors/OpenCollective 설정을 초기부터 고려하라.
Code Example
snippet
# Claude Desktop macOS에서 enigo 사용 확인
$ 7z x Claude.dmg
$ perl -nle 'print while /.{0,67}enigo.{0,30}/g' Claude/Claude.app/Contents/Resources/app.asar.unpacked/node_modules/claude-native/claude-native-binding.node
# Claude Desktop Windows에서 enigo 사용 확인
$ 7z x Claude-Setup-x64.exe
$ 7z x AnthropicClaude-0.11.6-full.nupkg
$ perl -nle 'print while /.{0,75}enigo.{0,26}/g' Claude-Setup-x64/AnthropicClaude-0.11.6-full/lib/net45/resources/app.asar.unpacked/node_modules/claude-native/claude-native-binding.nodeTerminology
Computer UseAI가 실제 컴퓨터 화면을 보고 마우스/키보드를 직접 조작하는 기능. 사람이 컴퓨터를 쓰는 방식 그대로 AI가 브라우저를 열고 클릭하고 타이핑할 수 있다.
enigoRust로 작성된 입력 시뮬레이션 라이브러리. 코드로 마우스 클릭, 키보드 입력, 커서 이동을 OS에 전달할 수 있다. Windows/macOS/Linux 모두 지원한다.
ATSApplicant Tracking System. 회사가 수천 건의 입사 지원을 자동으로 분류하고 필터링하는 소프트웨어. 키워드 매칭이나 기준에 못 미치면 사람이 보기 전에 자동 탈락 처리된다.
crates.ioRust 언어의 공식 패키지 저장소. npm의 Rust 버전이라고 보면 된다. 여기서 다운로드 수는 해당 라이브러리의 실사용 지표다.
MIT 라이선스오픈소스 라이선스 중 가장 제약이 적은 것 중 하나. 상업적 이용, 수정, 배포 모두 자유롭고 저작권 표시만 유지하면 된다. 기여 의무나 소스 공개 의무가 없어 기업이 가장 선호한다.
Electron웹 기술(HTML/CSS/JS)로 데스크탑 앱을 만들 수 있는 프레임워크. 크로스플랫폼이 장점인데, Claude Desktop은 Electron을 쓰면서도 Linux를 공식 지원하지 않는다.