B2B Intelligence

Company Profile

/extract/json

Schema for B2B company profile data including firmographics, funding, and contact info.

Download the schemab2b-intel/company-profile.json

company-profile.schema

// names marked ? are optional

name:string// Legal or commonly-used company name. Commonly found in: company profile header, about page, og:site_name meta tag.
domain:string// Primary website domain of the company. Commonly found in: website URL, company profile link, contact page.
description?:string// Short description or tagline of the company. Commonly found in: company about section, meta description tag, LinkedIn summary.
founded_year?:number// Year the company was founded. Commonly found in: company profile details, about page, LinkedIn company info.
headquarters_city?:string// City of the company's headquarters. Commonly found in: contact page, company profile, LinkedIn location field.
headquarters_country?:string// Country of the company's headquarters. Commonly found in: contact page, company profile, LinkedIn location field.
employee_count?:number// Approximate number of employees. Commonly found in: LinkedIn company stats, company profile details, about page.
employee_range?:string// Employee count range band. Commonly found in: LinkedIn company size field, company profile size indicator, data provider. One of: 1-10, 11-50, 51-200, 201-500, 501-1000, 1000+, other.
industry?:string// Primary industry of the company. Commonly found in: LinkedIn industry field, company profile, data provider category.
categories?:string[]// List of category or vertical tags for the company. Commonly found in: Crunchbase tags, company profile categories, data provider labels.
funding_stage?:string// Latest funding stage of the company. Commonly found in: Crunchbase funding section, company profile funding info, press release. One of: pre_seed, seed, series_a, series_b, series_c, series_d, series_e, series_f, public, acquired, bootstrapped, other.
total_funding_usd?:number// Total funding raised in USD. Commonly found in: Crunchbase total funding, company profile funding section, press release.
last_funding_date?:string// Date of the most recent funding round. Commonly found in: Crunchbase funding history, latest funding date field, press release date.
investors?:string[]// List of known investors. Commonly found in: Crunchbase investor list, company profile investors section, press release.
revenue_range?:string// Estimated annual revenue range. Commonly found in: data provider revenue estimate, company profile revenue field, market research. One of: <1M, 1-10M, 10-50M, 50-100M, 100M+, other.
is_public?:boolean// Whether the company is publicly traded. Commonly found in: stock ticker presence, SEC filing link, company profile status.
stock_ticker?:string// Stock ticker symbol if publicly traded. Commonly found in: company header ticker display, investor relations page, financial data widget.
stock_exchange?:string// Stock exchange where the company is listed. Commonly found in: company profile, investor relations page, financial data widget.
linkedin_url?:string// LinkedIn company page URL. Commonly found in: company social links, contact page, footer social icons.
twitter_handle?:string// Twitter/X handle of the company. Commonly found in: company social links, contact page, footer social icons.
github_org?:string// GitHub organization name. Commonly found in: company social links, developer page, open source section.
phone?:string// Company main phone number. Commonly found in: contact page, footer, about page.
email?:string// Company main contact email. Commonly found in: contact page, footer, about page.
technologies?:string[]// Technologies detected in use by the company. Commonly found in: BuiltWith data, tech stack detection, job postings.
products?:string[]// Names of products or services offered. Commonly found in: products page, navigation menu, company overview.
competitors?:string[]// List of known or identified competitors. Commonly found in: G2 competitors section, Crunchbase similar companies, analyst reports.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Company Profile document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Company Profile

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
company-profile.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/b2b-intel/company-profile.json
import Tabstack from '@tabstack/sdk'
import schema from './company-profile.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/pricing',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.