Create an Extruct company table from user-provided data, upload rows, and optionally add enrichment columns. Handles the full flow: parse input (CSV, pasted list, or structured data), create or reuse a table, upload domains in batches, add agent columns, and trigger enrichment. Triggers on: "create table", "upload companies", "add to extruct", "new extruct table", "import companies", "upload list to extruct".
End-to-end workflow: parse company data → create/reuse Extruct table → upload rows → add columns → run enrichment.
This skill delegates all Extruct API calls to the extruct-api skill.
For all Extruct API operations, read and follow the instructions in skills/extruct-api/SKILL.md.
All table creation, row uploads, column creation, and enrichment runs are handled by the extruct-api skill. This skill focuses on parsing input data and orchestrating the flow — the extruct-api skill handles the API execution.
Accept data in any of these formats:
Pasted list (most common): User pastes company names, URLs, and metadata as freeform text. Parse into structured records. Extract domains by stripping protocol, www., and trailing slashes.
CSV file: Read CSV, map columns to find the URL/domain column.
Extruct table URL: Use the extruct-api skill to fetch data from existing table.
Key rules:
Ask the user:
https://app.extruct.ai/tables/{id})Delegate row upload to the extruct-api skill with the parsed domains.
Report progress to the user.
If the user wants enrichment columns (industry, funding, etc.), delegate column creation to the extruct-api skill.
Column types by use case:
| User says | Agent type | Output format | Notes |
|---|---|---|---|
| "add industry" | llm | select with labels | Classification from profile, no web research needed |
| "add funding" | research_pro | text | Needs web research |
| "classify by vertical" | llm | select with labels | Classification |
| "find their tech stack" | research_pro | text | Needs web research |
| "score fit 1-5" | llm or research_reasoning | grade | Assessment |
| "tag multiple categories" | llm | multiselect with labels | Multiple tags |
See the list-enrichment skill for full column types and output formats.
Delegate the enrichment run to the extruct-api skill, scoped to only the newly added agent columns.
If no agent columns were added, skip this step.
Provide:
https://app.extruct.ai/tables/{table_id}Company Name
URL (or "Stealth")
Country
Industry
Funding Stage
Parse by splitting into 5-line chunks. Filter where URL == "Stealth".
Map columns: look for "website", "url", "domain", "Company Website". Extract domain from whichever column contains URLs.
example.com
startup.io
company.ai
Direct upload — each line is a domain.
https://www.example.com/ → example.comselect/multiselect, collect unique values from user data to build the label list