List Competitor Accounts
Every account your competitors are touching, ranked, with your CRM context
at_risk flag: you own the account and have an open deal on it. we_own: false is white space (attack); we_own: true is a deal to defend.
Two scores, and they answer different questions. signal_score is all-time magnitude: how much attention has this account had. courtship_score is recency-first: is it being courted right now, with courtship_velocity (positive = accelerating) and a courtship_label of hot, warming, active, cooling, dormant or none.
Accounts are ranked by interactions, the count of interactions with people there over the window, in both directions: the competitor’s people engaging their posts, and them engaging the competitor’s people’s own posts. That count is the engagement score the Attack threshold is set in. courtship_score breaks ties. inbound_interactions and outbound_interactions split interactions by direction. Only people who match your keywords are counted.
Attack and Defense
Addscope to get one of the two competitor monitoring lists instead of the overview:
scope=attack: accounts that are not your customers, ranked by interactions overperiod. It covers any account where a competitor engaged someone who matches your buyer titles, whether it is a target account, in your CRM or neither.scope=defense: your customers that competitors touched, with the interactions over 30 and 90 days, the competitors involved and the last interaction.
use_case, interactions (over the period), interactions_30d, interactions_90d, last_interaction_at, competitors[] with each competitor’s interactions, customer_of[] (the competitors you watch that the company is a confirmed or likely customer of: id, name, domain, label) and we_own (the company is in your CRM). It also carries people_engaged (the distinct people there engaged in the period), latest (the newest interaction: type, direction, at, competitor_id, competitor_name, rep_name, rep_title, target_name, target_title, post_url; absent on a customer-only row) and the company’s CRM owner and CS owner (owner_name, owner_email, cs_owner_name, cs_owner_email). The summary adds customer_accounts, how many accounts have a non-empty customer_of. The response adds has_more and next_offset. from and to are ignored with scope.
Every account at once
scope=all is one list: the accounts competitors touched on either side, plus every company that is a confirmed or likely customer of a competitor you watch, even when nobody interacted there. Each company is one row. A customer nobody interacted with has customer_only: true and zero counts, and comes after the others, by name.
These filters narrow it, and only it (400 on attack or defense):
yours=truekeeps your customers (your client list),yours=falseevery other account.customer_of=anykeeps the companies that are a customer of a competitor you watch,customer_of=<competitor id>of that one.in_crm=truekeeps the companies in your CRM,in_crm=falsethe others.activity_only=trueleaves out the customer-only rows, so every account has an interaction in the period.owner=<email>keeps the companies that CRM account owner owns.
competitor_id narrows both the interactions and the customers to those competitors. On scope=all, my_accounts and white_space split the list on your client list.
People reached and pitches
Every scoped row also carries:people: up to 10 of the people engaged at the company in the period, newest first, each with their newest interaction:linkedin_id,name,title,avatar_url,type,direction,at,post_url, the competitor’s person who did it (rep_name,rep_title,rep_avatar_url,competitor_id,competitor_name) and the comment classifier’s verdict on it (intent_label,is_critical,evidence_span, the words that sell).[]on a customer-only row.people_engagedstays the full count.pitches: how many interactions in the period are pitches, a comment the classifier gave an intent label or flagged critical: a competitor’s person selling under someone’s post.
order=standingranks your customers first, then the companies in your CRM, then the rest; inside each, a row with a pitch in the period comes first; then the usual order by interactions.typeskeeps the interactions of one kind:like(every kind but a comment) orcomment. Both when omitted.pitch=truekeeps the pitches only.
types and pitch decide which interactions count, so every count, people and latest follow them. On scope=all a competitor’s customer stays listed with zero counts; add activity_only=true to leave those out.
Open deals
Every scoped row also carries the company’s open deal in your CRM, the same one the Accounts page shows:has_open_deal, and when it is true, deal_name, deal_stage, deal_amount and deal_close_date of the first open deal, the one closing last first. It is read from your CRM each time you call, so a deal your CRM opened since the last competitor run is already there. Add open_deal=true to keep the accounts with an open deal only; it works on every scope and across pages. open_deals is still accepted and changes nothing.
Companies without a LinkedIn numeric id
Every scoped row also carriescompany_vanity_name, the company’s LinkedIn vanity: its page is https://www.linkedin.com/company/{company_vanity_name}. It is there even when company_numeric_id is not, which happens when the profile of the person engaged named their company page by its vanity alone. Such a company is sent to company enrichment by the competitor’s next monitoring run, and gets its company_numeric_id and company_domain once that lands; until then, link to it by company_vanity_name. Omitted when the company has no vanity.
Authorizations
The API key you created on the API settings page of the Clustr app.
Query Parameters
Keeps the rows of this account, by its name. Repeat it for several accounts (a name may hold a comma, so it is never split).
Keeps the accounts touched by this tracked competitor, by its Clustr ID (cmp_…). Repeat the
parameter for several competitors, or leave it out for all of them. The id from earlier
responses also works.
The start of the time window, as an RFC 3339 timestamp. Leave it out to cover all time.
The end of the time window, as an RFC 3339 timestamp.
attack (accounts that are not your customers), defense (your customers) or all (both, plus the companies your competitors sell to). Setting it switches the list to the ranking by interactions over period.
attack, defense, all With scope=all only: true keeps the accounts on your client list, false the others.
With scope=all only. any keeps the companies that are a customer of a competitor you watch,
and a competitor's Clustr ID (cmp_…) keeps that competitor's customers. The competitor id from
earlier responses also works.
With scope=all only: true keeps the companies in your CRM, false the others.
With scope=all only: true keeps only the accounts with an interaction in the period, dropping the customer-only entries.
With scope=all only: keeps the companies this person owns in your CRM, by their email address.
With scope=all only: keeps the companies this person looks after as CS owner, by their email address: the CS owner set in Clustr, or else the one in your CRM.
With scope only: pass standing to rank your customers first, then the companies in your CRM, then the rest, with the accounts that have a pitch in the period first inside each group, then by interactions. Leave it out for the ranking by interactions.
standing With scope only: which interactions count, like (every kind except comments) or comment. Send a comma-separated list or repeat the parameter. Leave it out to count both.
With scope only: pass true to count only pitches, the interactions Clustr gave an intent label or flagged critical.
With scope only: pass true to keep only the accounts in market, where in the last 30 days two or more of their sales reps reached two or more people there on two or more posts, from two or more competitors or to three or more people.
With scope only: keeps the accounts where someone's post showed buying intent in the period, any, or one intent: hiring_for, evaluating, migrating, rfp or budget_or_project.
any, hiring_for, evaluating, migrating, rfp, budget_or_project With scope only: pass true to keep only the accounts with an open deal in your CRM. Every scoped account carries its open deal (has_open_deal, deal_name, deal_stage, deal_amount, deal_close_date), the one the Accounts page shows.
Accepted and ignored: every scoped account carries its open deal.
With scope only: the ranking window, from 1d to 365d. Defaults to 30d.
With scope only: the number of accounts per page, at most 500. Defaults to 100.
With scope only: the number of accounts to skip. Pass next_offset from the previous page.