코딩 말고 클로드 코드 자동화 - 링크드인 아웃바운드 채용 자동화 하기

소개

좋은 인재의 영입을 위해서 링크드인에서 인재 검색을 하고, 프로필을 검토한 뒤에 메시지를 보내는 작업을 해야 합니다. 그런데 시간이 너무 많이 걸려서 이걸 자동화 하려고 해요.

이걸 하는데 있어서 반복적인 작업을 해야 하는 것과 더불어서 인지적 노력을 해야하는 부분이 있어서, n8n, Make, Zapier 등보다는 클로드 코드를 사용해서 자동화를 시도해보았어요.

사용한 툴

전체 자동화는 링크드인 페이지에서 액션을 하는 것과, 그런 액션을 통해 얻은 정보를 처리하는 (스크리닝, 개인화 메시지 작성 등)의 업무를 자동화 해야 합니다.

(1) 가장 안전해 보이는 링크드인 자동화 툴, Linked Helper

링크드인은 자동화된 액세스가 감지될 때, 계정에 경고를 하고, 심할 때는 계정 정지를 시키기도 합니다. 그래서, 이를 회피하는 다양한 웹서비스가 제공되는데요 (사용하는 사람이 약관 위반이지, 이런 앱을 제공하는 것 자체가 위법한 것은 아니어서 다양하게 있나봅니다),

저는 정말 제 계정이 소중하기 때문에 이걸 가장 안전하게 하는 툴로 Linked Helper를 쓰려고 정했어요. 10개 이상의 툴을 써보고 결정했습니다. 그 이유는

  • 클라우드에서 내 계정을 가지고 링크드인에 접속하는 경우, 내가 내 컴퓨터에서 내 계정으로 링크드인에 접속하면, IP가 점프가 있어서 링크드인에서 자동화 감지

  • 크롬 확장앱 형태의 툴은 링크드인이 바로 확장앱 감지가 가능

  • Linked Helper는 내 컴퓨터에서 브라우저를 띄워서 자동화하는 데스크탑앱이라 이런 위험이 없음

임의의 계정을 만들어서 링크드인 자동화를 하신다면, 다른 툴들도 좋을 것 같습니다

(2) 스크리닝 및 메시지 작성 등의 AI 기능은 클로드 코드를 에이전트처럼 쓰기

Linked Helper는 아쉽게도 AI 기능이 아직 없습니다. 이런 종류 툴들이 매우 영세해서 그런 고급 기능은 늦게 추가될건가봐요. 다른 툴들 중에서도 AI 기능이 추가되어 있는 것들도 있지만, 스크리닝과 개인화 메시지 작성까지 되는 것을 찾지는 못했습니다. 특히, 이런 기능이 그냥 링크드인 페이지가 아닌 링크드인 리크루터 페이지에서 가능해야 했거든요.

링크드인 리크루터는 높은 가격이지만, Open to work 정보를 볼 수 있는 것 때문에 구매를 안할 수 없었습니다. Open to work 상태인 사람들에게 메시지를 보내는게 그렇지 않은 사람 대비 체감상 수십배는 더 전환율이 높은데요, 링크드인 내에서는 메시지 보내는 것도 하루 Limit 같은 것이 있어서 더욱 필요했습니다.

슬랙 대시 보드의 스크린 샷

<링크드인 페이지와는 또 다른 링크드인 리크루터>

진행 방법

채용 아웃바운드 활동은

  1. 링크드인 리쿠르터에서 인재 검색

  2. 검색한 인재들의 프로필을 보고 핏이 맞는지 확인

  3. 핏이 맞는 인재에게 메시지 보내기

이렇게 구성됩니다.

이때, 인재 검색과 그 인재 프로필을 스크레이핑하는 것은 Linked Helper로 하고, 프로필을 스크리닝하고 스크린을 통화한 인재에게 보내는 개인 맞춤형 메시지를 만드는 것은 클로드 코드로 한 뒤에, 다시 Linked Helper 통해서 메시지를 보내려고 했어요.

전체 구성을 하고 나서는 이걸 위해서 클로드 코드를 쓰는게 맞나 하는 생각이 들었습니다. 제가 생각한 다른 방법은,

  • Linked Helper가 프로필을 스크레이핑하면, 그걸 Webhook으로 쏴주는 기능이 있어서, 웹훅으로 프로필 데이터를 받아서 Airtable에 프로필을 누적해서 넣고

  • Airtable의 Field Agent 기능 (별건 아니고, 테이블의 컬럼에 AI로 프롬프트한 결과를 넣어 주는 구글 스프레드 시트의 =AI( prompt ) 와 거의 같은 기능)을 써서 스크리닝 및 맞춤형 메시지를 작성

이렇게 하는게 더 간편한게 아닌가 하는 생각이 들었습니다.

그래도 일단 한번 해 보자, 내가 클로드 코드로 업무 자동화 하는 것이 분명 Agentic한 장점이 있을거라 생각하니 한번 확인해보자 -- 라는 심정으로 시도해 보았어요.

(1) Linked Helper (LH)로 472명의 후보자 검색 결과 가져옴

링크드인 리쿠르터에서 검색해서 Open-to-work 되어 있는 472명의 후보자 데이터를 가져왔습니다. 검색 결과를 스크레이핑한 것이라서 이름, 경력 등 검색 페이지에 노출되는 간단한 정보로 구성된 데이터였어요.

<검색 결과에서 가져온 프로필 정보는 제한적 - csv 포맷을 챗GPT로 보기 좋게 정리한 것>

이 400여명의 프로필 상세 정보를 다 한방에 가져올 수는 없었습니다. LH는 하루에 할 수 있는 액션의 횟수를 총 150회로 한정하고 있는데요, 이 Limit을 넘기게 셋업을 할 수는 있으나 그럴 경우 링크드인에서 경고나 계정 정지를 할 수 있다고 하더라구요.

그래서 LH로 스크레이핑한 한정된 프로필 정보만 가지고 1차 스크리닝을 해 보기로 했습니다.

(2) 검색 결과의 1차 스크리닝

1차 스크리닝을 하려고 할때 클로드 코드에게 어떻게 시켜야 할지 막막했습니다. 한동안 n8n으로 자동화하는 시도를 해 왔기 때문에, 여러가지 워크플로가 생각이 들더라구요.

저처럼 코딩을 해본 경험이 있거나, n8n/Make/Zapier/Airtable 등으로 자동화를 해본 분이라면 클로드 코드를 쓸 때 어떻게 써야 할지 막연할 수 있는 것 같아요.

그 해결 방법을 찾은 것이, 그냥 자연어로 막 시켜보면 된다는 것입니다! 마법의 단어 -- 해줘! 해줘!

일단 직무에서 필요한 능력과 실제 하는 일을 상세하게 적은 노션 페이지가 있었는데요, 이걸 ai edu manager.md로 저장했습니다.

그리고, 아래와 같이 요청했어요.

...

일단 첫번째 기획은 아래와 같았습니다.

여기 보시면 놀라운 지점은 코딩을 해서 효과적으로 할 수 있는 부분과 인지적 노력을 해야 하는 부분을 나눠서 계획을 세운다는 것이었어요.

비교하자면, 제가 만일 n8n으로 자동화를 했다면, 이런 전체 구조를 만들기 위한 프로세스를 정리하는 것을 하고, 그 프로세스 중 로지컬하게 동작해야 하는 부분(코딩을 통해 할 부분)과 AI를 써야 할 부분을 각각 나눠서 디자인을 해야 하고, 그걸 구현하기 위해서 오랜 시간 노드를 붙이고 테스트하는 작업을 반복해야 했습니다.

그런데, 클로드 코드는 그런 워크플로를 구체화 하는 것, 그리고, 그걸 실제 실행하는 것을 지가 모두 다 하는 것이었어요.

위의 화면은 실제 세운 계획을 수행하는 장면입니다.

지시 받은 업무를 시행하기 위해서 계획을 세운 것을 마치 기능 명세서처럼 스스로 상기하며, csv 파일을 처리할 떄는 터미널 명령어와 클코 스스로 작성한 파이썬 코드를 사용하며 정리하면서 수행해갔습니다.

또한, 중간에 에러가 발생하면, 그걸 스스로 해결하기 위해서 다른 방법도 시도하고요.

더욱 놀라운 것은 첫번째 시도를 통해서 전체 472명 중에서 제외된 사람의 수가 적자, 추가로 제외할 사람은 없는지 패턴을 찾아 보겠다고 하고는 업무를 수행합니다!

그리고, 그 결과를 아래 스크린샷처럼 정리해서 리포팅 해 줍니다.

이 리포팅을 보면서, 저는 추가로 줄여야 할 사람들이 필요한 것을 느꼈습니다. 여전히 431명도 많거든요. 왜냐면 하루에 링크드인에서 할 수 있는 일의 횟수 제한이 사실상 있어서요.

  • 1촌 신청 - 매주 100~200건

  • InMail (1촌 아닌 사람에게 보내는 메시지) - 한 달에 150번 보낼 수 있는 크레딧

  • 하루에 URL을 직접 치고 들어가서 볼 수 있는 프로필 수 < 50회

저 리포팅은 프로필 리스트에서 어떤 사람들을 줄일 수 있을지 힌트를 줍니다. 제가 처음에는 생각하지 못했지만, 경력이 PM이거나, 영업/마케팅/세일즈라면 저희 직무 핏이 맞지 않을거에요.

그래서 그런 사람들을 제외해 달라고 말로 부탁합니다. 그리고 최종적으로는 197명으로 줄이는데 성공했어요.

이 과정이 순탄했던 것은 472명의 전체 리스트를 AI가 Context window에 넣고 처리하는 것이 아니라, 파일로 저장해두고 터미널 명령어와 파이썬 스크립트를 써 가면서 업무를 진행했기 때문입니다. 사실 AI가 Context Window에 데이터를 몽땅 넣어버리면 스스로 환각 증상이 일어나는 경우가 많아서, 저는 클로드 코드를 쓸 때도 이런 점이 걱정되었거든요.

로컬 파일이라는 메모리 기능과 터미널 명령어 그리고 코딩을 할 수 있는 능력, 여기에 기획 → 실행 → 회고의 에이전틱한 동작방식은 클로드 코드로 정말 많은 일을 할 수 있게 될것 같아 보였습니다.

(3) 인터랙티브한 대화를 /command 혹은 /agent로 만들기

이렇게 제가 채용 아웃바운드를 위해서 매번 대화를 나눠야 한다면 그것도 만족스럽지 않을 것 같습니다. 그런데 클로드 코드는 두 개의 핵심 기능을 제공해서 이런걸 자동화 할 수 있어요.

(3.1) 커스텀 커맨드

인터랙티브하게 대화를 하면서 결과를 얻었다고 칩시다.

만일 이 과정이 선형적인 업무 수행을 통해서 진행된거라면, 즉 A task → B task → C task → .... 이렇게 진행된 것이라면, 이걸 my-task.md 파일로 만들어 달라고 합니다. 그리고 그 파일을 아래 폴더에 넣어 둡니다.

  • ~/.claude/commands

그러면, 다음에는 /my-task 라는 명령어로 내가 클로드 코드와 함께 진행했던 일들을 그대로 다시 할 수 있습니다.

(3.2) 서브 에이전트

어떤 일들은 선형적인 업무 수행이라기보다, 특정 능력과 스킬셋을 가진 사람에게 시켜서, 그 사람이 직접 일을 처리할 기획을 하고 수행하고 회고하는 즉, 앞선 대화에서 제가 했던 역할을 해야 하는 그런 업무일 수 있습니다.

이런 업무는 서브 에이전트라는 것을 만들어서 할 수 있습니다.

이 또한 .md 파일인데요, 어떤 업무를 처리하는 사람인지, 어떤 스킬과 능력이 있는지 등 이런 내용을 챗GPT나 클로드.ai와 함께 구체화 합니다. 그리고 /agent 명령어를 통해서, 에이전트를 만들면, 이제 업무의 워크플로 고민없이 마치 외주 주듯이 서브 에이전트에게 일을 맡길 수 있습니다.

그리고, 그런 서브 에이전트는 여럿을 동시에 일을 시키고 결과를 취합하는 병렬 업무를 시킬 수도 있습니다.

결과와 배운 점

사실 Linked Helper의 사용법에 따라서 클로드 코드를 어떻게 써야 하는지 알아보고 하느라 정말 많은 시간이 걸렸는데요, 가장 핵심이 되는 배운점은 위에 소개한 저 대화에 거의 다 포함되어 있는 것 같아요.

  • 일단 자연어로 대화하면서 업무를 해줘! 해줘 하면 클로드 코드가 거의 다 혼자 처리해준다

  • 그 과정을 /command 혹은 /agent로 만들어서 다음에는 더 간단히 수행할 수 있다.

이 과정에서 n8n/Make/Zapier/Airtable과 다른 점은

  • 자연어로 모든 자동화가 가능하다

  • 터미널 명령어로 못하는 게 없는데 그걸 모두 쓸 수 있는 툴이 자동화에 쓰일 수 있다 (그 조차도 지가 알아서 다 한다)

  • 심지어 고장나거나 결과가 만족스럽지 않을 때도 스스로 개선한다

이 될 수 있습니다. 저는 이게 n8n 자동화보다도 더 강력한 비개발자용 자동화 도구라는 생각이 확실히 들었어요.

다만, 터미널에 대한 기본적인 사용법, 약간의 개발 지식이 필요하지만, 이 마저도 해줘!해줘 하면서 설명도 해줘 하면 실제 성과를 내면서 계속 학습해 갈 수 있을 것 같습니다.

👉 이 게시글도 읽어보세요