Skip to content
Fiber AI Help Center
Fiber AI Help Center

Tracker

The Tracker feature lets you monitor companies and people on LinkedIn for specific changes. When a tracked entity matches one of your rules, Fiber delivers a signal via webhook so you can act on it immediately.

This is also known as the "signals," "subscriptions," or "watchers" product. Note that saved searches are distinct from this.

How It Works

  1. Create a tracker list — a named container that holds tracked entities and one or more rules.

  2. Add entities — add companies (by LinkedIn URL, slug, or org ID) or people (by LinkedIn URL, slug, or user ID) to your list.

  3. Define rules — each rule watches for a specific type of change (e.g., "headcount crossed 100", "person changed company").

  4. Fiber monitors automatically — at the refresh interval you set (1–30 days), Fiber checks each entity and evaluates all rules.

  5. Receive signals — when a rule fires, Fiber sends a webhook with details about what changed.

Key Concepts

Concept

Description

Tracker List

A named group of entities (companies or people) with shared tracking rules and a refresh cadence.

Tracking Rule

A condition evaluated on each refresh. Up to 10 rules per list.

Signal

A detected change that matched one of your rules. Delivered via webhook.

Refresh Interval

How often (in days) Fiber checks entities for changes. Min 1, max 30.

Lookback Period

Optional. Compare against a snapshot from N days ago instead of the most recent check. Max 90 days.

Limits

Limit

Value

Companies per list

1,000

People per list

10,000

Total tracked entities per organization

10,000

Rules per list

10

Entities per add/remove call

100

Refresh interval

1–30 days

Lookback period

1–90 days

Pricing

Each entity check costs 2 credits per refresh. For example, a list of 500 companies refreshed every 7 days costs 500 × 2 = 1,000 credits per week.

Use the Tracker Overview endpoint to get estimated daily and monthly credit burn for all your lists.


Lookback Period

By default, Fiber compares the current snapshot of an entity to the most recent previous snapshot (i.e., what changed since last check).

With the optional lookbackDays field, you can instead compare against a snapshot from approximately N days ago. This is useful for:

  • Detecting changes over a longer window regardless of check frequency

  • "Did X happen in the past 30 days?" style alerts

  • Avoiding missed signals when check cadences change

If no historical snapshot from N days ago is available (e.g., the entity was recently added), the rule falls back to comparing against the most recent previous snapshot.

{ "type": "headcount_growth_percent", "entityType": "company", "minPercentChange": 20, "direction": "grew", "lookbackDays": 30 }

Company Rules (24 types)

Headcount & Growth

headcount_crossed_threshold

Fires when a company's employee count crosses a specific number going up or down.

Field

Type

Required

Description

threshold

integer

Yes

The headcount number to watch for crossing

direction

"above" or "below"

Yes

Alert when crossing up or down

Use case: Get notified when a prospect company grows past 50 employees (likely ready for enterprise tools) or shrinks below 20 (may be downsizing).

{ "type": "headcount_crossed_threshold", "entityType": "company", "direction": "above", "threshold": 100 }

headcount_growth_percent

Fires when headcount grows or shrinks by at least a given percentage.

Field

Type

Required

Description

minPercentChange

number (1–1000)

Yes

Minimum percent change to trigger (e.g., 20 = 20%)

direction

"grew", "shrank", or "either"

Yes

Direction of change

Use case: Catch fast-growing startups (grew 30%+) or companies in trouble (shrank 20%+).

{ "type": "headcount_growth_percent", "entityType": "company", "minPercentChange": 25, "direction": "grew" }

employee_count_milestone

Fires when a company's employee count crosses a specific milestone (e.g., 100, 500, 1000).

Field

Type

Required

Description

milestone

integer

Yes

Employee count milestone to watch

direction

"above" or "below"

Yes

Alert when crossing up or down

Use case: Similar to headcount_crossed_threshold but semantically represents major milestones for segmentation.

{ "type": "employee_count_milestone", "entityType": "company", "milestone": 500, "direction": "above" }

department_size_threshold

Fires when a specific department's headcount crosses a threshold.

Field

Type

Required

Description

department

string

Yes

Department name (e.g., "Engineering", "Sales")

threshold

integer

Yes

Employee count threshold

direction

"above" or "below"

Yes

Alert when crossing up or down

Use case: Alert when a company's engineering team grows past 20 — they're likely investing in building and may need dev tools.

{ "type": "department_size_threshold", "entityType": "company", "department": "Engineering", "threshold": 20, "direction": "above" }

recently_hired_with_title

Fires when a company makes a new hire whose title matches your keywords.

Field

Type

Required

Description

titleKeywords

string[]

Yes

Title keywords to match (e.g., ["VP Sales", "Head of"])

minNewHires

integer

No

Minimum new hires to trigger. Default: 1.

Use case: Know when a target account hires a new VP of Sales (your buyer persona) or a new CTO (decision-maker for your product).

{ "type": "recently_hired_with_title", "entityType": "company", "titleKeywords": ["VP Sales", "Head of Sales", "CRO"], "minNewHires": 1 }

follower_count_growth

Fires when a company's LinkedIn follower count grows significantly.

Field

Type

Required

Description

minAbsoluteGrowth

integer

No

Minimum absolute follower increase. Omit for any increase.

minPercentGrowth

number

No

Minimum percent increase. Omit for any increase.

Use case: Identify companies gaining social traction — often a leading indicator of brand momentum or viral marketing.

{ "type": "follower_count_growth", "entityType": "company", "minAbsoluteGrowth": 1000, "minPercentGrowth": 10 }

Funding & Financials

new_funding_round

Fires when a company raises a new round of funding.

Field

Type

Required

Description

minAmountUsd

number

No

Only alert for rounds above this amount. Omit for any.

roundTypes

string[]

No

Filter by round type. Options: pre_seed, seed, angel, series_a through series_g, private_equity, debt_financing, grant, convertible_note, corporate_round, undisclosed. Omit for any.

Use case: Get notified when tracked companies raise Series B+ rounds above $10M — they now have budget to spend.

{ "type": "new_funding_round", "entityType": "company", "minAmountUsd": 10000000, "roundTypes": ["series_b", "series_c", "series_d"] }

funding_stage_changed

Fires when a company moves to a new funding stage.

Field

Type

Required

Description

toStages

string[]

No

Only alert for these target stages. Options: pre_seed, seed, series_a through series_g, private_equity, public, acquired. Omit for any.

Use case: Detect companies progressing to Series A — transitioning from founder-led to building a proper GTM team.

{ "type": "funding_stage_changed", "entityType": "company", "toStages": ["series_a", "series_b"] }

acquired_company

Fires when a company makes an acquisition.

Field

Type

Required

Description

minPriceUsd

number

No

Only alert for acquisitions above this price. Omit for any.

Use case: Acquisitions often trigger technology consolidation and vendor re-evaluation — a prime selling window.

{ "type": "acquired_company", "entityType": "company", "minPriceUsd": 5000000 }

new_investor

Fires when a new investor is added to a company's profile.

Field

Type

Required

Description

investorTypes

string[]

No

Only alert for these investor types (e.g., "venture_capital"). Omit for any.

Use case: When a strategic investor joins the cap table, it often signals a new direction or partnership opportunity.

{ "type": "new_investor", "entityType": "company" }

Hiring & Job Postings

job_posting_with_keyword

Fires when a company posts a job whose title contains your keywords.

Field

Type

Required

Description

keywords

string[]

Yes

Alert when a job title contains any of these

seniorityLevels

string[]

No

Filter by seniority level. Omit for any.

locationTypes

string[]

No

Filter by location type: "Remote", "On-site", "Hybrid". Omit for any.

Use case: A company posting for "data engineer" or "ML engineer" likely needs data infrastructure tools.

{ "type": "job_posting_with_keyword", "entityType": "company", "keywords": ["data engineer", "machine learning", "ML engineer"], "seniorityLevels": ["Senior", "Lead"] }

job_posting_in_function

Fires when a company posts a job in a specific department/function.

Field

Type

Required

Description

jobFunctions

string[]

Yes

Department or function names (e.g., "Engineering", "Sales")

Use case: A company hiring heavily in Sales means they're scaling revenue — they may need CRM, sales enablement, or marketing tools.

{ "type": "job_posting_in_function", "entityType": "company", "jobFunctions": ["Sales", "Business Development"] }

News & Content

company_news

Fires when any news article is published about the company.

Field

Type

Required

Description

minArticles

integer

No

Only alert if at least this many articles found. Omit for any.

Use case: Stay informed about companies in your pipeline — news is a natural conversation starter.

{ "type": "company_news", "entityType": "company", "minArticles": 2 }

news_with_keyword

Fires when a news article about the company matches specific keywords.

Field

Type

Required

Description

keywords

string[]

Yes

Match against article title or summary

Use case: Track when target accounts are mentioned in news related to expansion, layoffs, product launches, or specific technologies.

{ "type": "news_with_keyword", "entityType": "company", "keywords": ["expansion", "launch", "partnership", "contract"] }

company_posted

Fires when the company publishes a LinkedIn post.

Field

Type

Required

Description

minReactions

integer

No

Only alert for posts with at least this many reactions. Omit for any.

Use case: High-engagement posts from target companies can reveal priorities, wins, or challenges that make great outreach hooks.

{ "type": "company_posted", "entityType": "company", "minReactions": 50 }

company_posted_with_keyword

Fires when a company post matches specific keywords.

Field

Type

Required

Description

keywords

string[]

No

Keywords to match.

minReactions

integer

No

Minimum reactions. Omit for any.

Use case: Know when a company posts about hiring, product launches, or topics relevant to your solution.

{ "type": "company_posted_with_keyword", "entityType": "company", "keywords": ["hiring", "scaling", "AI", "automation"] }

Company Profile Changes

hq_location_changed

Fires when a company's headquarters location changes.

No additional fields — triggers on any HQ move.

Use case: Relocations often signal growth (moving to a bigger market) or downsizing. Either way, it's a trigger event for outreach.

{ "type": "hq_location_changed", "entityType": "company" }

company_status_changed

Fires when a company's operating status changes.

Field

Type

Required

Description

toStatuses

string[]

No

Target statuses: "operating", "acquired", "closed", "ipo", "subsidiary". Omit for any change.

Use case: Know when a tracked prospect gets acquired (new buyer), goes public (bigger budget), or shuts down (remove from pipeline).

{ "type": "company_status_changed", "entityType": "company", "toStatuses": ["acquired", "ipo"] }

technology_added

Fires when a company adopts new technologies in their stack.

Field

Type

Required

Description

technologies

string[]

No

Only alert for these technologies. Omit for any new tech.

Use case: If a company adds a competing technology, it's too late. If they add a complementary one, it's the perfect time to reach out.

{ "type": "technology_added", "entityType": "company", "technologies": ["Snowflake", "dbt", "Databricks"] }

company_name_changed

Fires when a company changes its name. No additional fields.

Use case: Name changes often signal rebranding, pivots, or post-acquisition integration.

{ "type": "company_name_changed", "entityType": "company" }

company_description_changed

Fires when a company changes its LinkedIn description/tagline.

Field

Type

Required

Description

keywords

string[]

No

Only alert if new description contains one of these keywords. Omit for any change.

Use case: Description changes reflect strategic pivots — a company adding "AI-powered" to their description may be a fit for your ML tools.

{ "type": "company_description_changed", "entityType": "company", "keywords": ["AI", "machine learning", "automation"] }

company_logo_changed

Fires when a company updates its logo. No additional fields.

Use case: Logo changes are often part of a broader rebrand — a company reinventing itself may be evaluating new vendors.

{ "type": "company_logo_changed", "entityType": "company" }

company_went_inactive

Fires when a company's LinkedIn page appears to have gone inactive. No additional fields.

Use case: Detect companies that may be winding down operations, allowing you to clean your pipeline or adjust outreach.

{ "type": "company_went_inactive", "entityType": "company" }

new_office_location

Fires when a company opens a new office.

Field

Type

Required

Description

countries

string[]

No

Only alert for offices in these countries. Omit for any.

cities

string[]

No

Only alert for offices in these cities. Omit for any.

Use case: A company opening an office in your city creates a local relationship opportunity.

{ "type": "new_office_location", "entityType": "company", "countries": ["US", "UK"], "cities": ["San Francisco", "New York"] }

Person Rules (19 types)

Career Changes

person_changed_company

Fires when a person moves to a different company.

Field

Type

Required

Description

toCompanies

string[]

No

Only alert if they moved TO one of these companies (domains or slugs). Omit for any.

fromCompanies

string[]

No

Only alert if they moved FROM one of these companies. Omit for any.

Use case: Your champion at a customer account just moved to a new company — follow them and sell into their new org.

{ "type": "person_changed_company", "entityType": "person" }

person_title_changed

Fires when a person changes their job title.

Field

Type

Required

Description

titleKeywords

string[]

No

Only alert if new title contains these keywords. Omit for any title change.

Use case: Detect when contacts get promoted to decision-making roles (VP, Director, C-level).

{ "type": "person_title_changed", "entityType": "person", "titleKeywords": ["VP", "Director", "Head of", "Chief"] }

person_got_promoted

Fires when a person gets promoted (stays at the same company but gets a more senior title).

Field

Type

Required

Description

seniorityKeywords

string[]

No

Only alert if new title contains these seniority keywords. Omit for any promotion.

Use case: A newly promoted VP often gets new budget authority and wants to make their mark — ideal for outreach.

{ "type": "person_got_promoted", "entityType": "person", "seniorityKeywords": ["VP", "SVP", "Director", "Chief"] }

person_started_company

Fires when a person starts their own company. No additional fields.

Use case: Track former champions or industry contacts who start companies — they'll need tools from day one.

{ "type": "person_started_company", "entityType": "person" }

person_employment_type_changed

Fires when a person's employment type changes (e.g., full-time to contract).

Field

Type

Required

Description

toTypes

string[]

No

Only alert for these types (e.g., "Contract", "Part-time"). Omit for any change.

Use case: Someone going from full-time to contract/consulting may be a sign they're available as an advisor or buyer at a new client.

{ "type": "person_employment_type_changed", "entityType": "person", "toTypes": ["Contract", "Self-employed"] }

Status Signals

person_stealth_changed

Fires when a person enters or exits stealth mode (hides their activity/profile).

Field

Type

Required

Description

direction

"entered", "exited", or "either"

Yes

Which transition to watch

Use case: Someone entering stealth may be preparing to change jobs or start a company — reach out before the news breaks.

{ "type": "person_stealth_changed", "entityType": "person", "direction": "entered" }

person_open_to_work

Fires when a person starts or stops signaling they're open to new opportunities.

Field

Type

Required

Description

direction

"started", "stopped", or "either"

Yes

Which transition to watch

Use case: A VP of Engineering who just started "Open to Work" will soon land somewhere and need to evaluate vendors — get on their radar early.

{ "type": "person_open_to_work", "entityType": "person", "direction": "started" }

person_is_hiring

Fires when a person starts or stops signaling they're hiring.

Field

Type

Required

Description

direction

"started", "stopped", or "either"

Yes

Which transition to watch

Use case: When your champion signals "Hiring" — they have budget and headcount. Great time to pitch solutions that help their growing team.

{ "type": "person_is_hiring", "entityType": "person", "direction": "started" }

person_became_verified

Fires when a person gets LinkedIn verification. No additional fields.

Use case: Verified profiles often belong to high-profile individuals gaining influence — may indicate leadership visibility.

{ "type": "person_became_verified", "entityType": "person" }

Profile Changes

person_headline_changed

Fires when a person updates their LinkedIn headline.

Field

Type

Required

Description

keywords

string[]

No

Only alert if new headline contains these keywords. Omit for any change.

Use case: Headline changes often signal career transitions, new responsibilities, or personal branding shifts.

{ "type": "person_headline_changed", "entityType": "person", "keywords": ["looking for", "advisor", "consultant", "building"] }

person_summary_changed

Fires when a person updates their LinkedIn summary/about section.

Field

Type

Required

Description

keywords

string[]

No

Only alert if new summary contains these keywords. Omit for any change.

Use case: Summary updates signal a person is actively curating their professional image — often precedes or follows a career change.

{ "type": "person_summary_changed", "entityType": "person", "keywords": ["open to", "seeking", "building"] }

person_location_changed

Fires when a person's location changes.

Field

Type

Required

Description

toCountries

string[]

No

Only alert if moved to one of these country codes. Omit for any relocation.

Use case: Detect when contacts relocate to your target geography — opens door for local meetups and relationship building.

{ "type": "person_location_changed", "entityType": "person", "toCountries": ["US", "GB", "DE"] }

Skills & Activity

person_skills_added

Fires when a person adds new skills to their profile.

Field

Type

Required

Description

skills

string[]

No

Only alert for these specific skills. Omit for any new skill.

Use case: Someone adding "Kubernetes" or "Terraform" to their skills may be starting a cloud migration — relevant for infrastructure vendors.

{ "type": "person_skills_added", "entityType": "person", "skills": ["Kubernetes", "Terraform", "AWS"] }

person_new_certification

Fires when a person earns a new certification.

Field

Type

Required

Description

certificationKeywords

string[]

No

Only alert for certifications matching these keywords. Omit for any new cert.

Use case: A new AWS or Azure certification suggests the person is investing in a technology — they may be evaluating complementary tools.

{ "type": "person_new_certification", "entityType": "person", "certificationKeywords": ["AWS", "Azure", "GCP", "Kubernetes"] }

person_tag_gained

Fires when a person gains a system-assigned tag.

Field

Type

Required

Description

tags

string[]

Yes

Tags to watch for

Use case: Track when contacts gain specific organizational or behavioral tags within Fiber's enrichment system.

{ "type": "person_tag_gained", "entityType": "person", "tags": ["founder", "investor"] }

Social Activity

person_posted

Fires when a person publishes a LinkedIn post.

Field

Type

Required

Description

minReactions

integer

No

Only alert for posts with at least this many reactions. Omit for any.

Use case: Monitor decision-makers' posts for engagement opportunities. Commenting on their posts builds relationship before pitching.

{ "type": "person_posted", "entityType": "person", "minReactions": 10 }

person_posted_with_keyword

Fires when a person posts about a specific topic.

Field

Type

Required

Description

keywords

string[]

No

Keywords to match in post content.

minReactions

integer

No

Minimum reactions. Omit for any.

Use case: Know when your buyer posts about pain points your product solves — the most timely, relevant outreach possible.

{ "type": "person_posted_with_keyword", "entityType": "person", "keywords": ["struggling with", "looking for", "evaluating", "scaling challenges"] }

Growth Metrics

person_connections_milestone

Fires when a person's connection count crosses a threshold.

Field

Type

Required

Description

threshold

integer

Yes

Connection count to watch for

direction

"above" or "below"

Yes

Alert when crossing up or down

Use case: Track influencers growing their network — crossing 10K+ connections means broader reach for potential partnerships.

{ "type": "person_connections_milestone", "entityType": "person", "threshold": 10000, "direction": "above" }

person_follower_milestone

Fires when a person's follower count crosses a threshold.

Field

Type

Required

Description

threshold

integer

Yes

Follower count to watch for

direction

"above" or "below"

Yes

Alert when crossing up or down

Use case: Track contacts becoming thought leaders — crossing 50K followers means they're gaining significant influence.

{ "type": "person_follower_milestone", "entityType": "person", "threshold": 50000, "direction": "above" }

Creative Use Cases: Combining Rules

The real power of Tracker comes from combining multiple rules on the same list to catch complex signals. Here are proven strategies:

1. Buying Intent Detection (Company List)

Combine hiring signals with growth signals to find companies actively investing:

[ { "type": "job_posting_with_keyword", "entityType": "company", "keywords": ["data engineer", "analytics"] }, { "type": "headcount_growth_percent", "entityType": "company", "minPercentChange": 15, "direction": "grew" }, { "type": "new_funding_round", "entityType": "company", "minAmountUsd": 5000000 } ]

Any one of these firing means the company is likely spending — all three together is a very strong signal.

2. Champion Tracking (Person List)

Track your existing champions and power users for career moves:

[ { "type": "person_changed_company", "entityType": "person" }, { "type": "person_got_promoted", "entityType": "person" }, { "type": "person_open_to_work", "entityType": "person", "direction": "started" }, { "type": "person_is_hiring", "entityType": "person", "direction": "started" } ]

When a champion changes companies, you have a warm intro to their new org. When they get promoted, they have more authority to expand your contract.

3. Competitive Intelligence (Company List)

Monitor competitors for strategic moves:

[ { "type": "technology_added", "entityType": "company", "technologies": ["React", "Next.js"] }, { "type": "recently_hired_with_title", "entityType": "company", "titleKeywords": ["VP Product", "CTO"] }, { "type": "acquired_company", "entityType": "company" }, { "type": "company_description_changed", "entityType": "company" } ]

4. Market Expansion Detection (Company List)

Identify companies entering new markets:

[ { "type": "new_office_location", "entityType": "company", "countries": ["US"] }, { "type": "job_posting_with_keyword", "entityType": "company", "keywords": ["country manager", "regional director"] }, { "type": "hq_location_changed", "entityType": "company" } ]

5. Pre-Churn Risk Detection (Person List)

Monitor key contacts at existing customers for early churn signals:

[ { "type": "person_open_to_work", "entityType": "person", "direction": "started" }, { "type": "person_stealth_changed", "entityType": "person", "direction": "entered" }, { "type": "person_changed_company", "entityType": "person" }, { "type": "person_headline_changed", "entityType": "person", "keywords": ["looking for", "open to"] } ]

If your main point of contact is leaving, you need to build a new relationship before the handoff.

6. Fundraise Timing (Company List + Lookback)

Use lookback periods to detect sustained growth patterns that predict upcoming fundraises:

[ { "type": "headcount_growth_percent", "entityType": "company", "minPercentChange": 30, "direction": "grew", "lookbackDays": 90 }, { "type": "job_posting_in_function", "entityType": "company", "jobFunctions": ["Finance", "Legal"] }, { "type": "recently_hired_with_title", "entityType": "company", "titleKeywords": ["CFO", "VP Finance", "Controller"] } ]

30%+ headcount growth over 90 days combined with finance hires often precedes a fundraise announcement.

7. Decision-Maker Identification (Person List)

Track people for signals they've become decision-makers:

[ { "type": "person_got_promoted", "entityType": "person", "seniorityKeywords": ["VP", "C-level", "Director"] }, { "type": "person_is_hiring", "entityType": "person", "direction": "started" }, { "type": "person_follower_milestone", "entityType": "person", "threshold": 5000, "direction": "above" } ]

8. Technology Adoption Timing (Company List)

Catch companies at the exact moment they're evaluating new tech:

[ { "type": "technology_added", "entityType": "company", "technologies": ["Snowflake"] }, { "type": "job_posting_with_keyword", "entityType": "company", "keywords": ["Snowflake", "data warehouse", "dbt"] }, { "type": "recently_hired_with_title", "entityType": "company", "titleKeywords": ["Data Engineer", "Analytics Engineer"] } ]

If they're adding Snowflake, hiring data engineers, AND posting data jobs — they're building a data stack right now.


API Quick Reference

Operation

Method

Path

Create company list

POST

/v1/tracker/company-lists

List company lists

GET

/v1/tracker/company-lists

Get company list

GET

/v1/tracker/company-lists/:listId

Update company list

PATCH

/v1/tracker/company-lists/:listId

Delete company list

DELETE

/v1/tracker/company-lists/:listId

Add companies

POST

/v1/tracker/company-lists/:listId/companies

Remove companies

POST

/v1/tracker/company-lists/:listId/companies/remove

List changes

GET

/v1/tracker/company-lists/:listId/changes

Create person list

POST

/v1/tracker/person-lists

List person lists

GET

/v1/tracker/person-lists

Get person list

GET

/v1/tracker/person-lists/:listId

Update person list

PATCH

/v1/tracker/person-lists/:listId

Delete person list

DELETE

/v1/tracker/person-lists/:listId

Add people

POST

/v1/tracker/person-lists/:listId/people

Remove people

POST

/v1/tracker/person-lists/:listId/people/remove

List changes

GET

/v1/tracker/person-lists/:listId/changes

Tracker overview

GET

/v1/tracker/overview


Webhook Delivery

When a rule fires, Fiber delivers a webhook containing the signal. Each signal includes:

  • id — Unique signal ID

  • entityId — The tracked entity that triggered the signal

  • entityType"company" or "person"

  • linkedinIdentifier — LinkedIn org ID or user ID

  • type — The rule type that fired (e.g., "headcount_crossed_threshold")

  • summary — Human-readable description of what changed

  • changeData — Array of objects with the specific changes detected

  • observedAt — When the change was detected

Configure your webhook URL in the Fiber dashboard under Tracker settings.