maimai-hub · git:20260801.3cb01ce · 2026-08-01 · sha256 21a0cbc80337429d

maimai-hub git:20260801.3cb01ceA

Immutable. This exact content is served forever at /api/v1/blob/21a0cbc80337429d.

---
name: maimai-hub
description: Retrieves data from the Colleague Circle and Career Insights sections of Maimai (maimai.cn). Supports: posts from a specific company's Colleague Circle, the site-wide Career Insights feed (hot/latest/following), the Colleague Circle popularity ranking, and looking up a webcid by company name. This skill must be triggered whenever the user mentions "Maimai," "Colleague Circle," "Career Insights," "maimai," "maimai-hub," or any scenario that requires reading Maimai content.
---

# maimai-hub

## Authentication Process

Before each use, retrieve the latest cookies with `browser_use get_cookies`. **This must be done on the desktop version of the page** because the mobile version does not include `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 that the env file contains COOKIE_CSRFTOKEN (otherwise, retry steps 2-3)
```

Example ENV file path: `/var/minis/offloads/env_cookies_maimai_cn_XXXXXXXX.sh`

## Colleague Circle Fallback Plan (When the API Is Unavailable)

When the script returns an empty array or HTTP 404, automatically switch to **reading the page content directly in the browser**:

```
Colleague Circle page URL format:
https://maimai.cn/company/gossip_discuss?webcid=<WEBCID>

Note: The old paths /web/gossip_discuss and /community/gossip_discuss now both return 404.
You must use /company/gossip_discuss.
```

**Fallback 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 time)
3. Extract post text with browser_use get_readable or execute_js:
   document.querySelectorAll('[class*="content"],[class*="text"],[class*="body"]')
   Filter criteria: length 15~800, exclude noise such as "Maimai", "illegal", and "Colleague Circle popularity"
4. Deduplicate the extracted results, then compile and summarize them
```

## Script Invocation

Script: `/var/minis/skills/maimai-hub/scripts/maimai.py`

```bash
# Colleague Circle posts (must be an employee of that company)
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_circle \
  --webcid 9AG14xzt --count 20 --env <ENV_FILE>

# Look up a Colleague Circle by company name (automatically finds webcid)
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_circle \
  --company Ant Group --count 20 --env <ENV_FILE>

# Site-wide Career Insights feed
python3 /var/minis/skills/maimai-hub/scripts/maimai.py gossip_feed \
  --tab hot --count 20 --env <ENV_FILE>
  # tab: hot(Trending) | new(Latest) | follow(Following) | recommend(Recommended)

# Colleague Circle popularity ranking (gets popular company webcids)
python3 /var/minis/skills/maimai-hub/scripts/maimai.py circle_rank \
  --env <ENV_FILE>

# Look up webcid by company name
python3 /var/minis/skills/maimai-hub/scripts/maimai.py search_company \
  --name ByteDance --env <ENV_FILE>
```

## How to Obtain the webcid

Priority:
1. **URL provided by the user** → extract with regex: `webcid=([A-Za-z0-9]+)`
2. **Current user's company** → visit `https://maimai.cn/web/search_center`, then execute JS:
   ```js
   window.share_data.data.mycard.web_cid  // returns the webcid directly; .company is the full company name
   ```
3. **Company name matching** → built-in script cache + dynamic ranking lookup (`circle_rank` command)

Colleague Circle page URL (for browser fallback): `https://maimai.cn/company/gossip_discuss?webcid=<WEBCID>`

Built-in webcid cache (major tech 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 |

## Permissions

- **Colleague Circle**: Access is limited to employees of that company. `error_code: 21003` indicates no permission.
- **Site-wide Career Insights**: Accessible to all logged-in users.
- **Ranking**: Accessible to all logged-in users.

## Output Format

The script returns JSON. Fields for each post: `id, time, text, likes, cmts, spreads, ip_loc`

When summarizing, sort by engagement (likes + cmts), identify the main topics, and do not list the original text item by item.

## Frequently Asked Questions

- **Returns an empty array**: No permission for the Colleague Circle (not an employee of that company). Switch to site-wide Career Insights.
- **Missing csrftoken**: Make sure to access the site with a desktop UA before calling `get_cookies`.
- **Cannot find the webcid for a company name**: Ask the user to provide the Colleague Circle URL directly (`https://maimai.cn/company/gossip_discuss?webcid=xxx`).
- **API returns empty / 404**: Automatically switch to the browser fallback plan. See the "Colleague Circle Fallback Plan (When the API Is Unavailable)" section.