extruct-api
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseExtruct API
Extruct API
Use for supported Extruct operations. Do not construct raw HTTP requests for operations the CLI already supports.
<extruct_api_cli>Extruct AI is a company discovery and research platform for finding, enriching, and evaluating companies. Its core workflows are semantic search, lookalike search, and Deep Search for company discovery, plus AI Tables for repeatable company and people enrichment, scoring, and contact-finding workflows.
对于Extruct支持的操作,请使用。对于CLI已支持的操作,请勿构造原始HTTP请求。
<extruct_api_cli>Extruct AI是一款企业发现与研究平台,可用于查找、补全企业信息并评估企业。其核心工作流包括用于企业发现的语义搜索、相似性搜索和深度搜索,以及用于可重复执行的企业与人员信息补全、评分和联系人查找工作流的AI表格。
Source Of Truth
权威来源
Use the bundled CLI and the instructions in this skill as the default path.
When behavior is unclear, when the user asks for a capability that may not be covered here, or when the request may depend on recently changed API behavior, consult the official Extruct API reference as the source of truth:
Decision rule:
- if the CLI already supports the operation, use the CLI
- if the CLI does not cover the operation or the documented behavior here conflicts with the live API, defer to the official API docs
请将内置CLI和本技能中的说明作为默认操作路径。
当行为不明确、用户询问的功能可能未被此处覆盖,或者请求可能依赖于最近变更的API行为时,请参考官方Extruct API参考文档作为权威来源:
决策规则:
- 如果CLI已支持该操作,请使用CLI
- 如果CLI未覆盖该操作,或者此处记录的行为与实时API冲突,请以官方API文档为准
Resolve The Bundled CLI First
先解析内置CLI
<extruct_api_cli>- Resolve it from the directory that contains this .
SKILL.md - In shell or Bash tool calls, prefer the resolved absolute path, not relative to the workspace root.
scripts/extruct-api - All command examples below use as shorthand for that resolved absolute path.
<extruct_api_cli>
Example:
bash
/absolute/path/to/skills/extruct-api/scripts/extruct-api auth user<extruct_api_cli>- 从包含此的目录中解析它。
SKILL.md - 在Shell或Bash工具调用中,优先使用解析后的绝对路径,而非相对于工作区根目录的。
scripts/extruct-api - 以下所有命令示例均使用作为该解析后绝对路径的简写。
<extruct_api_cli>
示例:
bash
/absolute/path/to/skills/extruct-api/scripts/extruct-api auth userCore Workflow
核心工作流
This section covers the default operating intent of the skill: identify the Extruct object the user is working with, choose the right execution path, inspect before mutating, and use the CLI to carry the task through to completion.
- Resolve first, then establish API access. Before the first authenticated CLI call in a conversation, run
<extruct_api_cli>. If it fails, run<extruct_api_cli> auth userto distinguish credential problems from connectivity issues.<extruct_api_cli> healthcheck - Classify the request into the right Extruct path:
- if the user provides an Extruct table URL or a raw table UUID, treat it as an existing table operation first
- if the user provides an Extruct task URL or a raw task UUID, treat it as an existing Deep Search task first
- company discovery: semantic search, lookalike search, or Deep Search
- existing table operation: inspect, add/update rows or columns, run, poll, read
- company-table workflow: enrich or score companies in a reusable table
- people workflow: find people at companies or enrich existing people rows
- If the user already has a table or task, inspect it before mutating it. Default inspection is ,
tables get, and a smallcolumns listpage. When you only need a surgical read, addtables dataon the first--columnscall instead of fetching the full row payload.tables data - Start from the inline command and payload examples in this file. If a payload spans more than a few lines, prefer . Read
--payload-filebefore designing or changing columns.references/column-guide.md - Carry async work through to completion with or
tables poll, then summarize the final result or API error in plain language, including IDs, counts, and the next relevant object when it matters.deep-search poll
If any request shape, field name, response contract, or endpoint capability is uncertain while executing this workflow, re-check the official API reference before proceeding:
本节涵盖本技能的默认操作意图:识别用户正在处理的Extruct对象,选择正确的执行路径,在修改前先检查,然后使用CLI完成任务。
- 先解析,然后建立API访问权限。在对话中首次进行已认证的CLI调用前,运行
<extruct_api_cli>。如果调用失败,运行<extruct_api_cli> auth user以区分凭证问题与连接问题。<extruct_api_cli> healthcheck - 将请求分类到正确的Extruct操作路径:
- 如果用户提供了Extruct表格URL或原始表格UUID,优先按现有表格操作处理
- 如果用户提供了Extruct任务URL或原始任务UUID,优先按现有深度搜索任务处理
- 企业发现:语义搜索、相似性搜索或深度搜索
- 现有表格操作:检查、添加/更新行或列、运行、轮询、读取
- 企业表格工作流:补全或评分可复用表格中的企业信息
- 人员工作流:查找企业中的人员或补全现有人员行的信息
- 如果用户已有表格或任务,在修改前先检查。默认的检查操作包括、
tables get以及获取少量columns list数据。当仅需要精准读取时,在首次调用tables data时添加tables data参数,而非获取完整行数据。--columns - 从本文档中的内联命令和负载示例开始。如果负载超过几行,优先使用。在设计或修改列之前,请阅读
--payload-file。references/column-guide.md - 使用或
tables poll完成异步工作,然后用通俗易懂的语言总结最终结果或API错误,包括ID、数量以及相关的下一个对象(如有必要)。deep-search poll
在执行此工作流时,如果对任何请求格式、字段名称、响应约定或端点功能存在疑问,请在继续操作前重新检查官方API参考文档:
Resolve Extruct Identifiers
解析Extruct标识符
Users may provide Extruct objects as raw IDs or as dashboard URLs.
Interpret them as follows:
- if the user provides an Extruct table URL such as or
https://app.extruct.ai/tables/<table_id>, treat the path segment afterhttp://app.extruct.ai/tables/<table_id>as the table id/tables/ - if the user provides an Extruct task URL such as or
https://app.extruct.ai/tasks/<task_id>, treat the path segment afterhttp://app.extruct.ai/tasks/<task_id>as the Deep Search task id/tasks/ - if the URL includes extra path segments, query params, or fragments, still extract the id from the or
/tables/<table_id>segment/tasks/<task_id> - if the user provides a raw table UUID, use it directly as the table id
- if the user provides a raw task UUID, use it directly as the task id
- do not ask the user to restate an id that is already present in the URL
- when a table URL is present, default to the existing-table workflow unless the user explicitly asks for a new table or a search workflow
- when a task URL is present, default to the Deep Search task workflow unless the user explicitly asks to start a new search task
Example:
User request:
text
Add a funding column to http://app.extruct.ai/tables/0a1a669a-9a40-497c-bb00-d49dd8ee5b74Resulting table id:
text
0a1a669a-9a40-497c-bb00-d49dd8ee5b74First CLI reads:
bash
<extruct_api_cli> tables get 0a1a669a-9a40-497c-bb00-d49dd8ee5b74
<extruct_api_cli> columns list 0a1a669a-9a40-497c-bb00-d49dd8ee5b74
<extruct_api_cli> tables data 0a1a669a-9a40-497c-bb00-d49dd8ee5b74 --limit 20 --offset 0User request:
text
Check results for https://app.extruct.ai/tasks/d530c3ad-626c-4d7b-ab15-181d4058e4f8Resulting task id:
text
d530c3ad-626c-4d7b-ab15-181d4058e4f8First CLI reads:
bash
<extruct_api_cli> deep-search get d530c3ad-626c-4d7b-ab15-181d4058e4f8
<extruct_api_cli> deep-search results d530c3ad-626c-4d7b-ab15-181d4058e4f8 --limit 20 --offset 0用户可能会以原始ID或仪表板URL的形式提供Extruct对象。
请按以下方式解析:
- 如果用户提供的Extruct表格URL为或
https://app.extruct.ai/tables/<table_id>,将http://app.extruct.ai/tables/<table_id>后的路径段视为表格ID/tables/ - 如果用户提供的Extruct任务URL为或
https://app.extruct.ai/tasks/<task_id>,将http://app.extruct.ai/tasks/<task_id>后的路径段视为深度搜索任务ID/tasks/ - 如果URL包含额外的路径段、查询参数或片段,仍从或
/tables/<table_id>段中提取ID/tasks/<task_id> - 如果用户提供原始表格UUID,直接将其用作表格ID
- 如果用户提供原始任务UUID,直接将其用作任务ID
- 请勿要求用户重新表述已包含在URL中的ID
- 当存在表格URL时,默认按现有表格工作流处理,除非用户明确要求创建新表格或执行搜索工作流
- 当存在任务URL时,默认按深度搜索任务工作流处理,除非用户明确要求启动新的搜索任务
示例:
用户请求:
text
为http://app.extruct.ai/tables/0a1a669a-9a40-497c-bb00-d49dd8ee5b74添加融资列解析后的表格ID:
text
0a1a669a-9a40-497c-bb00-d49dd8ee5b74首次CLI读取命令:
bash
<extruct_api_cli> tables get 0a1a669a-9a40-497c-bb00-d49dd8ee5b74
<extruct_api_cli> columns list 0a1a669a-9a40-497c-bb00-d49dd8ee5b74
<extruct_api_cli> tables data 0a1a669a-9a40-497c-bb00-d49dd8ee5b74 --limit 20 --offset 0用户请求:
text
检查https://app.extruct.ai/tasks/d530c3ad-626c-4d7b-ab15-181d4058e4f8的结果解析后的任务ID:
text
d530c3ad-626c-4d7b-ab15-181d4058e4f8首次CLI读取命令:
bash
<extruct_api_cli> deep-search get d530c3ad-626c-4d7b-ab15-181d4058e4f8
<extruct_api_cli> deep-search results d530c3ad-626c-4d7b-ab15-181d4058e4f8 --limit 20 --offset 0Choose The Right Company-Finding Path
选择正确的企业查找路径
Semantic Search
语义搜索
Use semantic search when the user describes a market, ICP, category, product, or use case in natural language.
Typical asks:
- "search Extruct for AI procurement startups"
- "find German fintech companies in Extruct"
- "show me B2B treasury automation companies"
Commands:
bash
<extruct_api_cli> companies search --query "vertical SaaS for logistics procurement" --limit 20
<extruct_api_cli> companies search --query "enterprise sales AI" \
--filters '{"include":{"country":["United States"]},"range":{"founded":{"min":2018}}}' \
--offset 20 --limit 20Use when the user specifies geography, city, company size, or founded range. Pass a JSON object like one of these as the value.
--filters--filtersjson
{
"include": {
"country": ["United States"],
"size": ["51-200", "201-500"]
}
}json
{
"range": {
"founded": {
"min": 2018,
"max": 2024
}
}
}If search filters or pagination behavior appear different from the guidance here, verify current request and response details in the official API reference before guessing.
当用户用自然语言描述市场、理想客户画像(ICP)、类别、产品或用例时,使用语义搜索。
典型请求:
- "在Extruct中搜索AI采购初创企业"
- "在Extruct中查找德国金融科技公司"
- "展示B2B财务自动化公司"
命令:
bash
<extruct_api_cli> companies search --query "vertical SaaS for logistics procurement" --limit 20
<extruct_api_cli> companies search --query "enterprise sales AI" \
--filters '{"include":{"country":["United States"]},"range":{"founded":{"min":2018}}}' \
--offset 20 --limit 20当用户指定地域、城市、企业规模或成立时间范围时,使用参数。传递如下所示的JSON对象作为的值。
--filters--filtersjson
{
"include": {
"country": ["United States"],
"size": ["51-200", "201-500"]
}
}json
{
"range": {
"founded": {
"min": 2018,
"max": 2024
}
}
}如果搜索过滤器或分页行为与本文档中的指导不同,请在猜测前验证当前的请求和响应细节是否与官方API参考文档一致。
Lookalike Search
相似性搜索
Use lookalike search when the user already has a reference company and wants similar companies. Prefer domains or URLs for unless a prior Extruct response already gives you a UUID.
--company-identifierTypical asks:
- "find companies similar to Stripe in Extruct"
- "lookalike search from ramp.com"
Commands:
bash
<extruct_api_cli> companies similar --company-identifier extruct.ai --limit 20
<extruct_api_cli> companies similar --company-identifier stripe.com \
--filters '{"include":{"country":["United Kingdom"]}}'Pagination uses the same and behavior as semantic search.
--offset--limitIf identifier handling is unclear for a specific seed company or the live API behavior differs, verify the current lookalike-search request contract in the official API reference.
当用户已有参考企业并想要查找相似企业时,使用相似性搜索。除非之前的Extruct响应已提供UUID,否则优先使用域名或URL作为参数的值。
--company-identifier典型请求:
- "在Extruct中查找与Stripe相似的公司"
- "以ramp.com为参考进行相似性搜索"
命令:
bash
<extruct_api_cli> companies similar --company-identifier extruct.ai --limit 20
<extruct_api_cli> companies similar --company-identifier stripe.com \
--filters '{"include":{"country":["United Kingdom"]}}'分页使用与语义搜索相同的和参数。
--offset--limit如果对于特定的种子企业,标识符处理方式不明确,或者实时API行为与本文档不同,请在官方API参考文档中验证当前的相似性搜索请求约定。
Deep Search
深度搜索
Use Deep Search when the user wants a higher-precision asynchronous company search, wants explicit criteria, or is comfortable waiting for a task.
Typical asks:
- "run Deep Search for B2B revenue intelligence vendors"
- "find high-conviction AI procurement startups and show me the first result"
Create a task:
bash
<extruct_api_cli> deep-search create --payload '{"query":"AI procurement startups serving enterprise finance teams","desired_num_results":25}'Create a task with explicit criteria:
bash
<extruct_api_cli> deep-search create --payload-file criteria.jsoncriteria.jsonjson
{
"query": "vertical SaaS companies serving freight forwarding",
"desired_num_results": 25,
"criteria": [
{
"key": "has_logistics_focus",
"name": "Logistics Focus",
"criterion": "Company serves freight forwarding or logistics operations."
},
{
"key": "b2b_fit",
"name": "B2B Fit",
"criterion": "Company sells primarily to business buyers."
}
]
}Inspect, poll, read results, or request more:
bash
<extruct_api_cli> deep-search list --limit 20
<extruct_api_cli> deep-search get <task_id>
<extruct_api_cli> deep-search poll <task_id>
<extruct_api_cli> deep-search results <task_id> --limit 20 --offset 0
<extruct_api_cli> deep-search resume <task_id> --payload '{"desired_new_results":25}'Deep Search notes:
- can be read while the task is still running
deep-search results - completes when
deep-search pollorstatus == "done"is_exhausted == true - if the user wants follow-on enrichment, move shortlisted domains into a company table
- if the payload spans more than a few lines or includes , prefer
criteriaover inline--payload-file--payload
If Deep Search payload fields, task states, or resume behavior are unclear, verify them against the official API reference before constructing raw fallback requests.
Read when the task is a fuller company-discovery workflow instead of a single search command.
references/finding-companies.md当用户需要更高精度的异步企业搜索、明确的筛选条件,或愿意等待任务完成时,使用深度搜索。
典型请求:
- "运行深度搜索查找B2B营收智能供应商"
- "查找高精准度的AI采购初创企业并展示第一个结果"
创建任务:
bash
<extruct_api_cli> deep-search create --payload '{"query":"AI procurement startups serving enterprise finance teams","desired_num_results":25}'使用明确条件创建任务:
bash
<extruct_api_cli> deep-search create --payload-file criteria.jsoncriteria.jsonjson
{
"query": "vertical SaaS companies serving freight forwarding",
"desired_num_results": 25,
"criteria": [
{
"key": "has_logistics_focus",
"name": "Logistics Focus",
"criterion": "Company serves freight forwarding or logistics operations."
},
{
"key": "b2b_fit",
"name": "B2B Fit",
"criterion": "Company sells primarily to business buyers."
}
]
}检查、轮询、读取结果或请求更多结果:
bash
<extruct_api_cli> deep-search list --limit 20
<extruct_api_cli> deep-search get <task_id>
<extruct_api_cli> deep-search poll <task_id>
<extruct_api_cli> deep-search results <task_id> --limit 20 --offset 0
<extruct_api_cli> deep-search resume <task_id> --payload '{"desired_new_results":25}'深度搜索注意事项:
- 可在任务仍在运行时读取
deep-search results - 会在
deep-search poll或status == "done"时完成is_exhausted == true - 如果用户需要后续的信息补全,将筛选出的域名转移到企业表格中
- 如果负载超过几行或包含,优先使用
criteria而非内联--payload-file--payload
如果对深度搜索的负载字段、任务状态或恢复行为存在疑问,请在构造原始回退请求前,对照官方API参考文档进行验证。
如果任务是完整的企业发现工作流而非单个搜索命令,请阅读。
references/finding-companies.mdOperate Existing Tables
操作现有表格
Use these commands when the user already has a table and wants to inspect it, change rows or columns, run new work, or read results.
Typical asks:
- "add a funding column to this Extruct table"
- "poll this Extruct table until it finishes"
- "show me the first 20 rows from this table"
- "rerun only the new columns on this table"
If table payload shape, row schema, or run behavior is unclear, check the official API reference before mutating live tables:
当用户已有表格并想要检查、修改行或列、运行新任务或读取结果时,使用以下命令。
典型请求:
- "为这个Extruct表格添加融资列"
- "轮询这个Extruct表格直到完成"
- "展示这个表格的前20行"
- "仅重新运行这个表格中的新列"
如果对表格负载格式、行架构或运行行为存在疑问,请在修改实时表格前检查官方API参考文档:
Create A Table
创建表格
Use this when the user needs a new table before doing anything else.
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Accounts",
"kind":"company"
}'当用户需要先创建新表格才能进行其他操作时,使用此命令。
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Accounts",
"kind":"company"
}'Inspect Before Mutating
修改前先检查
If the user supplied a table URL, extract the table id first and use that id for all CLI commands below.
bash
<extruct_api_cli> tables list --limit 20
<extruct_api_cli> tables get <table_id>
<extruct_api_cli> columns list <table_id>
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0 --columns company_name,company_website
<extruct_api_cli> rows get <table_id> <row_id>如果用户提供了表格URL,先提取表格ID,然后使用该ID执行以下所有CLI命令。
bash
<extruct_api_cli> tables list --limit 20
<extruct_api_cli> tables get <table_id>
<extruct_api_cli> columns list <table_id>
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0 --columns company_name,company_website
<extruct_api_cli> rows get <table_id> <row_id>Update, Clone, Or Delete A Table
更新、克隆或删除表格
Update metadata:
bash
<extruct_api_cli> tables update <table_id> --payload '{
"name":"Target Accounts - Updated",
"description":"High-priority accounts for enrichment"
}'Clone or delete:
bash
<extruct_api_cli> tables clone <table_id> --schema-only
<extruct_api_cli> tables delete <table_id> --yes--schema-only--schema-only更新元数据:
bash
<extruct_api_cli> tables update <table_id> --payload '{
"name":"Target Accounts - Updated",
"description":"High-priority accounts for enrichment"
}'克隆或删除:
bash
<extruct_api_cli> tables clone <table_id> --schema-only
<extruct_api_cli> tables delete <table_id> --yes--schema-only--schema-onlyAdd, Update, Or Delete Rows
添加、更新或删除行
Use company domains or URLs as the safest on company tables.
Default to while iterating so you can inspect rows and columns before spending more work. Only switch to when the user explicitly wants add-and-run in one step.
Before deleting, inspect either the specific row with or a small page so you only remove the intended records.
input"run": false"run": truerows gettables dataCreate rows:
bash
<extruct_api_cli> rows create <table_id> --payload '{
"rows":[
{"data":{"input":"extruct.ai"}},
{"data":{"input":"stripe.com"}}
],
"run":false
}'Update rows:
bash
<extruct_api_cli> rows update <table_id> --payload '{
"rows":[
{
"id":"<row_id>",
"data":{"input":"https://extruct.ai"}
}
],
"run":false
}'Delete rows:
bash
<extruct_api_cli> rows delete <table_id> --yes --payload '{
"rows":[
"<row_id_1>",
"<row_id_2>"
]
}'Row-deletion notes:
- deletion is bulk and row-ID based
- requires
rows delete--yes - a successful response returns the deleted row IDs
在企业表格中,优先使用企业域名或URL作为最安全的值。在迭代过程中,默认设置,以便在执行更多任务前检查行和列。仅当用户明确要求一步完成添加并运行时,才切换为。在删除行之前,使用检查特定行,或获取少量数据,确保仅删除目标记录。
input"run": false"run": truerows gettables data创建行:
bash
<extruct_api_cli> rows create <table_id> --payload '{
"rows":[
{"data":{"input":"extruct.ai"}},
{"data":{"input":"stripe.com"}}
],
"run":false
}'更新行:
bash
<extruct_api_cli> rows update <table_id> --payload '{
"rows":[
{
"id":"<row_id>",
"data":{"input":"https://extruct.ai"}
}
],
"run":false
}'删除行:
bash
<extruct_api_cli> rows delete <table_id> --yes --payload '{
"rows":[
"<row_id_1>",
"<row_id_2>"
]
}'行删除注意事项:
- 删除操作是批量的,基于行ID
- 命令需要
rows delete参数--yes - 成功的响应会返回已删除的行ID
Add, Update, Or Delete Columns
添加、更新或删除列
Read before designing or changing columns. Prefer built-in column kinds before custom prompts.
references/column-guide.mdIf a column kind, payload field, or validation rule in this skill looks stale, verify the current table and column contract in the official API reference before retrying.
Add a simple research column:
bash
<extruct_api_cli> columns add <table_id> --payload '{
"column_configs":[
{
"kind":"agent",
"name":"Latest Funding",
"key":"latest_funding",
"value":{
"agent_type":"research_pro",
"prompt":"What is the latest funding round for the company? Return round type, amount, date, and lead investors when available.",
"output_format":"text"
}
}
]
}'Update a column:
bash
<extruct_api_cli> columns update <table_id> <column_id> --payload '{
"kind":"agent",
"name":"Latest Funding",
"key":"latest_funding",
"value":{
"agent_type":"research_pro",
"prompt":"What is the latest funding round for the company? Return round type, amount, date, and lead investors when available.",
"output_format":"text"
}
}'Delete a column:
bash
<extruct_api_cli> columns delete <table_id> <column_id> --yes在设计或修改列之前,请阅读。优先使用内置列类型,而非自定义提示词。
references/column-guide.md如果本技能中提到的列类型、负载字段或验证规则看起来已过时,请在重试前在官方API参考文档中验证当前的表格和列约定。
添加简单的研究列:
bash
<extruct_api_cli> columns add <table_id> --payload '{
"column_configs":[
{
"kind":"agent",
"name":"Latest Funding",
"key":"latest_funding",
"value":{
"agent_type":"research_pro",
"prompt":"What is the latest funding round for the company? Return round type, amount, date, and lead investors when available.",
"output_format":"text"
}
}
]
}'更新列:
bash
<extruct_api_cli> columns update <table_id> <column_id> --payload '{
"kind":"agent",
"name":"Latest Funding",
"key":"latest_funding",
"value":{
"agent_type":"research_pro",
"prompt":"What is the latest funding round for the company? Return round type, amount, date, and lead investors when available.",
"output_format":"text"
}
}'删除列:
bash
<extruct_api_cli> columns delete <table_id> <column_id> --yesRun And Poll
运行与轮询
Default incremental run:
bash
<extruct_api_cli> tables run <table_id>
<extruct_api_cli> tables run <table_id> --payload '{
"mode":"new",
"columns":["<column_id_1>","<column_id_2>"]
}'Poll and then read a small result page:
bash
<extruct_api_cli> tables poll <table_id>
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0 --columns company_name,latest_fundingTable-operation defaults:
- prefer when iterating on an existing table
mode: "new" - bare is shorthand for
tables run <table_id>{"mode":"new"} - supported run modes are ,
new, andallfailed - pass explicit column ids when the user only wants new work
- inspect a small result page before scaling out, and use whenever you only need a surgical slice of the data
--columns - do not rerun the whole table unless the user explicitly wants that
默认增量运行:
bash
<extruct_api_cli> tables run <table_id>
<extruct_api_cli> tables run <table_id> --payload '{
"mode":"new",
"columns":["<column_id_1>","<column_id_2>"]
}'轮询并读取少量结果数据:
bash
<extruct_api_cli> tables poll <table_id>
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0
<extruct_api_cli> tables data <table_id> --limit 20 --offset 0 --columns company_name,latest_funding表格操作默认规则:
- 在迭代现有表格时,优先使用
mode: "new" - 直接使用是
tables run <table_id>的简写{"mode":"new"} - 支持的运行模式包括、
new和allfailed - 当用户仅需要运行新任务时,传递明确的列ID
- 在大规模操作前,先检查少量结果数据,并在仅需要精准数据时使用参数
--columns - 除非用户明确要求,否则不要重新运行整个表格
Choose The Right Table Kind
选择正确的表格类型
When creating a table, choose the kind from the entity the rows represent:
- : use when rows are companies and the user wants company research, enrichment, scoring, or company-to-people branching
company - : use when rows are people or contacts and the user wants email, phone, LinkedIn, or derived people fields
people - : use only when rows are neither companies nor people
generic
For tables:
generic- the CLI fully supports create, update, run, and read operations
- this skill gives less prescriptive guidance because there are no company/people built-ins to lean on
- use more directly and design prompts, dependencies, and output formats explicitly
references/column-guide.md
创建表格时,根据行所代表的实体选择类型:
- :当行代表企业,且用户需要进行企业研究、信息补全、评分或从企业到人员的分支操作时使用
company - :当行代表人员或联系人,且用户需要邮箱、电话、LinkedIn信息或衍生的人员字段时使用
people - :仅当行既不代表企业也不代表人员时使用
generic
对于表格:
generic- CLI完全支持创建、更新、运行和读取操作
- 由于没有内置的企业/人员功能可依赖,本技能提供的指导较少
- 更直接地使用,并明确设计提示词、依赖关系和输出格式
references/column-guide.md
Research Companies With Tables
使用表格研究企业
Use company tables when the user wants custom enrichment over a set of companies or wants to run repeatable company research workflows.
Company table notes:
- tables automatically include
company,input,company_profile, andcompany_namecompany_website - use domains or URLs as row inputs whenever possible
- built-in company columns usually remove the need to create basic identity fields yourself
If the user needs a fresh company table, create one:
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Accounts",
"kind":"company"
}'Then use the existing-table commands above to:
- add company rows
- add custom research columns from
references/column-guide.md - run only the new column ids with
mode: "new" - poll and inspect a small results page
Read when the task is a full company-research workflow instead of a single table operation.
references/researching-companies.md当用户需要对一组企业进行自定义信息补全,或运行可重复的企业研究工作流时,使用企业表格。
企业表格注意事项:
- 表格会自动包含
company、input、company_profile和company_name列company_website - 尽可能使用域名或URL作为行输入
- 内置的企业列通常无需您自行创建基本身份字段
如果用户需要新的企业表格,创建一个:
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Accounts",
"kind":"company"
}'然后使用上述现有表格命令执行以下操作:
- 添加企业行
- 从中添加自定义研究列
references/column-guide.md - 使用仅运行新添加的列ID
mode: "new" - 轮询并检查少量结果数据
如果任务是完整的企业研究工作流而非单个表格操作,请阅读。
references/researching-companies.mdFind People At Companies
查找企业中的人员
Use this path when the user starts from companies and wants decision-makers, leadership, or contactable people.
If child-table behavior, finder output shape, or workflow handoff details differ from what this skill expects, verify the current API behavior in the official API reference.
Start from a table, then add a column:
companycompany_people_finderbash
<extruct_api_cli> columns add <company_table_id> --payload '{
"column_configs":[
{
"kind":"company_people_finder",
"name":"Decision Makers",
"key":"decision_makers",
"value":{
"roles":["VP Sales","sales leadership","revenue operations"]
}
}
]
}'Run only the new finder column and poll:
bash
<extruct_api_cli> tables run <company_table_id> --payload '{
"mode":"new",
"columns":["<people_finder_column_id>"]
}'
<extruct_api_cli> tables poll <company_table_id>Then inspect the parent table to find the generated child table in , and continue there:
peoplechild_relationshipsbash
<extruct_api_cli> tables get <company_table_id>The parent company table will also show the people-finder cell result, but the child table is the place to continue downstream enrichment.
peopleUse broader role families for coverage, such as , and exact titles for narrower targeting, such as . Read when the task is a full company-to-people workflow.
sales leadershipVP Salesreferences/finding-people-at-companies.md当用户从企业出发,想要查找决策者、领导层或可联系的人员时,使用此路径。
如果子表格行为、查找器输出格式或工作流交接细节与本技能的预期不同,请在官方API参考文档中验证当前的API行为。
从表格开始,然后添加列:
companycompany_people_finderbash
<extruct_api_cli> columns add <company_table_id> --payload '{
"column_configs":[
{
"kind":"company_people_finder",
"name":"Decision Makers",
"key":"decision_makers",
"value":{
"roles":["VP Sales","sales leadership","revenue operations"]
}
}
]
}'仅运行新添加的查找器列并轮询:
bash
<extruct_api_cli> tables run <company_table_id> --payload '{
"mode":"new",
"columns":["<people_finder_column_id>"]
}'
<extruct_api_cli> tables poll <company_table_id>然后检查父表格,在中找到生成的子表格,并在该表格中继续操作:
child_relationshipspeoplebash
<extruct_api_cli> tables get <company_table_id>父企业表格也会显示人员查找器单元格的结果,但子表格是进行后续信息补全的地方。
people使用更广泛的角色族以覆盖更多人员,例如,使用精确头衔进行更精准的定位,例如。如果任务是完整的从企业到人员的工作流,请阅读。
sales leadershipVP Salesreferences/finding-people-at-companies.mdResearch People
研究人员信息
Use this path when the user already has people rows or already has a generated child table and now wants enrichment, contact data, or derived fields.
peopleTypical asks:
- "find work emails for these people"
- "add phone numbers to this people table"
- "classify these contacts by department and seniority"
People-table notes:
- tables automatically include
people,input,full_name, androleprofile_url - full name, current role, and LinkedIn URL is the safest
input - include current role when available
- for or
email_finder,phone_findermust exist under the exact keycompany_websitecompany_website - on tables, custom
peoplecolumns can useagent,llm, andresearch_reasoning;linkedinis not allowedresearch_pro
If people-table capabilities, supported column kinds, or enrichment requirements appear to have changed, verify them in the official API reference before proceeding.
Create a standalone people table with local website context:
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Contacts",
"kind":"people",
"column_configs":[
{
"kind":"input",
"name":"Company Website",
"key":"company_website"
}
]
}'Add people rows:
bash
<extruct_api_cli> rows create <people_table_id> --payload '{
"rows":[
{
"data":{
"input":"Jane Doe, VP Sales, https://linkedin.com/in/jane-doe",
"company_website":"extruct.ai"
}
}
],
"run":false
}'Add contact or derived columns:
bash
<extruct_api_cli> columns add <people_table_id> --payload '{
"column_configs":[
{
"kind":"email_finder",
"name":"Work Email",
"key":"work_email"
},
{
"kind":"phone_finder",
"name":"Direct Phone",
"key":"direct_phone"
}
]
}'Run, poll, and inspect:
bash
<extruct_api_cli> tables run <people_table_id> --payload '{
"mode":"new",
"columns":["<column_id_1>","<column_id_2>"]
}'
<extruct_api_cli> tables poll <people_table_id>
<extruct_api_cli> tables data <people_table_id> --limit 20 --offset 0Read when the task is a full people-research workflow.
references/researching-people.md当用户已有人员行或已生成的子表格,现在需要信息补全、联系数据或衍生字段时,使用此路径。
people典型请求:
- "查找这些人员的工作邮箱"
- "为这个人员表格添加电话号码"
- "按部门和职级对这些联系人进行分类"
人员表格注意事项:
- 表格会自动包含
people、input、full_name和role列profile_url - 全名、当前职位和LinkedIn URL是最安全的值
input - 尽可能包含当前职位
- 对于或
email_finder列,phone_finder必须存在于精确的company_website键下company_website - 在表格中,自定义
people列可以使用agent、llm和research_reasoning类型;不允许使用linkedin类型research_pro
如果人员表格的功能、支持的列类型或信息补全要求看起来已变更,请在继续操作前在官方API参考文档中进行验证。
创建包含企业网站上下文的独立人员表格:
bash
<extruct_api_cli> tables create --payload '{
"name":"Target Contacts",
"kind":"people",
"column_configs":[
{
"kind":"input",
"name":"Company Website",
"key":"company_website"
}
]
}'添加人员行:
bash
<extruct_api_cli> rows create <people_table_id> --payload '{
"rows":[
{
"data":{
"input":"Jane Doe, VP Sales, https://linkedin.com/in/jane-doe",
"company_website":"extruct.ai"
}
}
],
"run":false
}'添加联系信息或衍生列:
bash
<extruct_api_cli> columns add <people_table_id> --payload '{
"column_configs":[
{
"kind":"email_finder",
"name":"Work Email",
"key":"work_email"
},
{
"kind":"phone_finder",
"name":"Direct Phone",
"key":"direct_phone"
}
]
}'运行、轮询并检查:
bash
<extruct_api_cli> tables run <people_table_id> --payload '{
"mode":"new",
"columns":["<column_id_1>","<column_id_2>"]
}'
<extruct_api_cli> tables poll <people_table_id>
<extruct_api_cli> tables data <people_table_id> --limit 20 --offset 0如果任务是完整的人员研究工作流,请阅读。
references/researching-people.mdTroubleshooting And Recovery
故障排除与恢复
Auth Or Connectivity Fails
认证或连接失败
Run:
bash
<extruct_api_cli> auth user
<extruct_api_cli> healthcheckIf fails, the token or account context is wrong. If fails too, treat it as connectivity or service health.
auth userhealthcheckIf the auth flow, expected status codes, or healthcheck contract has changed, defer to the official API reference.
运行以下命令:
bash
<extruct_api_cli> auth user
<extruct_api_cli> healthcheck如果失败,说明令牌或账户上下文有误。如果也失败,则视为连接问题或服务健康问题。
auth userhealthcheck如果认证流程、预期状态码或健康检查约定已变更,请以官方API参考文档为准。
Search Results Are Too Broad
搜索结果过于宽泛
- add for country, city, size, or founded range
--filters - switch from semantic search to lookalike if a reference company exists
- switch from semantic search or lookalike to Deep Search if the user wants a tighter, higher-conviction shortlist
- 添加参数筛选国家、城市、企业规模或成立时间范围
--filters - 如果存在参考企业,从语义搜索切换为相似性搜索
- 如果用户需要更精准、更高可信度的筛选列表,从语义搜索或相似性搜索切换为深度搜索
Lookalike Results Feel Wrong
�似性搜索结果不符合预期
- use a domain or URL instead of a company name when possible
- confirm the seed company is the correct one before judging the output
- 尽可能使用域名或URL而非企业名称
- 在判断输出结果前,确认种子企业是否正确
Column Creation Fails
列创建失败
Common causes:
- unresolved prompt references such as pointing at a missing key
{pricing_notes} - wrong table kind for the column kind
- invalid columns without an
jsonoutput_schema
Check before retrying.
references/column-guide.md常见原因:
- 未解析的提示词引用,例如指向不存在的键
{pricing_notes} - 列类型与表格类型不匹配
- 无效的列,未包含
jsonoutput_schema
在重试前,请检查。
references/column-guide.mdCells Never Start Or Stay Idle
单元格从未启动或一直处于空闲状态
Common causes:
- upstream dependency cells are not done yet
- the table is missing required context
- the run targeted the wrong columns
Checks:
- inspect the table header and current columns
- verify the same rows have cells in any upstream dependency columns
done - keep dependency chains short
- rerun only the intended new columns with
mode: "new"
常见原因:
- 上游依赖单元格尚未完成
- 表格缺少必要的上下文
- 运行操作针对了错误的列
检查项:
- 检查表格标题和当前列
- 验证相同行在所有上游依赖列中是否有已完成的单元格
- 保持依赖链简短
- 使用仅重新运行目标新列
mode: "new"
Email Or Phone Enrichment Fails On People Tables
人员表格中的邮箱或电话补全失败
Check that:
- the row has strong person context in
input - exists under the exact key
company_websitecompany_website - the row belongs to the intended company
检查以下内容:
- 行的字段包含足够的人员上下文
input - 存在于精确的
company_website键下company_website - 行属于目标企业
Results Are Hard To Use Downstream
结果难以在下游使用
- split multi-job prompts into separate columns
- use ,
select,multiselect,numeric,money,date, orgradeinstead of defaulting tojsontext - use the simplest format that captures the business value; do not pack Extruct explanation or source metadata into unless the user explicitly wants those fields as table data
json - derive downstream classifications with after researching the source fact once
llm
- 将多任务提示词拆分为单独的列
- 使用、
select、multiselect、numeric、money、date或grade类型,而非默认的json类型text - 使用能捕获业务价值的最简单格式;除非用户明确要求,否则不要将Extruct的解释或源元数据打包到列中
json - 在研究源事实一次后,使用生成下游分类
llm
Retry Behavior
重试行为
- if the CLI returns , treat it as billing or quota rejection, not a tight-loop retry signal
429 - if the CLI returns a , wait 5-10 seconds and retry once
5xx
- 如果CLI返回,视为计费或配额限制,而非需要立即重试的信号
429 - 如果CLI返回错误,等待5-10秒后重试一次
5xx
Global Flags
全局标志
- for human-readable JSON
--pretty - to override request timeout
--timeout <seconds> - to override the API base URL
--base-url <url> - these flags can be placed before the resource, after the resource, or after the final action; for example:
<extruct_api_cli> tables list --limit 20 --pretty
- :生成人类可读的JSON格式
--pretty - :覆盖请求超时时间
--timeout <seconds> - :覆盖API基础URL
--base-url <url> - 这些标志可以放在资源之前、资源之后或最终操作之后;例如:
<extruct_api_cli> tables list --limit 20 --pretty
References
参考文档
- : column design rules plus a comprehensive library of good column configs
references/column-guide.md - : choose and operate semantic search, lookalike, and Deep Search
references/finding-companies.md - : build or extend company research tables safely
references/researching-companies.md - : branch from company tables into people workflows
references/finding-people-at-companies.md - : enrich standalone or generated people tables
references/researching-people.md - official Extruct API reference: https://www.extruct.ai/docs/api-reference/introduction
- :列设计规则以及全面的优质列配置库
references/column-guide.md - :选择并操作语义搜索、相似性搜索和深度搜索
references/finding-companies.md - :安全地构建或扩展企业研究表格
references/researching-companies.md - :从企业表格分支到人员工作流
references/finding-people-at-companies.md - :补全独立或生成的人员表格信息
references/researching-people.md - 官方Extruct API参考文档:https://www.extruct.ai/docs/api-reference/introduction