Skip to main content

Overview

This page collects fuller reusable column templates for AI Tables. Column Guide covers how to choose and configure columns, including minimum working shapes. This page is the cookbook: copy a pattern, then adapt name, key, prompts, labels, and schemas to your workflow.

Prerequisites

export EXTRUCT_API_TOKEN="YOUR_API_TOKEN"
Generate tokens in Dashboard API Tokens. For full setup, see Authentication.

Endpoints used

How to use these templates

Wrap one or more template objects in column_configs, then send them to Create columns. Wrapper example:
{
  "column_configs": [
    {
      "kind": "agent",
      "name": "Description",
      "key": "company_description",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Describe what the company does in under 25 words.",
        "output_format": "text"
      }
    }
  ]
}
Before you copy:
  • on company tables, built-in company fields are created automatically
  • on company and people tables, custom agent columns get baseline row context automatically
  • most prompts on company and people tables should not mention company_name, company_website, full_name, profile_url, or role explicitly
  • if a template references another column, that dependency is intentional
When you add new columns to an existing table, usually run only the new work with mode: "new" afterward.

Company research templates

Description

{
  "kind": "agent",
  "name": "Description",
  "key": "company_description",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Describe what the company does in under 25 words.",
    "output_format": "text"
  }
}

ICP Summary

{
  "kind": "agent",
  "name": "ICP Summary",
  "key": "icp_summary",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Identify the company's ideal customer profile. Summarize the primary buyer, company type, and likely use case in 2-3 short bullet points.",
    "output_format": "text"
  }
}

Employee Count

{
  "kind": "agent",
  "name": "Employee Count",
  "key": "employee_count",
  "value": {
    "agent_type": "research_pro",
    "prompt": "How many employees does the company currently have?",
    "output_format": "numeric"
  }
}

Annual Revenue

{
  "kind": "agent",
  "name": "Annual Revenue",
  "key": "annual_revenue",
  "value": {
    "agent_type": "research_pro",
    "prompt": "What is the company's latest annual revenue or ARR? Prefer the most recent reliable figure and use revenue, not total funding.",
    "output_format": "money"
  }
}

Founded Date

{
  "kind": "agent",
  "name": "Founded Date",
  "key": "founded_date",
  "value": {
    "agent_type": "research_pro",
    "prompt": "When was the company founded?",
    "output_format": "date"
  }
}

Pricing Notes

{
  "kind": "agent",
  "name": "Pricing Notes",
  "key": "pricing_notes",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Summarize the company's pricing model and publicly visible price points as a short bulleted list. Include plan names and prices when available.",
    "output_format": "text"
  }
}

Recent News

{
  "kind": "agent",
  "name": "Recent News",
  "key": "recent_news",
  "value": {
    "agent_type": "research_pro",
    "prompt": "List the company's most important news from the last 12 months, newest first. Include date, headline, and URL.",
    "output_format": "json",
    "output_schema": {
      "type": "object",
      "properties": {
        "articles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "date": { "type": "string" },
              "headline": { "type": "string" },
              "url": { "type": "string" }
            }
          }
        }
      }
    }
  }
}

Competitors

{
  "kind": "agent",
  "name": "Competitors",
  "key": "competitors",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the company's closest competitors and alternatives. Prefer companies that solve the same core problem for a similar buyer. Return one object with a competitors array. Each competitor should include name, domain, and short_reason. If you are not confident a company is a real competitor, leave it out.",
    "output_format": "json",
    "output_schema": {
      "type": "object",
      "properties": {
        "competitors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "domain": { "type": "string" },
              "short_reason": { "type": "string" }
            }
          }
        }
      }
    }
  }
}

Expansion Signals

{
  "kind": "agent",
  "name": "Expansion Signals",
  "key": "expansion_signals",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Identify and summarize the company's expansion signals using job postings, press releases, new office mentions, executive hires, and product launches. Focus on geographic, product, or market expansion. Return a short evidence-dense summary with dates when available.",
    "output_format": "text"
  }
}

URLs and LinkedIn templates

LinkedIn Company URL

{
  "kind": "agent",
  "name": "LinkedIn URL",
  "key": "linkedin_company_url",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the company's official LinkedIn company page URL.",
    "output_format": "url"
  }
}

LinkedIn Company Data

Requires:
  • linkedin_company_url
{
  "kind": "agent",
  "name": "LinkedIn Data",
  "key": "linkedin_company_data",
  "value": {
    "agent_type": "linkedin",
    "prompt": "{linkedin_company_url}",
    "output_format": "text"
  }
}

LinkedIn Activity Summary

Requires:
  • linkedin_company_data
{
  "kind": "agent",
  "name": "LinkedIn Activity",
  "key": "linkedin_activity_summary",
  "value": {
    "agent_type": "llm",
    "prompt": "Summarize the recent LinkedIn activity as a bulleted list with names, dates, and links.\n\nLinkedIn Company Data\n---\n{linkedin_company_data}\n---",
    "output_format": "text"
  }
}

Careers Page URL

{
  "kind": "agent",
  "name": "Careers URL",
  "key": "careers_page_url",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the company's official careers or jobs page URL.",
    "output_format": "url"
  }
}

Crunchbase URL

{
  "kind": "agent",
  "name": "Crunchbase URL",
  "key": "crunchbase_url",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the company's Crunchbase profile URL.",
    "output_format": "url"
  }
}

Derived llm templates

Pricing Model

Requires:
  • pricing_notes
{
  "kind": "agent",
  "name": "Pricing Model",
  "key": "pricing_model",
  "value": {
    "agent_type": "llm",
    "prompt": "Select the company's primary pricing model.\n\nPricing Notes\n---\n{pricing_notes}\n---",
    "output_format": "select",
    "labels": [
      "Free",
      "Freemium",
      "Subscription",
      "Usage-Based",
      "Custom Quote",
      "One-Time Purchase",
      "Marketplace Take Rate"
    ]
  }
}

HQ Country From Company Profile

Requires:
  • company_profile
{
  "kind": "agent",
  "name": "HQ Country",
  "key": "hq_country",
  "value": {
    "agent_type": "llm",
    "prompt": "Extract the company's headquarters country from this company profile.\n\nCompany Profile\n---\n{company_profile}\n---",
    "output_format": "text"
  }
}

Revenue Band

Requires:
  • annual_revenue
{
  "kind": "agent",
  "name": "Revenue Band",
  "key": "revenue_band",
  "value": {
    "agent_type": "llm",
    "prompt": "Classify the company's revenue into exactly one band based on this structured revenue data.\n\nAnnual Revenue\n---\n{annual_revenue}\n---",
    "output_format": "select",
    "labels": [
      "<$1M",
      "$1M-$10M",
      "$10M-$50M",
      "$50M-$100M",
      "$100M-$500M",
      "$500M+"
    ]
  }
}

Buyer Type

Requires:
  • company_description
{
  "kind": "agent",
  "name": "Buyer Type",
  "key": "buyer_type",
  "value": {
    "agent_type": "llm",
    "prompt": "Select the company's primary buyer type.\n\nDescription\n---\n{company_description}\n---",
    "output_format": "select",
    "labels": [
      "SMB",
      "Mid-Market",
      "Enterprise",
      "Consumer",
      "Developer",
      "Public Sector",
      "Healthcare Providers",
      "Financial Institutions"
    ]
  }
}

Prioritization JSON

Requires:
  • company_profile
  • expansion_signals
  • annual_revenue
  • recent_news
{
  "kind": "agent",
  "name": "Prioritization",
  "key": "prioritization",
  "value": {
    "agent_type": "llm",
    "prompt": "You are a go-to-market analyst. Score ICP fit and buying intent. Return ONLY valid JSON with: icp_fit_score, icp_fit_reasoning, buying_intent_score, buying_intent_reasoning, positive_signals, negative_signals, recommended_action, recommended_action_reasoning, outreach_hook.\n\nCompany Profile\n---\n{company_profile}\n---\n\nExpansion Signals\n---\n{expansion_signals}\n---\n\nAnnual Revenue\n---\n{annual_revenue}\n---\n\nRecent News\n---\n{recent_news}\n---",
    "output_format": "json",
    "output_schema": {
      "type": "object",
      "properties": {
        "icp_fit_score": { "type": "number" },
        "icp_fit_reasoning": { "type": "string" },
        "buying_intent_score": { "type": "number" },
        "buying_intent_reasoning": { "type": "string" },
        "positive_signals": {
          "type": "array",
          "items": { "type": "string" }
        },
        "negative_signals": {
          "type": "array",
          "items": { "type": "string" }
        },
        "recommended_action": { "type": "string" },
        "recommended_action_reasoning": { "type": "string" },
        "outreach_hook": { "type": "string" }
      }
    }
  }
}
If you want people-finder evidence in downstream scoring, first create a separate llm summary column from the people output, then reference that summary instead of the raw company_people_finder result.

People and contact templates

Leadership Finder

{
  "kind": "company_people_finder",
  "name": "Leadership",
  "key": "leadership",
  "value": {
    "roles": [
      "CEO",
      "Founder",
      "operations leadership",
      "revenue leadership"
    ]
  }
}

Engineering Leadership Finder

{
  "kind": "company_people_finder",
  "name": "Engineering Leaders",
  "key": "engineering_leaders",
  "value": {
    "roles": [
      "Head of Engineering",
      "VP Engineering",
      "platform leadership",
      "security leadership"
    ]
  }
}

Decision Makers

{
  "kind": "company_people_finder",
  "name": "Decision Makers",
  "key": "decision_makers",
  "value": {
    "roles": [
      "VP Sales",
      "sales leadership",
      "revenue operations",
      "business development leadership"
    ]
  }
}

Work Email

Requires:
  • full_name
  • profile_url
  • company_website
Configured with kind, name, and key only. No value field is required.
{
  "kind": "email_finder",
  "name": "Work Email",
  "key": "work_email"
}

Direct Phone

Requires:
  • full_name
  • profile_url
  • company_website
Configured with kind, name, and key only. No value field is required.
{
  "kind": "phone_finder",
  "name": "Direct Phone",
  "key": "direct_phone"
}

Department

{
  "kind": "agent",
  "name": "Department",
  "key": "department",
  "value": {
    "agent_type": "llm",
    "prompt": "Classify this person into the most likely department based on their current role.",
    "output_format": "select",
    "labels": [
      "Executive",
      "Engineering",
      "Product",
      "Design",
      "Sales",
      "Marketing",
      "Operations",
      "Finance",
      "HR",
      "Legal",
      "Customer Success",
      "Other"
    ]
  }
}

Seniority

{
  "kind": "agent",
  "name": "Seniority",
  "key": "seniority",
  "value": {
    "agent_type": "llm",
    "prompt": "Classify this person's seniority level based on their current role.",
    "output_format": "select",
    "labels": [
      "C-Level",
      "VP",
      "Head",
      "Director",
      "Manager",
      "Individual Contributor",
      "Founder"
    ]
  }
}

Reverse Email Lookup

{
  "kind": "reverse_email_lookup",
  "name": "Profile from Email",
  "key": "profile_from_email",
  "email_column_key": "work_email"
}

Scoring templates

All scoring examples below use the recommended pattern: agent + output_format: "grade".

Market Fit Score

{
  "kind": "agent",
  "name": "Market Fit",
  "key": "market_fit",
  "value": {
    "agent_type": "research_reasoning",
    "prompt": "Assess this statement about the company: The company fits a B2B fintech ICP. Use the default 1-5 grade scale. If there is not enough evidence to score confidently, return Not found.",
    "output_format": "grade"
  }
}

Execution Readiness Score

{
  "kind": "agent",
  "name": "Execution Readiness",
  "key": "execution_readiness",
  "value": {
    "agent_type": "research_reasoning",
    "prompt": "Assess this statement about the company: The company looks ready for near-term partnership or outreach. Use the default 1-5 grade scale. If there is not enough evidence to score confidently, return Not found.",
    "output_format": "grade"
  }
}

AI-Native Score

{
  "kind": "agent",
  "name": "AI Native",
  "key": "is_ai_native",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Assess this statement about the company: The company is fundamentally AI-native rather than merely adding lightweight AI features. Use the default 1-5 grade scale. If there is not enough evidence to score confidently, return Not found.",
    "output_format": "grade"
  }
}

Enterprise Fit Score

{
  "kind": "agent",
  "name": "Enterprise Fit",
  "key": "enterprise_fit",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Assess this statement about the company: The company clearly sells to enterprise customers. Use the default 1-5 grade scale. If there is not enough evidence to score confidently, return Not found.",
    "output_format": "grade"
  }
}

Competitive Axis Score

{
  "kind": "agent",
  "name": "SMB vs Enterprise",
  "key": "axis_smb_enterprise",
  "value": {
    "agent_type": "research_reasoning",
    "prompt": "Evaluate where this company sits on the spectrum from SMB to Enterprise. Consider pricing, sales model, product complexity, and customer size. Use this scale: 1 = pure SMB, 3 = mid-market, 5 = pure enterprise. If there is not enough evidence to score confidently, return Not found.",
    "output_format": "grade"
  }
}

Common chains

URL -> LinkedIn fetch -> summary

  1. linkedin_company_url
  2. linkedin_company_data
  3. linkedin_activity_summary

Research -> classification

  1. pricing_notes
  2. pricing_model

Company -> people -> contact enrichment

  1. company_people_finder
  2. email_finder
  3. phone_finder
For design guidance before copying templates, go back to Column Guide.