Batch Inquiries with AI
Position: Outreach Overview โ Connect Account โ this guide (running outreach).
New here? Start with the Outreach Overview โ it strings "install the tool โ install the skill โ connect the account โ run outreach" into one path.
๐ Goal: give the Laifaxin B2B outreach toolkit to your AI tool (ZCode is only the demo; Codex / Claude Code work the same way). You describe the product and approve each stage. The AI finds prospects, saves contacts, writes outreach emails, and creates a follow-up planโbut it still stops for your explicit approval before real sending begins.
This toolkit is not tied to ZCode. The upstream README says it works with "an AI assistant that can open files and run commands on your computer", such as ZCode, Claude Code, or Codex.
This guide's steps, screenshots, and permission settings are written for ZCode. With Codex or Claude Code, installing the toolkit, connecting the account, and the conversation prompts are the same; only read the matching guides for the install and core-capability steps (see the AI Tool Learning Path).
Understand the Flow Firstโ
Ignore the technical terms for now. This is a loop that feeds qualified inquiry websites back in as new seeds; every round still needs human checks, and it does not guarantee it gets more accurate on its own:
| Phase | In one line | Steps below |
|---|---|---|
| โ Prepare tools | Get ZCode installed and connected to Laifaxin | Before you start + 1 + 2 |
| โก Confirm a seed | Get one precise customer URL | 3 |
| โข Find similar and reach out | Find peers, audit, save, write emails | 4 + 5 |
| โฃ Confirm sending | Review everything, then activate explicitly | 6 |
| โค Feed inquiries back | Turn qualified inquiry URLs into new seeds | 7 โ back to โก |
Wherever you start, the first round has the same goal: get one precise customer URL worth copying.
Before You Start ยท 5 Thingsโ
| Prerequisite | What you do | Guide |
|---|---|---|---|
| โ Install and sign in to ZCode | Install and choose "Connect with BigModel" | Install ZCode and sign in |
| โก Enable core capabilities | Turn on Full Access, Computer Control, Browser Control, memory, and indexing | ZCode core capability settings |
| โข Configure plan and model | Use the built-in BigModel plan and prefer GLM-5.3-Flash day to day; add third-party models as needed | ZCode plans and models |
| โฃ Prepare a Laifaxin SVIP account | Have an active SVIP account; the full workflow requires SVIP | Sign up for Laifaxin ยท SVIP benefits and upgrades |
| โค Connect the Laifaxin account | Sign in to Laifaxin in the browser and prepare your accesstoken and current workspace orgId | Get the token and orgId, then connect AI |
At minimum you only need to tell the AI two things:
My sign-off name: Tony
What I sell: stainless-steel insulated bottles, mainly to US gift wholesalers.
If you have inquiry-customer, existing-customer, or ideal-customer URLs, send those too. It is fine if other details are incomplete; the AI should ask only one thing it must confirm right now, not hand you a long form at the start.
Investment and Expectationsโ
Before starting, clarify the actual resource cost, execution pace, and expected boundaries of this workflow:
- Where points are spent: saving contacts is charged per company, sending is charged per email, and finding similar companies is charged by volume; exact costs follow the real-time display in your console. At each step, the AI presents the estimated point cost for your confirmation before points are deducted.
- Timeline reference: toolkit installation and the read-only health check can both be completed on day one; if materials are ready, the first test batch can also go out the same day. Subsequent tracking follows the observation order from the text: with about 5,000 contacts, watch delivery and open trends on day one; with only a few hundred contacts, check bounce rates first on day one rather than rushing to judge trends, and review real replies on days 2โ3.
- Expectation management: what the system guarantees is that every step is transparent, controllable, and fully reversible, requiring your explicit approval before execution; it does not guarantee specific inquiry counts or closed deals.
1. Install the Toolkitโ
โ Passing standard for this step: the AI finishes downloading the toolkit and reading required rules, all repository self-checks pass, and it clearly reports that the environment and self-checks are ready.
Open ZCode, create a new task, and send it the whole block below (this matches the repository README's install prompt):
Please help me install and learn this Laifaxin foreign-trade prospecting skill:
https://github.com/tony-apan/laifaxin-b2b-sales
Follow this order:
1. Download the latest code. If it is already installed locally, first identify the existing
installation and local data, then upgrade per the repository's update rules. Do not overwrite
or delete existing .local/ or runs/ data.
2. Check and prepare the runtime automatically.
Do not assume Python, Git, curl, or other dependencies are installed;
follow the repository's environment setup notes to install and re-check.
3. Read README.md, SKILL.md, RULES.md, and the relevant specs, and treat the repository's
SKILL.md as the execution entry point. Learn the full workflow, confirmation points,
safety boundaries, website-material enhancement, and device-switch handoff rules.
Do not create a second, duplicate rule set.
4. Run the repository's self-checks; fix any issues and re-check.
Until the self-checks pass, do not start finding prospects, saving contacts,
creating sequences, or sending.
5. When installation and learning are done, tell me in plain language:
- the install directory and current version
- whether environment and self-checks passed
- what this skill can do
- which operations require my confirmation
- whether you found an existing project you can resume
6. Finally, ask me only this: "Installation complete. What would you like to do now?"
Do not ask for product, market, website, name, token, or other business details during install.
After I say what I want, guide me gradually per SKILL.md.
The toolkit updates more often than this guide. If the prompt above differs from the repository's current README, the repository wins โ copy the latest prompt from there.
After installation the AI will still ask for your confirmation at every step; real sending starts only after you explicitly send the confirmation phrase ็กฎ่ฎคๆฟๆดป <sequence name> (the toolkit recognizes this Chinese phrase; see Step 6).

Continue to account connection once you see "environment ready", "health check passed", or an equivalent success report. If the toolkit updates later, follow Updating an Existing Install at the end; do not create a second, duplicate directory.
2. Connect and Pass the Gateโ
โ Passing standard for this step:
onboard_check.py,check_login.py, andgate_check.shall explicitly pass, product fit is determined, acquisition directions are confirmed, and the product profile has entered theconfirmedordeclinedstate.
Follow Get the token and orgId, then connect AI to copy the complete accesstoken=... and orgId=... two-line block, then paste it unchanged into your trusted local ZCode task. Four rules:
- โ Paste the whole block: do not split it, remove field names, or retype it โ the tool recognizes it automatically;
- โ
Clear when done: used only during this workflow by
check_login.py,gate_check.sh, and other tools that genuinely need authentication; clearing means having the AI drop the credentials it holds in the current task, or simply starting a new task (old sessions do not carry over); re-fetch after switching accounts or starting a new task; - โ Three never-dos: never write them into files,
runs/, logs, screenshots, or backups; never echo them in messages; never send them to group chats, tickets, public docs, or untrusted shared AI tasks; - ๐ Why this is strict: these two values are your account's operating identity โ whoever holds them can operate your Laifaxin account. That is why the rules above exist.
Then complete 5 gates in order:
- Environment check: the AI runs
tools/onboard_check.pyand reports clearly whether it passed; - Login check: the AI passes the two-line block to the credential input of
tools/check_login.py(the current tool reads it via stdin using--credentials-stdin), which splitsaccesstokenandorgIdautomatically, then reports whether the current user and workspace are correct without showing the token; - Minimal input: once login passes, provide only your plain personal name and a one-sentence product description first:
My sign-off name is Tony.
I sell stainless-steel insulated bottles to US and European gift wholesalers, with custom logos and small trial orders.
First assess product fit, then give me four acquisition directions A/B/C/D; for each, state why it fits and why not, and tell me your recommendation. Let me reply with letters to confirm a direction first, then build the operator profile and product profile in two rounds. Ask only one must-confirm question at a time.
- Assess fit: the AI should judge the product's tier from buyer count, cold-email reply habits, purchase cycle, and whether wholesale, distribution, or integration layers exist, and explain why:
| Fit level | Typical case | How to run |
|---|---|---|
| Strong fit | Many buyers, many public emails, fast purchasing and inquiries | Run the full workflow, scaling up gradually |
| Conditional fit | Layered buyers; distributors fit well, end customers take longer | Prioritize the channel layer, reduce rounds and frequency, or switch to low-frequency manual nurturing; stay inactive until the cadence is set |
| Weak fit | Tenders, certifications, project-based equipment, or one purchase every few years | Set expectations first, then let you choose: max 500 companies ยท 1 round ยท no standard 12-step sequence; or move to tier-2/3 channels, or skip this workflow |
- Confirm acquisition directions: after the fit call, the AI must present four directions A/B/C/D. Each must include "audience combination, why it fits, why not" and mark the recommended one. Using bottles as an example, the structure should look like this:
A. US gift wholesalers + corporate gifting distributors
Fits: they need custom logos and small replenishment orders.
Not: if your MOQ is high, this group may not be the first to run.
B. European drinkware importers + regional distributors
Fits: steady replenishment and multi-style purchasing.
Not: if you lack product material required by the target market, fill that in first.
C. Outdoor and sports brand procurement teams
Fits: clear usage scenario; you can test co-branding or private-label demand.
Not: the development cycle may be longer, so it should not be the only first-round direction.
D. Broad coverage across the above
Fits: explore more possibilities at once.
Not: audiences are more scattered; first-round sample precision may drop.
My recommendation: A; the purchasing scenario is more direct, good for a focused first sample.
Reply with letters, combinations allowed, e.g. AB.
The above is only a format example; the actual directions and reasons must be re-analyzed by the AI for your product, not copied. You only reply with letters, for example:
AB
This step only selects the acquisition direction; it can be combined or revised, and it is not the A/B/C/D reply-intent grading used later for customer replies.
After the direction is confirmed, finish the profiles and the gate:
- The AI first asks for company-level details to build the operator profile; you may provide them or skip;
- The AI asks for product-level details in the next round to build the product profile; do not dump both tables on you in one round;
- When you confirm the product profile it is recorded as
confirmed, and an explicit skip is recorded asdeclined; while it is stilldraft, you cannot continue; - The AI runs
bash tools/gate_check.shper the gate contract in the current repository'sRULES.md/SKILL.md, passing the workspace and product path internally with no token or orgId arguments; - The AI reports the environment, current user/workspace, approved acquisition directions, product-profile status, and product-bound gate. If any item fails, it must not enter audience discovery, save prospects, generate templates, create sequences, add contacts, or activate sending.
Observation order: per the toolkit's operating baseline, with about 5,000 contacts you can look at delivery and open trends on day one; with only a few hundred contacts, watch bounces first on day one and check replies on days 2โ3. The system does not guarantee inquiries or orders.
3. Choose a Starting Pointโ
โ Passing standard for this step: choose the starting route from A/B/C that matches your current materials, and lock down one manually audited seed customer URL with genuine purchasing logic.
A "seed customer" is a sample that already closely matches your target customer; the AI keeps finding similar companies from it. All three routes end up in "find similar". Pick the one closest to your situation and send the whole block to the AI (replace the name, product, and example URLs with your own).
A: Inquiry Customerโ
Highest priority. First confirm the company is genuinely a matching buyer, then use its website as the seed:
My sign-off name is Tony; I sell stainless-steel insulated bottles to US gift wholesalers, with custom logos and small trial orders.
This company has already sent a valid inquiry: https://buyer.example
First assess product fit, then give me four acquisition directions A/B/C/D with why-to-choose, why-not, and a recommendation. After I reply with letters, build the profiles, research whether it is a reply-intent A/B customer worth copying, and use its website as the seed to find similar customers. Set rounds by fit level and stay inactive until the cadence is set.
B: Customer URLโ
Use a real customer website directly as the seed; do not re-guess audiences from the product:
My sign-off name is Tony; my product is stainless-steel insulated bottles.
This is my ideal customer URL: https://customer.example
First assess product fit, then give me four acquisition directions A/B/C/D with why-to-choose, why-not, and a recommendation. After I reply with letters, build the profiles, verify whether this URL is suitable as a seed, and find similar customers. Set rounds by fit level and stay inactive until the cadence is set; show results first at each step and continue only after my confirmation.
C: Product Onlyโ
Let the AI infer audiences first. Each audience should state the purchasing role, market, inquiry speed, volume, and why it is recommended; then you pick one to test:
My sign-off name is Tony.
I sell stainless-steel insulated bottles to US gift wholesalers, with custom logos and small trial orders.
I have no customer URL yet. First assess product fit, then give me four acquisition directions A/B/C/D with why-to-choose, why-not, and a recommendation. After I reply with letters, build the profiles and infer audiences. Set rounds by fit level: weak fit means at most 500 companies, one round, and no standard 12-step sequence; stay inactive until the cadence is set. Ask me only one key question at a time.

After you confirm an audience, the AI looks for candidate seeds. You need to check whether a company is actually likely to buy, not a lookalike peer, media outlet, or unrelated company.

If the recommendation is off, say exactly what is wrong and have the AI change the seed or adjust the audience. Confirm one precise seed before scaling up.
Not Sure Which to Pick?โ
Match your current situation directly without hesitation:
- You already have inquiries from real buyers: pick Route A. Buyers who generated real inquiries serve as the most accurate reference point, dramatically cutting trial-and-error costs.
- You have existing deal-closed customers or benchmark websites: pick Route B. Skip audience guessing and verify characteristics directly from proven buyers.
- You only have product details, launched a new line, or have no URLs: pick Route C. Let the AI infer 3-4 specific procurement scenarios from your product attributes and pick the easiest angle to start testing.
4. Find Similar and Auditโ
โ Passing standard for this step: the AI presents a complete similarity candidate audit plan, clearly showing saved company volume, per-company email limit, and estimated point cost, followed by your reply of "confirm save".
The AI searches for candidate companies in bulk and spot-checks:
- whether each company is a target buyer, wholesaler, distributor, brand, or integrator;
- whether the country and market are correct;
- whether the website's business has similar purchasing logic to the seed;
- whether contacts and emails are usable;
- how many companies will be saved, how many emails per company, and how many points it costs;
- whether countries, regions, or customer types you do not want are excluded.
Before saving, the AI must present the full plan; you then reply confirm save or ask to change the count.

Test only one audience the first time. If the sample is off, change the seed or search direction first; do not save a batch of wrong customers just to "finish the flow".
5. Approve Each Itemโ
โ Passing standard for this step: separately approve outreach email previews (replying "confirm generate"), sequence rules (replying "confirm sequence"), and contact imports (replying "confirm add"), with the sequence remaining inactive throughout.
A successful save does not mean you can send. There are three separate confirmation points after this.
5.1 Preview the Outreach Emailโ
The AI should show what the recipient actually sees, not just the HTML source. Check that:
- product claims and numbers are true and supported;
- the opening is from the buyer's perspective, not a self-centered "We manufacture" or "Our factory";
- each English email is at most 120 words and 4 paragraphs, with the product term and action keyword bolded in 2โ4 places;
- the last paragraph has one concrete, easy-to-reply action prompt;
- the audience, language, and greeting are correct, and the sign-off uses only your plain personal name;
- the emails are genuinely, visibly different from one another.

The screenshot mainly shows where "preview first, then confirm" happens. The toolkit keeps updating, so the generated content must follow the latest automatic checks; do not copy the specific email format from the old screenshot.
When the content is fine, reply:
confirm generate
5.2 Review the Follow-up Rulesโ
The AI should first report the plan name, outreach rounds and cadence, target time zone, working hours, daily send limit, per-domain limit, and the stop rules for the Inquiry and Do Not Send tags, all by product fit level:
- strong fit may use the standard 12-step plan;
- conditional fit should reduce rounds and frequency, or switch to low-frequency manual nurturing;
- weak fit sends one round only and does not build the standard 12-step sequence;
- while the cadence is unclear, the plan must stay
inactive.

When the rules are fine, reply separately:
confirm sequence
Until that confirmation arrives, the AI may only show the plan, not create it. After creation, you can also open Laifaxin to check the schedule and advanced settings.

5.3 Check the Contactsโ
Only when the save job is complete, the tag genuinely has contacts, and the plan is still inactive may the AI move to adding contacts. It should first show the plan name, tag, actual count, and current status, and wait for you to reply separately:
confirm add
Until that confirmation arrives, the AI cannot add contacts. After it finishes, check the actual added count:

6. Confirm Activationโ
โ Passing standard for this step: the AI provides a comprehensive report with all 5 compliance verifications passed and status inactive, you separately send "็กฎ่ฎคๆฟๆดป
<ๅบๅๅ>", and the AI confirms reading the status back as active.
When everything is ready, the AI should give one complete report covering at least:
- Laifaxin account and connection status;
- product and audience;
- qualified seed and similar-prospect pool;
- audit boundary, saved companies, contacts, and points;
- outreach templates, language, and verification of the follow-up rules for the selected fit level;
- product-fit level, outreach rounds, time zone, daily limit, and per-domain limit;
- verification that the Inquiry and Do Not Send protections are attached;
- evidence and pass status for all five checks: target-market rules, list source, sending identity, actual unsubscribe route, and suppression mechanism;
- current status: inactive.
The AI performs and displays these checks before activation; you do not need to configure the technical details yourself. If any check fails, or the fit-specific cadence is unresolved, the plan must remain inactive and activation is blocked.

After you confirm this report is correct, first tell the AI:
I want to activate this plan. Run the final pre-activation checks first.
The AI must display the exact sequence name, all five verification results, and the current inactive status again. Then give a final confirmation for that specific sequence. Send the phrase exactly as below (the toolkit recognizes this Chinese phrase; keep it in Chinese):
็กฎ่ฎคๆฟๆดป <ๅบๅๅ>
That is ็กฎ่ฎคๆฟๆดป followed by the concrete sequence name shown by the AI.
This confirmation is valid only for the current S12 activation approval the AI has just displayed. It is bound to that exact sequence, the current product profile, and the five verification results. If the sequence, profile, or verification evidence changes, the old confirmation becomes invalid; the AI must show the updated results and ask you to confirm again.
The AI must record that exact sentence in the current task, execute activation, and read the status back as active. If it still shows inactive or no status is returned, do not treat activation as successful.
7. Handle Repliesโ
โ Passing standard for this step: immediately verify automated sequence stoppage upon receiving human replies, classify intent into A/B/C/D tags, and feed only researched, qualified A/B inquiry URLs into the next similarity round.
A reply is not automatically a qualified inquiry. After a real person replies, first apply and verify the Inquiry tag so the current automated sequence has stopped, then have a person or AI assistant classify the reply. If the customer explicitly refuses or unsubscribes, replace it with the Do Not Send tag:
| Reply type | How to recognize it | Next action |
|---|---|---|
| Reply intent A: high intent | Product matches; need, quantity, project, or timing is fairly clear | Apply the Inquiry tag; prioritize manual research, quoting, and follow-up |
| Reply intent B: interested | Company matches, but only asks for a catalog or price, or its need is vague | Apply the Inquiry tag; ask about use, quantity, specs, and timing |
| Reply intent C: future need | No budget yet, purchasing later, or asks to be contacted later | Verify the Inquiry tag is active and stop the current automated sequence; switch to low-frequency manual nurturing |
| Reply intent D: refusal or irrelevant | Unsubscribe, refusal, peer, job seeker, student, or clearly unrelated | Apply the Do Not Send tag; stop further marketing |
| Auto-reply or out of office | Not a purchase intent | Wait for the person to return, or look for another suitable contact |
| Bounce | Email address unusable | Replace the email or exclude the contact |
Here A/B means reply-intent level, not the "acquisition direction plan A/B/C/D" seen earlier. After research, use only the URLs of reply-intent A/B inquiry customers that genuinely match as new seeds:
The following customers have sent valid inquiries and passed initial research:
1. https://inquiry-a.example
2. https://inquiry-b.example
Analyze their common traits, pick the seed most worth copying, and keep finding similar customers.
Then repeat "find similar โ audit โ save โ reach out โ feed inquiries back". Real inquiries can provide candidate seeds closer to actual buyer traits, but every round still needs spot-check auditing; do not assume it gets more accurate on its own.
๐ Outreach Pitfallsโ
| Pitfall | Consequence | How to avoid |
|---|---|---|
| ๐ด Blasting full volume in round one without running a test batch | Burning large point balances and harming sender reputation if templates or audiences are off | Run a test batch with several hundred contacts to observe bounce rates first; scale up only after confirming normal templates and response intent |
| ๐ด Running more than 500 companies and building the standard 12-step sequence under weak fit | Wasted points with poor results | Weak fit uses no more than 500 companies, one round, and no standard 12-step sequence |
| ๐ด Activating without explicit confirmation | Email sends before you have confirmed it | Confirm the report shows inactive first, then send the exact phrase ็กฎ่ฎคๆฟๆดป <ๅบๅๅ> (in Chinese) |
| ๐ก Replying to leads without verifying sequence stoppage | Automated follow-ups keep sending to the prospect, causing spam complaints | Apply the Inquiry tag immediately upon receiving a reply and verify the sequence stopped before manual follow-up |
| ๐ก Skipping the product-bound gate | The workflow runs with the wrong product path and data does not match | Have the AI run bash tools/gate_check.sh per the repository contract and confirm it passes; you do not fill in any arguments |
| ๐ก Installing from a forwarded old prompt instead of the repository README | You install an old version that does not match this guide | Copy the complete install prompt from the repository README |
| ๐ข Using replies for the next round without A/B/C/D classification | Similarity search is skewed by low-quality samples | Use only researched, qualified A/B inquiry websites as seeds for the next similarity search |
โ Checklistโ
- ZCode is installed and signed in, with Full Access, Computer Control, and Browser Control enabled.
- An active Laifaxin SVIP account is ready, and
onboard_check.pyandcheck_login.pyboth explicitly passed. - A personal sign-off name and one-sentence product description were provided, and strong/conditional/weak fit was assessed.
- The AI presented four A/B/C/D acquisition directions with recommendations and rejection reasons, and I approved directions by replying with letters.
- Operator and product details were handled in two rounds, and the product profile is recorded as
confirmedordeclined. - The AI ran
bash tools/gate_check.sh(with no token or orgId arguments) per the current repository's gate contract, and the product-bound gate explicitly passed. - The correct starting route was selected from the available source material; weak fit uses no more than 500 companies, one round, and no standard 12-step sequence.
- The qualified seed, similarity audit, save volume, and point estimate were approved.
- Emails, follow-up plan, and contact count were approved separately.
- The cadence was approved for the selected fit level, and the complete pre-activation report showed inactive status.
- The phrase
็กฎ่ฎคๆฟๆดป <ๅบๅๅ>was sent for the exact sequence (keep it in Chinese; the toolkit recognizes this phrase), and the system read the status back as active. - Replies were classified as A/B/C/D and tagged appropriately.
- Only researched, qualified A/B inquiry websites were used as seeds for the next similarity search.
Appendix: Update an Existing Installโ
Do not create a second, empty directory. Send this to ZCode:
Please follow the "update to a new version" flow in the current repository's README.md to update
the Laifaxin B2B inquiry system to the latest version.
Back up and keep the local data in .local/ and runs/, then run tools/onboard_check.py and report
the health check result.
See the latest release and release notes. The repository keeps updating, so what actually runs is governed by the current README.md, SKILL.md, RULES.md, and the matching specs/.
๐ Related Guidesโ
- ๐ Install and Sign In to ZCode
- ๐ Step 2 ยท ZCode Core Capability Settings
- ๐ Step 3 ยท Configure ZCode Plans and Models
- ๐ Get the token and orgId, then Connect AI
- ๐ Laifaxin SVIP Benefits and Upgrades
- ๐ Skills Overview โ the other (Website) skill and how the two fit together
This guide closes one complete round. After finishing, return to the ๐ Outreach Overview to start the next round from reply feedback, or re-run from a different starting point.