Mid-year review season. You know the drill.
My team owed leadership a polished Q2 deck, plus every regional sales lead needed their own weekly report. Total count: about 50 reports. Same structure, different data.
The first deck I did the honest way — PowerPoint, three full days. Not because I can't use templates, but because the "raw data → insight → visual story" pipeline is brutally long. Each chart means copying numbers from Excel, fixing formatting, writing analysis. One slide averages 40 minutes. Twenty slides = two working days gone.
Then I looked at the remaining 49. That math doesn't work.
The GUI tool problem
I tried the obvious solutions:
- Gamma ($20/mo): Fast AI generation, but no batch mode — each deck requires manual input and manual export
- Beautiful.ai ($12/mo): Great design, but can't read my raw Excel data
- WPS AI (~$4/mo): Can read data, inconsistent quality, no batch
The common issue: GUI tools don't support scripting. One deck saves time. Fifty decks means doing it fifty times by hand.
The CLI approach
I found Bailian CLI on GitHub — a command-line tool that calls large models directly from the terminal, reads files as context, and can be looped in a script. Here's what my workflow ended up looking like.
Setup
pip install dashscope-cli
bl configure --api-key YOUR_API_KEY
Free API key from the Bailian console — new users get complimentary credits.
Step 1: Generate an outline
The worst part of building a deck isn't layout — it's "what goes on slide one."
bl chat --model qwen-plus \
--prompt "Generate a PPT outline for Q2 sales performance review, covering:
1. Performance overview (revenue, profit, YoY/QoQ)
2. Regional comparison (East/South/North/Southwest)
3. Growth attribution (which product lines drove growth)
4. Risks and anomalies
5. Next quarter action plan
Include 2-3 key points and visualization suggestions per module."
30 seconds → structured outline with chart recommendations (stacked bars for revenue composition, heatmaps for growth distribution). Previously this took 30 minutes on a whiteboard.
Step 2: Data-driven content
The key differentiator — feeding in the actual data file:
bl chat --model qwen-max \
--file sales_q2.xlsx \
--prompt "Based on this Q2 sales data, generate executive-facing PPT content:
1. Extract 3 core conclusions (with data support)
2. Identify 2-3 anomalies or notable trends
3. Recommend next-quarter actions
4. Write out each slide's title and bullet points
Emphasize YoY growth trends and regional differences."
It reads the actual numbers, analyzes them, and outputs specific conclusions — not template filler. For example: "East China Q2 revenue grew 23% YoY, driven by enterprise SaaS, while North China saw -5% negative growth — renewal rate decline needs attention."
GUI tools can't do this. Gamma and Beautiful.ai only work with text you type in; they won't read your source files.
One complete executive deck: ~1 hour (including manual tweaks and layout). Down from three days.
Step 3: Batch it
Same structure, different data per region. Textbook scripting scenario:
for region in east south north southwest central northeast northwest; do
bl chat --model qwen-plus \
--file "data/${region}_q2.xlsx" \
--prompt "Based on ${region} region Q2 sales data, generate weekly report content:
1. Regional performance summary
2. Top 5 customer contribution analysis
3. YoY and QoQ changes
4. Items requiring HQ support
Output as structured PPT page content." \
--output "output/${region}_weekly_report.md"
done
Seven regions, 8–10 minutes total. Structured Markdown output → batch import into deck template.
| Approach | Time for 50 reports | Data accuracy | Repeatability |
|---|---|---|---|
| Fully manual | ~25 hours (30 min each) | Copy-paste errors likely | Redo from scratch |
| GUI tools | ~12 hours (15 min each) | Manual data entry | Semi-automated |
| CLI script | ~10 min + 1 hr layout | Reads source data directly | Fully repeatable |
Next quarter? Swap the data files, run the same script. Zero rewrite.
Beyond decks
The same pattern works for anything "given materials → structured document":
# Business plan
bl chat --model qwen-max \
--prompt "Draft a business plan outline for an enterprise analytics SaaS..."
# Data analysis report
bl chat --model qwen-max \
--file user_behavior_june.csv \
--prompt "Write a product data report: DAU, retention, conversion, anomalies..."
# Excel formulas
bl chat --model qwen-plus \
--prompt "Write an XLOOKUP formula that..."
Meeting minutes, contract drafts, quarterly summaries — same logic.
Cost
| Tool | Monthly cost | Batch support | File input | Best for |
|---|---|---|---|---|
| Gamma | $20/mo | No | No | One-off polished decks |
| Beautiful.ai | $12/mo | No | No | Design-first |
| WPS AI | ~$4/mo | Limited | Partial | WPS ecosystem |
| Bailian CLI | Pay-per-token | Native scripting | Yes | Batch + data-driven |
Using qwen-plus: one deck ~$0.05–0.07, 50 regional reports ~$2–4, daily misc ~$1–2/month.
Honest limits
- CLI has a learning curve — not as plug-and-play as GUI tools
- Output is content structure; final .pptx layout still needs human work
- Quality depends on prompt quality
- Complex visualizations still need manual handling
- If you only make one deck occasionally and care about design polish, Gamma/Beautiful.ai are better
The CLI's edge: batch processing + data-driven generation + programmability.
If mid-year reporting season is crushing you too, consider a scripting approach. Core idea: hand the repetitive content generation to the machine, keep the aesthetic judgment and business decisions for yourself.
Top comments (0)