Forum Mining — Methodology, Context & Content

What we built to mine real workplace problems from Thai + English forums, and what it found. Reusable Lab pipeline. 2026-07-27.

1. Context — why we did this

The goal was cheap problem discovery for a venture (new-manager development, then rescoped to all workplace-human problems). Instead of guessing what people struggle with, we read what they say unprompted on public forums.

2. Methodology — how the pipeline works

Stage A — Get the raw posts (the hard part)

Free web access is blocked from a datacenter IP (Reddit 403, Pantip patchy). So we moved to Apify managed scrapers (residential proxies get past the blocks). The actor-selection lessons:

Actor / methodVerdictLesson
WebSearch + WebFetch agents (free)partialWorks for search snippets; direct fetch blocked on Reddit/Pantip. Query-biased.
trudax/reddit-scraper-lite✗ cappedReturns ~10/listing (~36 total). Useless for bulk.
gravityzer0/pantip-scraper✗ emptyReturned 0 posts.
mai_amm/pantip-consumer-intelligence✓ ThaiRooms + tags + keywords; rich fields (body, room, likes). Tags don't filter reliably (noisy); rooms = true blind sweep; keywords = clean but biased.
practicaltools/apify-reddit-api✓ English$2/1k, but caps 100/run → fire multiple sorts (top all/year/month, hot, new) and dedup.
Reddit official API✗ gatedFree + clean, but app creation blocked behind Reddit's Responsible-Builder review (new accounts can't create).

Stage B — Clean it (the two-stage insight)

Because tags are noisy and keywords are biased, the fix (Tong's call): sweep broad, then filter by title, then read only the relevant ones. You eyeball every title instead of trusting a tag or a search term, dodging both failure modes. The body text comes with the post, so "go into it" is a filter step, not a re-scrape.

Stage C — Code it (bottom-up, at scale)

  1. Embed the corpus in a generated Workflow file (run by scriptPath, since inline args are too big).
  2. Derive a bottom-up taxonomy from a sample (don't impose categories, let the data name themes).
  3. Classify every post in parallel batches (~70/batch) into the taxonomy + tag each for human, intensity, fundable. Run on Sonnet (mechanical work, cheap).
  4. Aggregate deterministically in JS (counts, TH/EN split, fundability share).
  5. Adversarial verify pass (on the stronger model): vocal-minority check, confounds, "which is most fundable," what's missing.

Stage D — Guard against yourself

3. Content — what we actually pulled

SourceWhat it isPosts
Pantip (kw + room sweeps)Thai general work forum (สีลม / work tags)601
r/managersEnglish, manager-only community329
r/jobs + r/antiwork + r/careerguidanceEnglish general work forums599
r/humanresources + r/AskHREnglish HR practitioners (buyer-adjacent)398
(earlier) WebSearch saturation runThai+English, query-based122
Total4 platforms, 8 communities~2,000

Apify spend ~$9 across two free accounts. Coded on Sonnet; verified on the stronger model.

4. What it found (headline)

5. Reusable SOP (to run this again for any venture)

  1. Pick the communities (a general forum + a practitioner/buyer forum per language).
  2. Thai: mai_amm/pantip-consumer-intelligence, sweep by room (blind). English: practicaltools/apify-reddit-api, multi-sort + dedup.
  3. Filter by title to the relevant set (don't trust tags).
  4. Generate the coding Workflow (sample→taxonomy→Sonnet classify→aggregate→verify).
  5. Run a confound check on any split that looks like a "finding" before you believe it.
  6. Remember what it can't do: this ranks pain. Only a buyer conversation tests demand.
The honest bottom line: this pipeline is fast, cheap (~$9), and self-correcting, and it produced a real problem map, a named buyer, and a pitch angle. It did not, and cannot, tell us whether anyone will pay. That's the next thing, and it's a conversation, not a scrape.