| name | maimai-hub |
| description | Read Maimai (maimai.cn) colleague circle and workplace talk data. Supports: specified company colleague circle posts, global workplace talk Feed (hot/new/following), colleague circle popularity rankings, lookup webcid by company name. Must trigger this skill when user mentions "Maimai", "colleague circle", "workplace talk", "maimai-hub", or any scenario requiring Maimai content. |
maimai-hub
Authentication Flow
Before each use, get the latest Cookie via browser_use get_cookies, must get on desktop page (mobile version lacks csrftoken):
1. browser_use set_user_agent → desktop_safari
2. browser_use navigate → https://maimai.cn/web/search_center
3. browser_use get_cookies → save to env file
4. Confirm COOKIE_CSRFTOKEN is in env file (otherwise retry steps 2-3)
ENV file path example: /var/minis/offloads/env_cookies_maimai_cn_XXXXXXXX.sh
Colleague Circle Degradation Plan (when API unavailable)
When script returns empty array or HTTP 404, automatically switch to browser directly reading page content:
Colleague circle page URL format:
https://maimai.cn/company/gossip_discuss?webcid=<WEBCID>
Note: old paths /web/gossip_discuss and /community/gossip_discuss both 404,
must use /company/gossip_discuss
Degradation steps:
1. browser_use navigate → https://maimai.cn/company/gossip_discuss?webcid=<WEBCID>
2. Scroll multiple times to load more content (scroll down × 4~6, 800px each)
3. Use browser_use get_readable or execute_js to extract post text:
document.querySelectorAll('[class*="content"],[class*="text"],[class*="body"]')
Filter: length 15~800, exclude noise like "Maimai"/"illegal"/"colleague circle popularity"
4. Deduplicate extracted results and summarize
Script Invocation
Script: /var/minis/skills/maimai-hub/scripts/maimai.py
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_circle \
--webcid 9AG14xzt --count 20 --env <ENV_FILE>
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_circle \
--company "Ant Group" --count 20 --env <ENV_FILE>
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_feed \
--tab hot --count 20 --env <ENV_FILE>
python3 /var/minis/skills/maimai-hub/scripts/maimai.py circle_rank \
--env <ENV_FILE>
python3 /var/minis/skills/maimai-hub/scripts/maimai.py search_company \
--name "ByteDance" --env <ENV_FILE>
webcid Acquisition Methods
Priority:
- User provides URL → regex extract
webcid=([A-Za-z0-9]+)
- Current user's company → visit
https://maimai.cn/web/search_center then execute JS:
window.share_data.data.mycard.web_cid
- Company name match → script built-in cache + dynamic rank lookup (
circle_rank command)
Colleague circle page URL (for browser degradation): https://maimai.cn/company/gossip_discuss?webcid=<WEBCID>
Built-in webcid cache (major companies):
| Company | webcid |
|---|
| ByteDance | jYZTTwkX |
| Pinduoduo | 1cDwhLvjW |
| Tencent | 167PEUToR |
| Alibaba | EnT6guJz |
| Ant Group | 9AG14xzt |
| Baidu | mWqfo5EX |
| Meituan | 5DDx3ANi |
| Xiaomi | KvzN4IGA |
| JD.com | SJdjsQ5S |
| Kuaishou | RO3MvtaT |
Permission Notes
- Colleague circle: Only accessible to company employees, returns
error_code: 21003 means no permission
- Global workplace talk: Accessible to all logged-in users
- Ranking: Accessible to all logged-in users
Output Format
Script returns JSON, each post fields: id, time, text, likes, cmts, spreads, ip_loc
When summarizing, sort by popularity (likes+cmts), summarize main topics, do not list original content one by one.
FAQ
- Returning empty array: No colleague circle permission (not employee of that company), switch to global workplace talk
- csrftoken missing: Ensure using desktop UA before get_cookies
- Company name not found for webcid: Prompt user to provide colleague circle URL directly (
https://maimai.cn/company/gossip_discuss?webcid=xxx)
- API returns empty / 404: Auto-switch to browser degradation plan, see "Colleague Circle Degradation Plan" section