Want a guided walkthrough? Schedule a 15-min call.

Company Research with Reports

Reports allow you to research specific data points about any company using AI agents. Each report focuses on a single company, with each column representing a specific piece of information you want to find.

Understanding Reports

A report consists of:

  1. Company Inputs - Basic company identifiers (name, website)
  2. Data Points - What you want to know about the company (agent columns)
  3. Results - The researched information with sources

Creating Your First Report

Let’s create a simple report to get a company description:

curl -X POST "https://api.extruct.ai/v1/reports" \
  -H "accept: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "column_configs": [
    {
      "kind": "agent",
      "name": "Company Description",
      "key": "description",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Research the company {company_name} ({company_website}) and provide a short description.",
        "output_format": "text"
      }
    }
  ],
  "inputs": {
    "company_name": "Extruct",
    "company_website": "https://extruct.ai"
  }
}'

The response will include the report ID and initial status:

{
  "id": "report_id",
  "status": "created",
  "column_configs": [
    {
      "kind": "agent",
      "name": "Company Description",
      "key": "description",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Research the company {company_name} ({company_website}) and provide a short description.",
        "output_format": "text"
      }
    },
    {
      "kind": "input",
      "name": "Company Name",
      "key": "company_name"
    },
    {
      "kind": "input",
      "name": "Company Website",
      "key": "company_website"
    }
  ],
  "inputs": {
    "company_name": "Extruct",
    "company_website": "https://extruct.ai"
  }
}

Output Formats

Reports support three main output formats:

1. Text Output

Best for descriptive information:

{
  "kind": "agent",
  "key": "company_description",
  "name": "Company Description",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Provide a brief overview of {company_name}.",
    "output_format": "text"
  }
}

2. Number Output

Perfect for metrics and financial data:

{
  "kind": "agent",
  "key": "employee_count",
  "name": "Number of Employees",
  "value": {
    "agent_type": "research_pro",
    "prompt": "How many employees does {company_name} have? Return just the number.",
    "output_format": "number"
  }
}

3. URL Output

For finding specific links:

{
  "kind": "agent",
  "key": "twitter_url",
  "name": "Twitter Profile",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the official Twitter profile URL for {company_name}.",
    "output_format": "url"
  }
}

4. Simple JSON Output

For structured data with multiple fields:

{
  "kind": "agent",
  "key": "social_media",
  "name": "Social Media Profiles",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find the social media profiles for {company_name}.",
    "output_format": "json",
    "output_schema": {
      "type": "object",
      "properties": {
        "twitter": { "type": "string" },
        "linkedin": { "type": "string" },
        "facebook": { "type": "string" }
      }
    }
  }
}

Common Research Tasks

Company Overview

{
  "column_configs": [
    {
      "kind": "agent",
      "key": "description",
      "name": "Description",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Provide a brief description of {company_name}.",
        "output_format": "text"
      }
    },
    {
      "kind": "agent",
      "key": "founded_year",
      "name": "Founded Year",
      "value": {
        "agent_type": "research_pro",
        "prompt": "In what year was {company_name} founded? Return just the number.",
        "output_format": "number"
      }
    },
    {
      "kind": "agent",
      "key": "linkedin",
      "name": "LinkedIn URL",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Find the LinkedIn company page URL for {company_name}.",
        "output_format": "url"
      }
    }
  ],
  "inputs": {
    "company_name": "Stripe",
    "company_website": "https://stripe.com"
  }
}

Leadership Research

{
  "column_configs": [
    {
      "kind": "agent",
      "key": "ceo",
      "name": "CEO Name",
      "value": {
        "agent_type": "research_pro",
        "prompt": "Who is the current CEO of {company_name}?",
        "output_format": "text"
      }
    },
    {
      "kind": "agent",
      "key": "leadership",
      "name": "Leadership Team",
      "value": {
        "agent_type": "research_pro",
        "prompt": "List the key members of {company_name}'s leadership team with their titles.",
        "output_format": "json",
        "output_schema": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "title": { "type": "string" }
            }
          }
        }
      }
    }
  ],
  "inputs": {
    "company_name": "Stripe",
    "company_website": "https://stripe.com"
  }
}

Best Practices

  1. Clear Prompts

    • Ask for specific information
    • Specify the format you want (e.g., “Return just the number”)
    • Include website in prompt for better accuracy: {company_name} ({company_website})
  2. Choose the Right Output Format

    • Use text for descriptions and complex answers
    • Use number for metrics and counts
    • Use url for web links
    • Use json for simple structured data
  3. Keep JSON Schemas Simple

    • Stick to basic types (string, number)
    • Use arrays of objects for lists
    • Avoid deeply nested structures

Monitoring Progress

Track your report’s progress:

  1. Create the report:
curl -X POST "https://api.extruct.ai/v1/reports" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d @report.json
  1. Check status and get results:
curl -X GET "https://api.extruct.ai/v1/reports/{report_id}" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

The completed report will include results with answers and sources:

{
  "id": "report_id",
  "status": "done",
  "created_at": "2025-03-17T21:05:01.469817",
  "updated_at": "2025-03-17T21:05:21.588184",
  "column_configs": [...],
  "inputs": {
    "company_name": "Extruct",
    "company_website": "https://extruct.ai"
  },
  "results": {
    "description": {
      "answer": "Extruct AI is an advanced platform that utilizes artificial intelligence to enhance business research. It assists users in discovering new companies, enriching existing data, and monitoring market changes in real-time.",
      "sources": [
        "https://extruct.ai"
      ]
    }
  }
}

Next Steps

  • Try creating a report with different data points
  • Experiment with different output formats
  • Check out the API Reference for more details