draft-outreach
Skill0 starsChanged 10 days agoApache-2.0View on GitHub
사용자의 의도와 networking-strategist 핸드오프(선택)를 바탕으로 바로 보낼 수 있는 아웃리치 문안(LinkedIn, 이메일, InMail)을 작성합니다. writer를 호출합니다. 메일/캘린더 커넥터가 있으면 contact-context와 ContactContextBrief를 통해 이전 커뮤니케이션 이력을 기본으로 반영하며, 사용자가 건너뛰거나 수신자가 지정되지 않은 일반/콜드 메시지인 경우는 예외입니다. Produces send-ready outreach copy (LinkedIn, email, InMail) from user intent and optional networking-strategist handoffs. Invokes writer. Prior communication history is folded in by default when mail/calendar connectors exist via contact-context and ContactContextBrief.
11 other projects use a version of this.
Adopted by
Most recently taken up by
- spirosbax/insaighttheir own version, first seen Oct 13, 2026
- anthropics/knowledge-work-pluginstheir own version, first seen Oct 13, 2026
- akachandan1/proofstacktheir own version, first seen Oct 11, 2026
- edu6565/claude-skillstheir own version, first seen Oct 11, 2026
- youdcode/open-companytheir own version, first seen Sep 21, 2026
- sree-data/job-search-agenttheir own version, first seen Sep 11, 2026
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 11
- anthropics/knowledge-work-plugins★ 35ksame name
- microsoft/dataverse-business-skills★ 51same name
- spirosbax/insaight★ 32same name
- alebgl77/claude-inc★ 21same name
- xx254/linkedin_skills★ 16same name
- youdcode/open-company★ 2same name
- akachandan1/proofstack★ 0same name
- CatchIntent/skills★ 0same name
- edu6565/claude-skills★ 0same name
- KevinReactiv8/claude-skills★ 0same name
1 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository45 other files it gives its agents.
- add-sourceSkill
- ai-analysisSkill
- application-updateSkill
- artifact-savedSkill
- assessmentSkill
- ats-optimizationSkill
- benchmarkSkill
- career-planSkill
- compare-offersSkill
- contact-contextSkill
- content-suggestSkill
- cover-letterSkill
- daily-scheduleSkill
- evaluate-offerSkill
- evaluate-postSkill
- event-intelligenceSkill
- event-radarSkill
- focus-careerSkill
- follow-upSkill
- follow-up-timingSkill
- interview-captureSkill
- launchSkill
- linkedin-post-analyticsSkill
- list-artifactsSkill
- market-briefSkill
- mine-storiesSkill
- mock-interviewSkill
- negotiate-offerSkill
- networking-strategySkill
- network-mapSkill
- pattern-analysisSkill
- pipeline-statusSkill
- prep-interviewSkill
- reportSkill
- resume-scoreSkill
- salary-researchSkill
- search-jobsSkill
- setup-scheduleSkill
- setup-transcribeSkill
- skill-transferSkill
- story-retrievalSkill
- suggest-rolesSkill
- tailor-resumeSkill
- track-applicationSkill
- training-roiSkill
The file
Files
구직 폴더(
{user_dir}) 확인: 먼저 현재 작업 디렉터리에서CareerLoop/폴더(또는 한 단계 위·아래)를 찾아 그 폴더가 들어 있는 디렉터리를{user_dir}로 쓴다. 홈 디렉터리 전체를 검색하지 않는다. 작업 디렉터리에서 찾지 못하면 사용자에게 경로를 묻고, 그래도 없으면/careerloop:launch를 안내한다.
경력 연수 인용 규칙: 경력·도메인 연수를 말할 때는 ExperienceLibrary의 날짜로 직접 계산한 값을 쓴다. 이력서나 프로필의 표기가 계산값과 다르면 계산값을 쓰고 불일치를 한 줄로 알린다(예: 이력서 "5년" ↔ 날짜상 4년 7개월).
**writer**를 draft-outreach 모드로 호출합니다.
호출
- 에이전트 이름은 정확히 **
writer**를 사용합니다. 호출에 실패하면 같은 이름으로 한 번 재시도합니다.
워크플로
지원 데이터는 references/tracker-schema.md에 정의된 분리 레이아웃을 사용합니다. 읽기/쓰기 전에 반드시 이 문서를 읽습니다.
이전 커뮤니케이션 이력 (보강 — 지정된 수신자에게는 기본 적용): 특정 인물 또는 회사의 알려진 연락처에게 보내는 아웃리치는 호스트가 허용하는 한 추측이 아니라 실제 메일/캘린더 맥락에 근거해야 합니다.
- ContactContextBrief가 채팅에 이미 있으면 그대로 사용합니다(전체 블록을 **
writer**에 전달). - 그렇지 않고 이 세션에 Gmail/M365 받은편지함 및/또는 캘린더 도구가 보이면, 사용자가 이력을 건너뛰라고 명시적으로 말하거나("no prior thread", "brand-new contact", "template only" / "이전 스레드 없음", "처음 연락하는 사람", "템플릿만") 아직 지정된 수신자가 없는 순수 일반 요청이 아닌 한, **
writer**를 호출하기 전에 **contact-context**를 끝까지 실행합니다. 스레드를 지어내지 않습니다. - 그 외(세션에 메일/캘린더 도구가 없음)에는 **
writer**를 그대로 호출하되 한 줄을 전달합니다:Prior communication:not retrieved — inbox/calendar tools not available in this session; do not imply prior email or meetings.
사용자가 메일을 보냈다고 하는데 주소가 틀렸거나 검색 결과가 비어 있으면 **
contact-context**의 "User said they sent" 절차를 따릅니다. **email_address_notes**에 주소 후보가 담깁니다.calendar_notes,upcoming_meetings, **warm_networking**이 있으면 핸드오프에 포함합니다. **upcoming_meetings**가 비어 있지 않으면 아웃리치가 콜드 첫 접촉처럼 읽히지 않아야 합니다.- ContactContextBrief가 채팅에 이미 있으면 그대로 사용합니다(전체 블록을 **
{user_dir}/CareerLoop/profile.md와 **{user_dir}/CareerLoop/voice-profile.md**를 읽습니다(없으면 스텁 생성).- 보이스 사전 점검:
voice-profile.md의## User writing samples또는## User writing samples (launch)아래에 사용자가 붙여넣은 블록(실질적인 발췌문)이 없으면, **writer**를 호출하기 전에 먼저 묻습니다. LinkedIn 게시물 2–5개 또는 짧은 업무 글을 붙여넣어 달라고 요청하고, 선택 사항인 런치 보이스 수집(디스크의 이력서/CV/자기소개서 텍스트 활용)을 안내하며, 사용자는 skip이라고 답할 수 있습니다(보이스 일치도 낮음). 붙여넣으면 날짜가 붙은## User writing samples섹션을 추가합니다. 샘플이 이미 있으면 이 질문은 건너뜁니다. - 대화에서 채널, 수신자 유형(알려진 경우 직책/회사), 목적(정보 대화, 추천 안부 확인, 행사 후 인사), 그리고 StrategistHandoff, ContactContextBrief 또는 사용자가 붙여넣은 사실을 파악합니다.
- 구조화된 브리프를
draft-outreach모드의 **writer**에 전달합니다. 필수: 가능하면 전체## ContactContextBrief마크다운 블록을 포함하고, 없으면 0단계의Prior communication:대체 문구를 포함합니다. **writer**는 summary, open_loops, hooks_for_writer, calendar_notes, upcoming_meetings, warm_networking이 있을 때 이를 초안에 녹여야 합니다. **agents/writer/AGENT.md**를 참조하세요. 이 스킬에서 최종 문안을 직접 작성하지 않고 위임합니다. - **
writer**의 출력을 보여줍니다(제공된 경우 여러 버전 포함). 커넥터가 있으면 따뜻한 스레딩을 지원한다는 점을 안내합니다. 발송 확인 + 자동 트래킹: 문안을 보여준 뒤 다음과 같이 말합니다.
"발송하셨으면 알려주세요. 트래커에 기록해 드리겠습니다."
사용자가 확인하면(예: "sent", "I sent it", "done", "sent it just now" / "보냈어요", "발송했어요", "완료") references/tracker-schema.md의 다중 파일 트랜잭션을 기록합니다. 한 파일만 갱신하고 나머지를 오래된 상태로 두면 안 됩니다.
{user_dir}/CareerLoop/tracker.json(요약 행만)을 읽고 같은 회사의 행을 찾습니다- 일치하는 행이 있으면
{user_dir}/CareerLoop/+ 해당 행의contacts_file(contacts/<company-slug>.json)을 로드합니다. 경로는 행에서 가져오며 슬러그를 직접 만들어 내지 않습니다.name이 수신자와 일치하고 그리고application이 행의application라벨과 같은 항목을 찾아 해당 연락처의interactions[]에 추가합니다.
행에{ "date": "YYYY-MM-DD", "type": "linkedin | email", "notes": "Sent outreach: {one-line summary of message objective}" }contacts_file이 없거나 해당 인물이 아직 없으면, 스키마의 Adding or updating a contact 규칙에 따라 연락처를 추가합니다(필요하면contacts/<slug>.json생성,application을 행의 라벨로 설정, 파일과 행 양쪽의contact_count재계산). 또한{user_dir}/CareerLoop/+ 해당 행의detail_file(applications/<application_id>.json)의notes[]에{ "date": "YYYY-MM-DD", "text": "Outreach sent via {channel} to {recipient} — {objective}" }를 추가한 뒤, 행의notes_count를 새 배열 길이로 설정합니다 요약 행의next_step을 "Await response"로 갱신합니다 - 일치하는 지원 건이 없지만 수신자가 목표 회사 소속이면:
networking.json의networking[]에 새 네트워킹 항목을 기록할지 제안합니다 - 확인 메시지:
기록 완료: {company}의 {recipient}에게 보낸 아웃리치 ({channel}) — {date}
참고
- 사용자에게 전략 관련 질문만 있으면 먼저
networking-strategy/ **network-map**을 안내하고, 문안이 필요할 때 이 스킬로 돌아옵니다.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

