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 databaseResolution (join on domain, email, or linkedin_url)
  • Download data from GCSDelivery (timestamped folders, JSONL/Parquet)
  • Browse all signal typesSignal 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 association field indicates whether this is a "contact" or "company" level signal. For company-level signals, the contact field will be null or omitted.


Two Types of Signals

TypeMatch ByExamples
Company signalscompany.domain or company.linkedin_url10-K, Reddit, News, Hiring Velocity
Contact signalscontact.email or contact.linkedin_urlLinkedIn 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

FieldTypeRequiredDescription
signal_idstring (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_idstringProcessing 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_typestringThe 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_subtypestringThe 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.
associationstringWhether this signal is about a "contact" (person) or "company". Determines which entity object contains the primary data.
detected_atstring (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

The signal_subtype field is how you filter for actionable intelligence. For example:

signal_typesignal_subtypeWhat it means
10kceoChangeCEO transition disclosed in annual filing
10kaiInvestmentAI/ML investment mentioned in annual filing
10kacquisitionAnnouncedM&A activity disclosed
newsfundingCompany raised funding
newshiresExecutive hire announced
hiring-velocityhiringVelocityOverall hiring pace snapshot
hiring-trendshiringEngineeringRolesEngineering 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.

FieldTypeSuggested Matching KeyDescription
first_namestringFirst name
last_namestringLast name
full_namestringFull display name
emailstringYes ✅Professional email address. Primary matching key - use this to join contact signals to your CRM or database.
job_titlestringCurrent job title at time of signal detection
linkedin_urlstringYes ✅LinkedIn profile URL. Secondary matching key - use when email is unavailable or for additional validation. Format varies (may include /in/, /sales/lead/, etc.)
citystringCity
statestringState or region
countrystringCountry 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).

FieldTypeSuggested Matching KeyDescription
namestringCompany display name
domainstringYes ✅Primary website domain (e.g., harlemstage.org). Primary matching key - use this to join company signals to your database. Normalized without www. prefix.
tickerstringStock ticker symbol (e.g., AAPL, MSFT). Present for public companies.
linkedin_urlstringYes ✅LinkedIn company page URL. Secondary matching key - use when domain matching fails or for additional validation. Format: linkedin.com/company/{slug}
industriesarray[string] or stringIndustry classification(s). May be a single string or array depending on signal source.
employee_count_lowintegerLower bound of employee count range
employee_count_highintegerUpper bound of employee count range. When low equals high, this is an exact count.
descriptionstringCompany description

SQL examples and join logic: Resolution


The data Object: What Makes Each Signal Unique

The 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:

FieldTypeRequiredDescription
summarystringOne-line summary of what was detected. Human-readable, suitable for display in UIs or email subject lines.
detailstringLonger explanation of why this signal matters and what action it suggests. 2-3 sentences typically.
relevancefloatBusiness relevance score from 0.0 to 1.0. Higher = more likely to indicate buying intent or sales opportunity.
confidencestringHow confident we are in the signal accuracy: high, medium, or low. Filter to high for automated workflows.
sentimentstringOverall sentiment: positive, neutral, or negative. Useful for prioritizing outreach tone.
source_urlstringLink to the original source (SEC filing, news article, etc.). Use for verification or to include in outreach.
competitors_mentionedarray[string]Competitor companies mentioned in the source. Useful for competitive displacement plays.
technologies_mentionedarray[string]Technologies, products, or platforms mentioned. Useful for tech stack targeting.

Signal-specific fields vary by type:

SignalUnique Fields in dataFull Schema
10-K Filingsfiling_year, fiscal_period, excerptsView →
Newspublished_at, article_sentence, location_dataView →
Job Changemonths_since_job_change, promotion_occurredView →
Hiring VelocitynumberOfOpenRoles, historicalComparisonView →

All signal schemas: Signal Catalog


Sample Files

Download example signals to explore the schema:

Browse Sample Files →

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].