Agent

Find shipping leads on Xiaohongshu

Every morning it reads Xiaohongshu like a person, finds the people who ask for or complain about shipping to the US, and lists each with a reply a Pindo operator can send.

On Xiaohongshu, the people who need a shipping service say so in public: a post asking who to use for 集运 in New York, a comment under someone else’s haul that asks how it got to the US, a complaint about a service that lost a parcel. Nobody on a small team can search a dozen words every day, open the posts, read the comments and tell the ones who are ready to buy from the ones who are only chatting.

Running for Pindo since Oct 24, 2026 · Xiaohongshu · Risk: Medium. This page is for Pindo’s team. It is not indexed and not linked from the site.

Goes inA library of search words, the last 7 days of Xiaohongshu posts and their comments, and the client’s fact sheet and voice guide
Comes outOne row per lead in a ledger: who, where, what they need, how strong the intent is and a short draft reply; a row per run in the run log
Human stepA Pindo operator reads each row, sends the reply from the client’s account if it is good, and sets the row’s status. The agent never contacts anyone
Runs onA machine you control: Node.js, a dedicated signed-in Chrome and Claude Code, once a day

Tasks and outputs

What it takes on

Browse

Searches the keyword library filtered to the last 7 days, scrolls, opens the best-looking posts and reads their comments, with random human-paced pauses between steps.

Candidates for the day

Judge

Decides for each author of a post or comment whether they are a lead, what they need, what they ship and how strong the intent is.

A graded lead

Draft a reply

Writes a short reply to the client’s voice guide and fact sheet, for a person to send.

A draft reply per lead

Record

Checks every row against the rules and writes it to the ledger and one line to the run log.

The ledger and the run page

Who it is for: A business that sells to overseas Chinese on Xiaohongshu and has people who reply to prospects by hand: it finds the prospects and drafts the reply, and a person sends it.

How it is used for Pindo: We build and run it for our client Pindo, a Taobao 拼邮 and 集运 service for overseas Chinese. It is phase 1 of the brief: collect and draft only. Automatic replies and direct messages are not built, and nothing in this agent can post.

Workflows/xhs-leads/voice.mdRules every row follows

What every lead and reply is held to

01The agent only reads. It never comments, likes, follows, collects or sends a message on Xiaohongshu.

02A lead is a person who, in the last 7 days, asked for or complained about 转运, 拼邮, 集运 or sending goods back to China. A seller’s ad or a competitor’s post is not a lead.

03The nickname, the link and the time come from the page, never from the session. A person already in the ledger within 30 days is skipped.

04A reply is short, in the voice guide’s tone, with no contact detail and no absolute claim, and states only facts that are on the client’s fact sheet.

05The pace is human: random pauses at every step, a fixed cap of keywords, posts and comments per run, a time limit, and a stop at the first captcha, rate-limit page or login wall.

06The agent reads as a dedicated account, never the client’s main one.

Read from the voice guide, the configuration and the scriptsReads only

The rules the agent’s output is written to, from the file named above. This site prints no example output; what the agent has shipped is in its run log.

Workflow

How a run goes, step by step

Pick a step to see what goes in, what comes out, and where a person is involved.

Step 1 of 5

Check the browser

Confirms the dedicated Chrome is up, signed in to Xiaohongshu and signed in as the account named in the configuration. If not, the run stops here.

Goes in

The dedicated Chrome on its DevTools port

Comes out

A go or a stop

Where a person steps in

None. A person signs in once, and again if the login expires.

Step 2 of 5

Collect

Searches a selection of keywords, filters to the last 7 days, scrolls, opens posts and reads their comments, with a random pause at every step. It stops at a captcha, a rate-limit page, a login wall or its time limit and keeps what it read.

Goes in

The keyword library and the run size

Comes out

A candidates file for the day

Where a person steps in

None. A captcha stops the run; a person solves it in the dedicated window.

Step 3 of 5

Judge

A Claude Code session reads the candidates as data and decides who is a lead, the need, the goods, the city and the intent grade, and writes a reply to the voice guide.

Goes in

The candidates file, the voice guide and the client’s fact sheet

Comes out

A list of graded leads with draft replies

Where a person steps in

None.

Step 4 of 5

Write the ledger

The ledger script checks each lead (reply length, no contact detail, no absolute claim, not already listed within 30 days) and writes the rows. The nickname, link and time are taken from the page.

Goes in

The graded leads

Comes out

Rows in leads.md and a line in run-log.md

Where a person steps in

None.

Step 5 of 5

Publish the record

The wrapper commits the two ledgers, pushes and deploys, so the run shows on the run page.

Goes in

The two ledgers

Comes out

This run page

Where a person steps in

A person at the client opens the row, sends the reply or not, and sets the status.

Before you start

What you’ll need to bring

Company material

The client’s fact sheet (prices, routes, times, what it ships and what it does not), a voice guide and the list of competitors not to name.

Source material

Xiaohongshu search and post pages, read through a signed-in browser.

Platform account

A Xiaohongshu account for the browser to read as. Use one you can afford to lose.

Run environment

A machine with Node.js, Chrome with a DevTools port and Claude Code. The run is slow on purpose, 20 to 60 minutes, and is meant to start from Windows Task Scheduler.

Guides and files

How it is set up

The setup guide, and the files the agent is built from. ClawWorld runs it for the client on its own machine.

Node scripts for the browser (Playwright over the Chrome DevTools port), the human-paced collector, the parser, the ledger and the selectors file, plus a Windows wrapper and a workflow file. Not packaged for download; the setup guide below describes what they do.
Setup guide
  1. 01

    Runtime

    • A machine that stays on, with Node.js, Claude Code and Chrome installed, and a scheduler. The collector is slow on purpose, so a run takes 20 to 60 minutes.
    • A separate checkout of the repository for the scheduled run, so the wrapper can reset it without touching anyone’s working tree.
  2. 02

    Browser setup

    • The debug Chrome our other browser agents already use (DevTools port 9222, started by a small script). It is not the Chrome you browse with.
    • Sign in to Xiaohongshu once in that window, as another tab next to the other agents’ logins. The agent never types a password.
  3. 03

    Account setup

    • A Xiaohongshu account for the browser to read as. Set its nickname in the configuration so a run stops if the window is signed in as someone else.
    • The account is only read from: the agent never comments, likes, follows, collects or sends.
  4. 04

    Configuration

    • The keyword groups, the size of one run (keywords, posts, comments), the most rows per run, the time limit, the look-back window (7 days), the cooldown for a person already in the ledger (30 days), the longest reply and a delay multiplier for the pauses.
    • The client’s fact sheet and the voice guide, which the reply is written to. A fact not on the sheet is not allowed in a reply.
  5. 05

    First run

    • Check the browser: it must report that it is signed in. Then run the collector with --probe on one keyword and read what it saw against the real page.
    • Run a dry run (one keyword, two posts, scratch ledgers) and read the rows it would have written. Nothing is committed in a dry run.
    • Only then register the daily task. Watch the first three runs and cut or add keywords from the Keyword column.
Files · 11

collect.mjs

Script · Node. The human-paced collector: search, scroll, open posts and read comments, with random pauses and the stop conditions.

Script

human.mjs

Script · Node. The random delays, scrolls and pauses that keep the pace like a person’s.

Script

browser.mjs

Script · Node. Connects to the dedicated Chrome and checks the sign-in.

Script

selectors.mjs

Script · Node. Where the script looks on each Xiaohongshu page. The one file a self-repair may change.

Script

parse.mjs

Script · Node. Turns what the pages showed into candidates, with the post time and the nickname.

Script

ledger.mjs

Script · Node. Checks each lead and writes the ledger and the run log.

Script

ledger-format.mjs

Script · Node. The ledger format, shared with this run page.

Script

config.mjs

Config · Node. The keyword groups, run size, time limit, look-back, cooldown and delay multiplier.

Config

voice.md

Config · Markdown. The voice guide the replies are written to.

Config

xhs-leads.md

Workflow · Markdown. The written workflow a Claude Code session follows.

Workflow

run-xhs-leads.ps1

Scheduler · PowerShell. What the scheduler calls: checks the browser, collects, runs the session, commits the ledgers and deploys.

Scheduler

The files live in ClawWorld’s repository and are not offered for download. The guide on the left describes what each one does.

Good to know

Where it stops and asks for you

  • A captcha, a rate-limit page or a login wall appears. The run stops at once, keeps what it read and records why. It does not try again through it.
  • The browser is not signed in, or as another account. The run stops before reading a page.
  • The page no longer looks as the script expects. The run stops, may repair its own selectors file after a dry check, and records it.
  • A draft has a contact detail, an absolute claim or a fact not on the sheet. That row is not written; the others are.
  • The time limit or the row cap is reached. The run ends with what it has.

Risk notice

What to watch for

  • Driving Xiaohongshu with a script is against the platform’s terms. The account the browser reads as can be limited or banned. The pace, the cap and the stop at the first captcha reduce the chance; nothing removes it.
  • The page can change under the script. A run that finds the page no longer looks as expected stops and may repair its own selectors file, which is checked by a dry probe before it is committed.
  • The ledger holds public nicknames and links of people outside the team. The page that shows it is not indexed and not linked from the site, and it is for the client’s team. Do not put it anywhere else.
  • The intent grade is a judgement by a model reading short texts. Some “high” leads will be nothing. A person reads every row before replying.
  • The reply is a draft for a person. Nothing in this agent contacts anyone.

FAQ

Questions about this agent

Will Xiaohongshu ban the account?

It can, and that is the main risk of this agent. It reads at human speed, a few dozen pages a run, never writes anything, and stops at the first captcha. That lowers the risk; it does not remove it. Use an account you can afford to lose, not the brand’s main one.

Why does it not send the reply itself?

Phase 1 is to prove the leads are real. A person reads each draft and sends it from the client’s account, or does not. Automatic replies and direct messages are phase 2, after the leads have been read for a week.

The run stopped at a captcha.

It records that in the run log as blocked, keeps the partial result and stops. A person solves the captcha in the dedicated window; the next day’s run carries on. Raise the delay multiplier if it repeats.