puja4718/chatgpt-india-review-pulse
ChatGPT India — App Review Insights Analyser
Automated weekly pipeline: Play Store reviews → BERTopic clusters → Groq LLM pulse → Email via Resend.
Project Structure
reviewer-app/
├── scraper.js # Phase 1: Play Store scraper (Node.js)
├── cluster.py # Phase 2: BERTopic clustering (5 themes)
├── analyse.py # Phase 3: Groq LLM analysis → pulse.json
├── report.py # Phase 4: Jinja2 report renderer
├── emailer.py # Phase 5: Email via Resend API
├── app.py # Streamlit dashboard (interactive UI)
├── main.py # Orchestrator: runs all 5 phases
├── requirements.txt # Python dependencies
├── package.json # Node.js dependencies
├── .env.example # Environment variable template
├── templates/
│ ├── pulse.md.j2 # Markdown report template
│ └── pulse.html.j2 # HTML email template
├── data/ # Pipeline intermediate files (git-ignored)
│ ├── raw_reviews.csv
│ ├── clustered_reviews.csv
│ └── pulse.json
├── output/ # Final reports (git-ignored)
│ ├── weekly_pulse.md
│ └── weekly_pulse.html
└── .github/workflows/
└── weekly.yml # GitHub Actions: runs every Monday 07:00 ISTSetup
1. Clone and install dependencies
git clone <your-repo-url>
cd reviewer-app
# Node dependencies (scraper)
npm install
# Python dependencies
pip install -r requirements.txt2. Configure environment variables
cp .env.example .envEdit .env and fill in your keys:
GROQ_API_KEY=gsk_your_groq_key_here
RESEND_API_KEY=re_your_resend_key_here
RECIPIENT_EMAIL=your_email@gmail.com3. Get your API keys
Streamlit Dashboard
Launch the interactive dashboard to run the pipeline and explore insights in your browser:
python -m streamlit run app.pyOpens at http://localhost:8501 — no extra config needed.
The dashboard has four tabs:
- Run Pipeline — trigger all 5 phases (or individual phases) with live log output
- Insights — executive summary, theme breakdown, sentiment badges, quotes & actions
- Raw Data — rating distribution chart + searchable review tables
- Report — download HTML/Markdown report or preview it inline
Run
Run full pipeline (all 5 phases)
python main.pyRun a single phase
python main.py --phase scrape # Phase 1: Fetch reviews
python main.py --phase cluster # Phase 2: Cluster into 5 themes
python main.py --phase analyse # Phase 3: LLM analysis
python main.py --phase report # Phase 4: Generate HTML/MD report
python main.py --phase email # Phase 5: Send emailRun scraper only (Node)
node scraper.jsRe-run for a new week
Just run again — it always fetches the latest 200 reviews:
python main.pyTheme Legend
Themes are auto-generated each week by KMeans + LLM labelling. Typical themes for ChatGPT India:
- Voice UX issues
- Language / Hinglish support
- Paywall & subscription friction
- Response quality
- App performance & crashes
GitHub Actions (Automated Weekly Email)
Setup secrets in GitHub
Go to your repo → Settings → Secrets and variables → Actions → New repository secret
Add these 3 secrets:
Schedule
Pipeline runs automatically every Monday at 07:00 IST (01:30 UTC).
Manual trigger: Actions tab → Weekly Review Pulse → Run workflow
Pipeline Flow
Play Store (com.openai.chatgpt, India)
↓ google-play-scraper
raw_reviews.csv [date, rating, title, review_text, platform]
↓ sentence-transformers + KMeans
clustered_reviews.csv [+theme_id, +theme_label]
↓ Groq llama3-8b-8192
pulse.json [top_themes, quotes, action_items, executive_summary]
↓ Jinja2
weekly_pulse.md + weekly_pulse.html
↓ Resend API
Email Inbox — every Monday 07:00 ISTMilestone 2 | ChatGPT Voice for India | AI PM Cohort 2026
