Slack Deep Search is a GitHub Actions powered utility that searches Slack channels for user-specified keywords and generates a report in Google Sheets.
The solution allows users to:
- Search one or multiple Slack channels
- Search one or multiple keywords
- Run on-demand via GitHub Actions
- Export matching Slack threads
- Automatically create a Google Sheets report
- Generate a shareable report URL
Users can provide:
- Slack Channel IDs (comma separated)
- Keywords (comma separated)
- Report Name
Example:
Channel IDs:
C0BBTSHJ4VC,C051Z77CARG
Keywords:
LLM,AI Agent,GenAI
Report Name:
AI_Research_Report
The solution generates:
- JSON Report
- CSV Report
- Google Sheet Tab
Example:
AI_Research_Report_20260620_124500
GitHub Actions
│
▼
Python Script
│
▼
Slack API
│
▼
Keyword Search
│
▼
CSV Generation
│
▼
Google Apps Script
│
▼
Google Spreadsheet
.
├── fetch_threads_by_topic.py
├── requirements.txt
└── .github
└── workflows
└── slack-search.yml
Configure the following secrets:
Slack Bot Token used for channel access.
Example:
xoxb-xxxxxxxxxxxx
Google Apps Script Web App URL.
Example:
https://script.google.com/macros/s/xxxxxxxx/exec
Comma-separated Slack channel IDs.
Example:
C0BBTSHJ4VC,C051Z77CARG
Comma-separated search keywords.
Example:
LLM,AI Agent
Report name.
Example:
LLM_Report
Navigate to:
Actions → Slack Deep Search → Run Workflow
Provide:
- Channel IDs
- Keywords
- Report Name
Click Run Workflow.
Each execution creates a new worksheet.
Example:
LLM_Report_20260620_010101
LLM_Report_20260620_020101
LLM_Report_20260620_030101
The workflow returns a direct link to the generated worksheet.
Install locally:
pip install -r requirements.txtrequirements.txt
slack_sdk
requests
tqdm
Verify:
- Spreadsheet exists
- Spreadsheet ID is correct
- Apps Script deployment is updated
Slack APIs may return HTTP 429.
The script automatically retries after the Retry-After interval.
Verify:
- Channel ID is correct
- Bot is a member of the channel
- Keywords exist within channel messages