Schema
The normalized schema structure for all signals in the Autobound Signal Database.
Every signal in the Autobound Signal Database follows a normalized schema. This structure applies across all 25+ signal categories (SEC filings, news, hiring data, social media, and more), enabling consistent parsing and entity matching.
Quick Navigation
- Match signals to your contact/company database → Resolution (join on
domain,linkedin_url)- Download data from GCS → Delivery (timestamped folders, JSONL/Parquet)
- Browse all signal types → Signal Catalog
Base Schema
All signals share this structure:
{
"signal_id": "7dfdb4b4-c0b4-4620-aca6-e7263123028e",
"batch_id": "2025-11-14-09-30-00",
"signal_type": "job-change",
"signal_subtype": "jobChange",
"detected_at": "2025-11-14T00:00:00Z",
"association": "contact",
"contact": { // use email or LinkedIn url to match. Only shown for contact signals.
"first_name": "Lashawna",
"last_name": "Bean",
"full_name": "Lashawna Bean",
"email": "[email protected]",
"job_title": "Director Of People & Public Affairs",
"linkedin_url": "linkedin.com/sales/lead/ACwAADZ7M_sBEDzrcTd4B_GjoLjkkyFKRXfdK7w",
"city": "Blue Bell",
"state": "PA",
"country": "US"
},
"company": { // use domain or LinkedIn url to match. Shown for both contact & company signals.
"name": "Harlem Stage",
"domain": "harlemstage.org",
"linkedin_url": "linkedin.com/company/harlem-stage",
"industries": ["Performing Arts"],
"employee_count_low": 11,
"employee_count_high": 50,
"description": "Harlem Stage ignites the artistic freedom of performing artists..."
},
"data": { // this is the signal-specific data. Different schema for each signal type.
"summary": "Joined Harlem Stage as Director of People & Public Affairs 2 months ago.",
"job_change_occurred": true,
"promotion_occurred": false,
"months_since_job_change": 2
}
}Note: The
associationfield indicates whether this is a"contact"or"company"level signal. For company-level signals, thecontactfield will be null or omitted.
Two Types of Signals
| Type | Match By | Examples |
|---|---|---|
| Company signals | company.domain or company.linkedin_url | 10-K, Reddit, News, Hiring Velocity |
| Contact signals | contact.email or contact.linkedin_url | LinkedIn Posts, Job Change, Work Milestone |
The association field tells you which type: "company" or "contact".
→ Full matching guide with SQL examples: Resolution
Field Definitions
Core Signal Fields
| Field | Type | Required | Description |
|---|---|---|---|
signal_id | string (UUID) | ✓ | Globally unique identifier for this signal instance. Use this as your primary key and for deduplication - no two signals will ever share the same signal_id. |
batch_id | string | Processing batch identifier (e.g., 2025-11-14-09-30-00). Signals in the same batch were processed together. Useful for tracking data lineage. Only exists for some signal types where multiple signals are extracted from the same document, like 10k. | |
signal_type | string | ✓ | The broad category of signal (e.g., 10k, contact-linkedin-post, hiring-velocity, job-change). Each signal_type is delivered to it's own bucket for most customers. |
signal_subtype | string | ✓ | The most important field for filtering. Specifies exactly what was detected (e.g., ceoChange, acquisitionAnnounced, aiInvestment). A single signal_type can have dozens of subtypes - this is how you target specific business events. |
association | string | ✓ | Whether this signal is about a "contact" (person) or "company". Determines which entity object contains the primary data. |
detected_at | string (ISO 8601) | ✓ | When Autobound detected this signal. For event-based signals (news, SEC filings), the actual event may have occurred earlier - check signal-specific date fields in the data object. |
Why signal_subtype Matters
signal_subtype MattersThe signal_subtype field is how you filter for actionable intelligence. For example:
| signal_type | signal_subtype | What it means |
|---|---|---|
10k | ceoChange | CEO transition disclosed in annual filing |
10k | aiInvestment | AI/ML investment mentioned in annual filing |
10k | acquisitionAnnounced | M&A activity disclosed |
news | funding | Company raised funding |
news | hires | Executive hire announced |
hiring-velocity | hiringVelocity | Overall hiring pace snapshot |
hiring-trends | hiringEngineeringRoles | Engineering department hiring activity |
Each signal category has its own set of subtypes. See the Signal Catalog for the complete list.
Contact Object
Contact information for the person associated with this signal. Present for contact-level signals (association: "contact"), null or omitted for company-level signals.
| Field | Type | Suggested Matching Key | Description |
|---|---|---|---|
first_name | string | First name | |
last_name | string | Last name | |
full_name | string | Full display name | |
email | string | Yes ✅ | Professional email address. Primary matching key - use this to join contact signals to your CRM or database. |
job_title | string | Current job title at time of signal detection | |
linkedin_url | string | Yes ✅ | LinkedIn profile URL. Secondary matching key - use when email is unavailable or for additional validation. Format varies (may include /in/, /sales/lead/, etc.) |
city | string | City | |
state | string | State or region | |
country | string | Country code (e.g., US, GB, CA) |
Company Object
Firmographic data for the company associated with this signal. Present on all signals (both contact and company level).
| Field | Type | Suggested Matching Key | Description |
|---|---|---|---|
name | string | Company display name | |
domain | string | Yes ✅ | Primary website domain (e.g., harlemstage.org). Primary matching key - use this to join company signals to your database. Normalized without www. prefix. |
ticker | string | Stock ticker symbol (e.g., AAPL, MSFT). Present for public companies. | |
linkedin_url | string | Yes ✅ | LinkedIn company page URL. Secondary matching key - use when domain matching fails or for additional validation. Format: linkedin.com/company/{slug} |
industries | array[string] or string | Industry classification(s). May be a single string or array depending on signal source. | |
employee_count_low | integer | Lower bound of employee count range | |
employee_count_high | integer | Upper bound of employee count range. When low equals high, this is an exact count. | |
description | string | Company description |
→ SQL examples and join logic: Resolution
The data Object: What Makes Each Signal Unique
data Object: What Makes Each Signal UniqueThe fields above (signal_id, company, contact) are consistent across all signals. The data object is where each signal type has its unique payload - the actual intelligence detected.
Fields vary by signal_type, but these common fields appear across most signals:
| Field | Type | Required | Description |
|---|---|---|---|
summary | string | ✓ | One-line summary of what was detected. Human-readable, suitable for display in UIs or email subject lines. |
detail | string | Longer explanation of why this signal matters and what action it suggests. 2-3 sentences typically. | |
relevance | float | Business relevance score from 0.0 to 1.0. Higher = more likely to indicate buying intent or sales opportunity. | |
confidence | string | How confident we are in the signal accuracy: high, medium, or low. Filter to high for automated workflows. | |
sentiment | string | Overall sentiment: positive, neutral, or negative. Useful for prioritizing outreach tone. | |
source_url | string | Link to the original source (SEC filing, news article, etc.). Use for verification or to include in outreach. | |
competitors_mentioned | array[string] | Competitor companies mentioned in the source. Useful for competitive displacement plays. | |
technologies_mentioned | array[string] | Technologies, products, or platforms mentioned. Useful for tech stack targeting. |
Signal-specific fields vary by type:
→ All signal schemas: Signal Catalog
Sample Files
Download example signals to explore the schema:
Note: Production data is delivered via GCS in timestamped folders. Each folder contains new signals since the last batch - not a full refresh. See Delivery for bucket access and refresh schedules.
Need custom samples or have questions? Contact [email protected].
Updated 2 days ago
