원클릭으로
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)로 전환