一键导入
my-slack-scraper
Playwright로 외부 Slack 워크스페이스의 채널 메시지를 수집한다. 게스트 권한으로 API 접근이 불가능한 워크스페이스 대상. "슬랙 스크래핑", "외부 슬랙 싱크", "슬랙 수집" 요청에 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Playwright로 외부 Slack 워크스페이스의 채널 메시지를 수집한다. 게스트 권한으로 API 접근이 불가능한 워크스페이스 대상. "슬랙 스크래핑", "외부 슬랙 싱크", "슬랙 수집" 요청에 사용.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
User의 일일 컨텍스트 싱크. Slack(외부 워크스페이스), Gmail, Google Calendar에서 최근 정보를 수집하고, 마에스트로 데이터(my-maestro 결과 JSON + Webex)도 함께 통합해서 하나의 문서로 정리한다. "싱크", "sync", "정보 수집" 요청에 사용.
AI·SW마에스트로(서울/부산) 멘토 활동 통합 관리. MY 멘토링·보고서 현황, 회의실 예약내역, 빈 회의실 조회, Webex 메시지 수집을 담당. User 멘토 전용. "마에스트로", "MY 멘토링", "내 예약", "빈 회의실", "회의실 비어있", "보고서 현황", "마에스트로 공지" 요청에 사용.
딴지게시판 특정 작성자(EXAMPLE_USER_ID) 사용자의 미국·한국 증시 마감 요약 글을 자동 수집해 Slack
세션 종료 시 작업 정리, 문서 업데이트, 학습 기록을 하는 스킬. "/wrap", "세션 정리", "마무리" 요청에 사용.
YouTube URL을 받으면 자막을 추출하고, Web Search로 자동자막 오류를 보정한 뒤, 요약-인사이트-전체 번역을 제공하는 스킬. "유튜브 번역", "영상 정리", "YouTube 요약" 요청에 사용.
AI 컨설팅/교육 프로젝트의 모호한 요구사항을 명확하게 만든다. "요구사항 정리", "기획 정리", "뭘 원하는 건지", "프로젝트 clarify", "컨설팅 정리", "교육 기획 정리" 요청에 사용.
| name | my-slack-scraper |
| description | Playwright로 외부 Slack 워크스페이스의 채널 메시지를 수집한다. 게스트 권한으로 API 접근이 불가능한 워크스페이스 대상. "슬랙 스크래핑", "외부 슬랙 싱크", "슬랙 수집" 요청에 사용. |
| triggers | ["슬랙 스크래핑","외부 슬랙 싱크","슬랙 수집","slack scrape"] |
Playwright로 외부 Slack 워크스페이스의 채널 메시지를 수집하는 스킬.
게스트(싱글채널/멀티채널) 권한으로는 Slack API/MCP 접근이 불가능하므로, 브라우저 자동화로 웹 클라이언트에서 직접 메시지를 읽어온다.
| 워크스페이스 | 역할 | 주요 채널 |
|---|---|---|
| Workspace A | 싱글채널 게스트 | AI프로젝트 |
| Workspace B | 기술튜터 | 교육 일정 조율, 주요 공지 (workspace-b, https://app.slack.com/client/TXXXXXXX2/CXXXXXXXXX2) |
| Workspace C | 기술튜터 | 기술튜터 모집/교육 일정 조율, 주요 공지 (workspace-c, https://app.slack.com/client/TXXXXXXX3/CXXXXXXXXX3) |
config.json에 워크스페이스 URL과 채널 정보가 설정되어야 함npm run auth로 로그인 세션 생성 필요scripts/slack-scraper/
├── package.json
├── config.json # 워크스페이스/채널 설정
├── auth-setup.js # 세션 생성 (최초 1회, headed 모드)
├── check-session.js # 세션 유효성 확인
├── sync-channels.js # 메시지 수집 (메인 스크립트)
└── storage/
├── session/ # 브라우저 세션 (*.json)
├── messages/ # 수집된 메시지 (날짜별 JSON)
└── last-sync.json # 마지막 싱크 타임스탬프
이 스킬이 트리거되면 아래 순서로 실행한다.
cd scripts/slack-scraper && node check-session.js
결과에 따라 분기:
VALID → 2단계로 진행EXPIRED 또는 NO_SESSION → 사용자에게 안내:
⚠️ {워크스페이스} 세션이 만료되었습니다.
터미널에서 다음 명령을 실행해주세요:
cd scripts/slack-scraper && npm run auth
사용자가 세션을 갱신할 때까지 해당 워크스페이스는 건너뛴다.cd scripts/slack-scraper && node sync-channels.js
옵션:
--workspace=workspace-a — 특정 워크스페이스만--workspace=workspace-b — Workspace B 채널만--workspace=workspace-c — Workspace C 기술튜터 모집 채널만--since=2026-04-01 — 특정 날짜 이후만--full — 전체 재수집기본 동작: 마지막 싱크 이후 메시지만 증분 수집. 당분간 Workspace B·C는 기존(workspace-b)과 신규(workspace-c) 워크스페이스를 둘 다 수집한다.
수집된 메시지는 storage/messages/{slug}-{날짜}.json에 저장된다.
{
"workspace": "Workspace A",
"slug": "workspace-a",
"syncedAt": "2026-04-02T10:30:00.000Z",
"since": "2026-04-01",
"channels": [
{
"channel": "ai-project",
"status": "OK",
"messages": [
{
"ts": "1775088115.745029",
"author": "홍길동",
"text": "메시지 내용",
"datetime": "2026-04-02T09:00:00Z"
}
]
}
]
}
이 JSON을 읽어서 사용자에게 요약하거나, my-context-sync에서 참조한다.
사용자에게 다음 정보를 물어본다:
https://workspace-a.slack.com)https://workspace-a.slack.com/archives/CXXXXXXXXX1){
"workspaces": [
{
"name": "Workspace A",
"slug": "workspace-a",
"url": "https://workspace-a.slack.com",
"channels": [
{ "name": "ai-project", "url": "https://workspace-a.slack.com/archives/CXXXXXXXXX1" }
]
}
]
}
cd scripts/slack-scraper && npm run auth
브라우저가 열리면 사용자가 직접 로그인. 로그인 완료 후 Enter → 세션 저장.
cd scripts/slack-scraper && npm run sync
my-context-sync에서 이 스킬의 결과를 참조하려면:
sync-channels.js를 실행하여 최신 메시지 수집storage/messages/ 디렉토리에서 오늘 날짜의 JSON 파일을 읽기npm run auth로 재로그인 필요check-session.js로 사전 확인 가능headless 설정으로 제어. Slack이 차단하면 false(headed)로 전환