| name | Send PDF to Slack |
| description | Convert a markdown file to a styled PDF (with embedded local images) and upload it to a Slack channel. Supports markdown image syntax  — local absolute and relative image paths are automatically resolved and embedded in the PDF. |
| version | 1.0.0 |
| category | communication |
| skillType | claude-skill |
| assignableRoles | ["orchestrator"] |
| triggers | ["send pdf","pdf to slack","markdown to pdf","export pdf"] |
| tags | ["communication","slack","pdf","markdown","export"] |
| execution | {"type":"script","script":{"file":"execute.sh","interpreter":"bash","timeoutMs":60000}} |
Send PDF to Slack
Converts a markdown file to a styled PDF and uploads it to a Slack channel via the /api/slack/upload-file endpoint. Supports embedding local images referenced in the markdown.
Image Support
The skill automatically handles local images referenced in markdown:
- Absolute paths:
 — converted to file:// URLs
- Relative paths:
 — resolved relative to the markdown file's directory
- Remote URLs:
 — passed through as-is
Images are rendered at full width (max 100% of page) with auto height scaling, centered with a subtle border.
Prerequisites
- python3 must be installed (comes with macOS, or
brew install python3)
- On first run, a virtual environment is created at
~/.crewly/venv/pdf-tools/ with weasyprint and markdown packages installed automatically
Usage
bash config/skills/orchestrator/send-pdf-to-slack/execute.sh \
--channel C0123ABC \
--file /path/to/document.md \
--title "Weekly Report" \
--text "Here is the report" \
--thread 1707123456.789000
Parameters
| Parameter | Required | Description |
|---|
--channel, -c | Yes | Slack channel ID to upload the PDF to |
--file, -f | Yes | Path to the markdown file to convert |
--title, -T | No | Title for the uploaded PDF (defaults to filename) |
--text, -t | No | Initial comment to include with the upload |
--thread, -r | No | Slack thread timestamp for threaded upload |
Example: Daily Report with Infographics