extruct-api

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Extruct API

Extruct API

Use
<extruct_api_cli>
for supported Extruct operations. Do not construct raw HTTP requests for operations the CLI already supports.
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支持的操作,请使用
<extruct_api_cli>
。对于CLI已支持的操作,请勿构造原始HTTP请求。
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>
means the absolute path to the bundled CLI script for this skill.
  • Resolve it from the directory that contains this
    SKILL.md
    .
  • In shell or Bash tool calls, prefer the resolved absolute path, not
    scripts/extruct-api
    relative to the workspace root.
  • All command examples below use
    <extruct_api_cli>
    as shorthand for that resolved absolute path.
Example:
bash
/absolute/path/to/skills/extruct-api/scripts/extruct-api auth user
<extruct_api_cli>
指的是本技能内置CLI脚本的绝对路径。
  • 从包含此
    SKILL.md
    的目录中解析它。
  • 在Shell或Bash工具调用中,优先使用解析后的绝对路径,而非相对于工作区根目录的
    scripts/extruct-api
  • 以下所有命令示例均使用
    <extruct_api_cli>
    作为该解析后绝对路径的简写。
示例:
bash
/absolute/path/to/skills/extruct-api/scripts/extruct-api auth user

Core 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.
  1. Resolve
    <extruct_api_cli>
    first, then establish API access. Before the first authenticated CLI call in a conversation, run
    <extruct_api_cli> auth user
    . If it fails, run
    <extruct_api_cli> healthcheck
    to distinguish credential problems from connectivity issues.
  2. 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
  3. If the user already has a table or task, inspect it before mutating it. Default inspection is
    tables get
    ,
    columns list
    , and a small
    tables data
    page. When you only need a surgical read, add
    --columns
    on the first
    tables data
    call instead of fetching the full row payload.
  4. Start from the inline command and payload examples in this file. If a payload spans more than a few lines, prefer
    --payload-file
    . Read
    references/column-guide.md
    before designing or changing columns.
  5. Carry async work through to completion with
    tables poll
    or
    deep-search poll
    , then summarize the final result or API error in plain language, including IDs, counts, and the next relevant object when it matters.
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完成任务。
  1. 先解析
    <extruct_api_cli>
    ,然后建立API访问权限。在对话中首次进行已认证的CLI调用前,运行
    <extruct_api_cli> auth user
    。如果调用失败,运行
    <extruct_api_cli> healthcheck
    以区分凭证问题与连接问题。
  2. 将请求分类到正确的Extruct操作路径:
    • 如果用户提供了Extruct表格URL或原始表格UUID,优先按现有表格操作处理
    • 如果用户提供了Extruct任务URL或原始任务UUID,优先按现有深度搜索任务处理
    • 企业发现:语义搜索、相似性搜索或深度搜索
    • 现有表格操作:检查、添加/更新行或列、运行、轮询、读取
    • 企业表格工作流:补全或评分可复用表格中的企业信息
    • 人员工作流:查找企业中的人员或补全现有人员行的信息
  3. 如果用户已有表格或任务,在修改前先检查。默认的检查操作包括
    tables get
    columns list
    以及获取少量
    tables data
    数据。当仅需要精准读取时,在首次调用
    tables data
    时添加
    --columns
    参数,而非获取完整行数据。
  4. 从本文档中的内联命令和负载示例开始。如果负载超过几行,优先使用
    --payload-file
    。在设计或修改列之前,请阅读
    references/column-guide.md
  5. 使用
    tables poll
    deep-search poll
    完成异步工作,然后用通俗易懂的语言总结最终结果或API错误,包括ID、数量以及相关的下一个对象(如有必要)。
在执行此工作流时,如果对任何请求格式、字段名称、响应约定或端点功能存在疑问,请在继续操作前重新检查官方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
    https://app.extruct.ai/tables/<table_id>
    or
    http://app.extruct.ai/tables/<table_id>
    , treat the path segment after
    /tables/
    as the table id
  • if the user provides an Extruct task URL such as
    https://app.extruct.ai/tasks/<task_id>
    or
    http://app.extruct.ai/tasks/<task_id>
    , treat the path segment after
    /tasks/
    as the Deep Search task id
  • if the URL includes extra path segments, query params, or fragments, still extract the id from the
    /tables/<table_id>
    or
    /tasks/<task_id>
    segment
  • 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-d49dd8ee5b74
Resulting table id:
text
0a1a669a-9a40-497c-bb00-d49dd8ee5b74
First 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 0
User request:
text
Check results for https://app.extruct.ai/tasks/d530c3ad-626c-4d7b-ab15-181d4058e4f8
Resulting task id:
text
d530c3ad-626c-4d7b-ab15-181d4058e4f8
First 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>
    ,将
    /tables/
    后的路径段视为表格ID
  • 如果用户提供的Extruct任务URL为
    https://app.extruct.ai/tasks/<task_id>
    http://app.extruct.ai/tasks/<task_id>
    ,将
    /tasks/
    后的路径段视为深度搜索任务ID
  • 如果URL包含额外的路径段、查询参数或片段,仍从
    /tables/<table_id>
    /tasks/<task_id>
    段中提取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 0

Choose 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 20
Use
--filters
when the user specifies geography, city, company size, or founded range. Pass a JSON object like one of these as the
--filters
value.
json
{
  "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
当用户指定地域、城市、企业规模或成立时间范围时,使用
--filters
参数。传递如下所示的JSON对象作为
--filters
的值。
json
{
  "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
--company-identifier
unless a prior Extruct response already gives you a UUID.
Typical 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
--offset
and
--limit
behavior as semantic search.
If 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.json
criteria.json
:
json
{
  "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:
  • deep-search results
    can be read while the task is still running
  • deep-search poll
    completes when
    status == "done"
    or
    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
    criteria
    , prefer
    --payload-file
    over inline
    --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
references/finding-companies.md
when the task is a fuller company-discovery workflow instead of a single search command.
当用户需要更高精度的异步企业搜索、明确的筛选条件,或愿意等待任务完成时,使用深度搜索。
典型请求:
  • "运行深度搜索查找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.json
criteria.json
json
{
  "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.md

Operate 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
clones the columns and structure without copying row data. Without
--schema-only
, clone copies both schema and rows.
更新元数据:
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-only
,克隆操作会同时复制架构和行数据。

Add, Update, Or Delete Rows

添加、更新或删除行

Use company domains or URLs as the safest
input
on company tables. Default to
"run": false
while iterating so you can inspect rows and columns before spending more work. Only switch to
"run": true
when the user explicitly wants add-and-run in one step. Before deleting, inspect either the specific row with
rows get
or a small
tables data
page so you only remove the intended records.
Create 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
  • rows delete
    requires
    --yes
  • a successful response returns the deleted row IDs
在企业表格中,优先使用企业域名或URL作为最安全的
input
值。在迭代过程中,默认设置
"run": false
,以便在执行更多任务前检查行和列。仅当用户明确要求一步完成添加并运行时,才切换为
"run": true
。在删除行之前,使用
rows get
检查特定行,或获取少量
tables 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
references/column-guide.md
before designing or changing columns. Prefer built-in column kinds before custom prompts.
If 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> --yes

Run 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_funding
Table-operation defaults:
  • prefer
    mode: "new"
    when iterating on an existing table
  • bare
    tables run <table_id>
    is shorthand for
    {"mode":"new"}
  • supported run modes are
    new
    ,
    all
    , and
    failed
  • pass explicit column ids when the user only wants new work
  • inspect a small result page before scaling out, and use
    --columns
    whenever you only need a surgical slice of the data
  • 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
    all
    failed
  • 当用户仅需要运行新任务时,传递明确的列ID
  • 在大规模操作前,先检查少量结果数据,并在仅需要精准数据时使用
    --columns
    参数
  • 除非用户明确要求,否则不要重新运行整个表格

Choose The Right Table Kind

选择正确的表格类型

When creating a table, choose the kind from the entity the rows represent:
  • company
    : use when rows are companies and the user wants company research, enrichment, scoring, or company-to-people branching
  • people
    : use when rows are people or contacts and the user wants email, phone, LinkedIn, or derived people fields
  • generic
    : use only when rows are neither companies nor people
For
generic
tables:
  • 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
    references/column-guide.md
    more directly and design prompts, dependencies, and output formats explicitly
创建表格时,根据行所代表的实体选择类型:
  • company
    :当行代表企业,且用户需要进行企业研究、信息补全、评分或从企业到人员的分支操作时使用
  • people
    :当行代表人员或联系人,且用户需要邮箱、电话、LinkedIn信息或衍生的人员字段时使用
  • 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:
  • company
    tables automatically include
    input
    ,
    company_profile
    ,
    company_name
    , and
    company_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:
  1. add company rows
  2. add custom research columns from
    references/column-guide.md
  3. run only the new column ids with
    mode: "new"
  4. poll and inspect a small results page
Read
references/researching-companies.md
when the task is a full company-research workflow instead of a single table operation.
当用户需要对一组企业进行自定义信息补全,或运行可重复的企业研究工作流时,使用企业表格。
企业表格注意事项:
  • company
    表格会自动包含
    input
    company_profile
    company_name
    company_website
  • 尽可能使用域名或URL作为行输入
  • 内置的企业列通常无需您自行创建基本身份字段
如果用户需要新的企业表格,创建一个:
bash
<extruct_api_cli> tables create --payload '{
  "name":"Target Accounts",
  "kind":"company"
}'
然后使用上述现有表格命令执行以下操作:
  1. 添加企业行
  2. references/column-guide.md
    中添加自定义研究列
  3. 使用
    mode: "new"
    仅运行新添加的列ID
  4. 轮询并检查少量结果数据
如果任务是完整的企业研究工作流而非单个表格操作,请阅读
references/researching-companies.md

Find 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
company
table, then add a
company_people_finder
column:
bash
<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
people
table in
child_relationships
, and continue there:
bash
<extruct_api_cli> tables get <company_table_id>
The parent company table will also show the people-finder cell result, but the child
people
table is the place to continue downstream enrichment.
Use broader role families for coverage, such as
sales leadership
, and exact titles for narrower targeting, such as
VP Sales
. Read
references/finding-people-at-companies.md
when the task is a full company-to-people workflow.
当用户从企业出发,想要查找决策者、领导层或可联系的人员时,使用此路径。
如果子表格行为、查找器输出格式或工作流交接细节与本技能的预期不同,请在官方API参考文档中验证当前的API行为。
company
表格开始,然后添加
company_people_finder
列:
bash
<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_relationships
中找到生成的子
people
表格,并在该表格中继续操作:
bash
<extruct_api_cli> tables get <company_table_id>
父企业表格也会显示人员查找器单元格的结果,但子
people
表格是进行后续信息补全的地方。
使用更广泛的角色族以覆盖更多人员,例如
sales leadership
,使用精确头衔进行更精准的定位,例如
VP Sales
。如果任务是完整的从企业到人员的工作流,请阅读
references/finding-people-at-companies.md

Research People

研究人员信息

Use this path when the user already has people rows or already has a generated child
people
table and now wants enrichment, contact data, or derived fields.
Typical asks:
  • "find work emails for these people"
  • "add phone numbers to this people table"
  • "classify these contacts by department and seniority"
People-table notes:
  • people
    tables automatically include
    input
    ,
    full_name
    ,
    role
    , and
    profile_url
  • full name, current role, and LinkedIn URL is the safest
    input
  • include current role when available
  • for
    email_finder
    or
    phone_finder
    ,
    company_website
    must exist under the exact key
    company_website
  • on
    people
    tables, custom
    agent
    columns can use
    llm
    ,
    research_reasoning
    , and
    linkedin
    ;
    research_pro
    is not allowed
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 0
Read
references/researching-people.md
when the task is a full people-research workflow.
当用户已有人员行或已生成的子
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.md

Troubleshooting And Recovery

故障排除与恢复

Auth Or Connectivity Fails

认证或连接失败

Run:
bash
<extruct_api_cli> auth user
<extruct_api_cli> healthcheck
If
auth user
fails, the token or account context is wrong. If
healthcheck
fails too, treat it as connectivity or service health.
If 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 user
失败,说明令牌或账户上下文有误。如果
healthcheck
也失败,则视为连接问题或服务健康问题。
如果认证流程、预期状态码或健康检查约定已变更,请以官方API参考文档为准。

Search Results Are Too Broad

搜索结果过于宽泛

  • add
    --filters
    for country, city, size, or founded range
  • 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
    {pricing_notes}
    pointing at a missing key
  • wrong table kind for the column kind
  • invalid
    json
    columns without an
    output_schema
Check
references/column-guide.md
before retrying.
常见原因:
  • 未解析的提示词引用,例如
    {pricing_notes}
    指向不存在的键
  • 列类型与表格类型不匹配
  • 无效的
    json
    列,未包含
    output_schema
在重试前,请检查
references/column-guide.md

Cells 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
    done
    cells in any upstream dependency columns
  • 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
  • company_website
    exists under the exact key
    company_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
    ,
    grade
    , or
    json
    instead of defaulting to
    text
  • use the simplest format that captures the business value; do not pack Extruct explanation or source metadata into
    json
    unless the user explicitly wants those fields as table data
  • derive downstream classifications with
    llm
    after researching the source fact once
  • 将多任务提示词拆分为单独的列
  • 使用
    select
    multiselect
    numeric
    money
    date
    grade
    json
    类型,而非默认的
    text
    类型
  • 使用能捕获业务价值的最简单格式;除非用户明确要求,否则不要将Extruct的解释或源元数据打包到
    json
    列中
  • 在研究源事实一次后,使用
    llm
    生成下游分类

Retry Behavior

重试行为

  • if the CLI returns
    429
    , treat it as billing or quota rejection, not a tight-loop retry signal
  • if the CLI returns a
    5xx
    , wait 5-10 seconds and retry once
  • 如果CLI返回
    429
    ,视为计费或配额限制,而非需要立即重试的信号
  • 如果CLI返回
    5xx
    错误,等待5-10秒后重试一次

Global Flags

全局标志

  • --pretty
    for human-readable JSON
  • --timeout <seconds>
    to override request timeout
  • --base-url <url>
    to override the API base 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
  • --pretty
    :生成人类可读的JSON格式
  • --timeout <seconds>
    :覆盖请求超时时间
  • --base-url <url>
    :覆盖API基础URL
  • 这些标志可以放在资源之前、资源之后或最终操作之后;例如:
    <extruct_api_cli> tables list --limit 20 --pretty

References

参考文档

  • references/column-guide.md
    : column design rules plus a comprehensive library of good column configs
  • references/finding-companies.md
    : choose and operate semantic search, lookalike, and Deep Search
  • references/researching-companies.md
    : build or extend company research tables safely
  • references/finding-people-at-companies.md
    : branch from company tables into people workflows
  • references/researching-people.md
    : enrich standalone or generated people tables
  • 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