Company signals

Watch the companies you sell to and see when one posts new roles, raises a round, makes the news or changes its leadership, each with a link to the source, checked once a day inside a budget you set.

A signal is a dated reason to write to a company now: it is hiring, it raised money, it was in the news, or someone new runs a team there. AY Inbox checks the companies your workspace watches once a day through Looot, keeps what is new, and links every signal to the page that shows it happened.

Signals run on the instance's Looot balance, so the operator has to turn them on first (AYINBOX_LOOOT_SIGNALS, see configuration). On an instance that bills with credits, the workspace pays for each lookup in credits.

The four kinds of signal

SignalWhere it comes fromWhat a check keeps
HiringThe company's job openings (jobs.company)Roles first seen in the last 30 days, each linked to its job page
FundingThe company's financing events (company.funding)Rounds first seen in the last 90 days, with the round type and amount, linked to the announcement
NewsNews about the company (company.news)Articles that name the company, linked to the article
LeadershipThe same news lookupHires, promotions and departures of senior people (a chief, a VP, a head of a team, a founder or the board)

Anything older than 90 days is left out, and a check keeps at most 10 signals per lookup. Hiring and funding lookups are pinned to a provider that answers for the domain it was asked about, and a row in their answer that names a different company is dropped.

How news is matched

A news provider can ignore the domain it was sent and return unrelated articles while still reporting a hit. AY Inbox never sends news lookups to the provider seen doing this, and it keeps an article only when it is about the company:

  • the article names the company's domain, or comes from a page on that domain, or
  • it names the company as a whole word (legal suffixes such as "Inc." are dropped, and a name of two letters or fewer is not used), or
  • the provider files it as an event of that company.

An article that does none of these is dropped. The lookup that returned it is still paid for.

A news item becomes a leadership signal when the provider files it as a hire, promotion, departure or retirement, or when its headline says someone was appointed, named, hired, promoted or stepped down as a senior role. A headline that says the company raised, secured or closed a round becomes a funding signal. Everything else stays news.

Looot's catalog has no feed of job changes per company yet, so leadership changes are read from news rather than from a people database.

The same signal is never shown twice

A signal is identified by its kind, the company and its evidence link with the tracking parameters removed (utm_*, fbclid, gclid and the like, and the whole query of a LinkedIn job page). Finding the same page again on another day, or through another lookup, adds nothing.

Watch companies

Open Contacts, then Signals, then Watched companies. Add companies in any of three ways:

  • By domain. Paste domains, websites or addresses: https://www.acme.io/about and [email protected] both become acme.io. Free-mail hosts such as gmail.com are refused, because they are not a company.
  • From contacts. Adds the 50 company domains most of your contacts are at, skipping free-mail hosts and domains already watched, with the most common company name your contacts give for each.
  • From a segment. The same, over the members of a segment.

A workspace watches up to 500 companies. Each row shows when the company was last checked, how many signals it has, and why a check stopped if one did. Pause a company to skip it in the daily check, or remove it. Removing a company keeps the signals already found.

The daily check

Once a UTC day, AY Inbox checks every watched company that is not paused: one hiring, one funding and one news lookup. Each lookup is capped at $0.015, so a company costs at most $0.045 a day, and usually less. A lookup costs what Looot bills for it, whether or not it yields a signal: a miss is free only when the provider does not bill misses.

  • A daily budget. Each workspace has one, $1 by default (the operator can change the default with AYINBOX_LOOOT_SIGNALS_DAILY_USD). Change it under Signals > Budget, from $0 to $50 a day. A lookup only starts when its cap fits in what is left of the day's budget; companies that do not fit wait for the next day, marked Waiting for budget, unless you raise the budget, which lets the next hourly pass try them again. The budget resets at midnight UTC.
  • Choose the lookups. Turn hiring, funding or news off under Budget to spend nothing on it.
  • Pause the daily check. Turning Daily checks off stops the automatic check; Check now still works.
  • Never paid twice. Every lookup has an idempotency key made from the workspace, the company, the lookup and the UTC day. Checking the same company again the same day reuses the first answer at no cost, and a check interrupted by a restart picks up where it stopped.
  • Costs Looot has not settled. A lookup Looot has not answered yet is retried on the next hourly pass with the same key, which settles it without billing it again, and that carries on after the UTC day ends. Until then its cap counts against its day's budget. Looot is asked for up to 7 days; after that the lookup is closed. A lookup Looot answered without reporting a cost keeps its cap counted for its day until the cost arrives.

On a hosted workspace the daily check runs only while the workspace has a paid plan that includes integrations. Without one, you can still keep a watch list, each row says Needs a paid plan, and the check starts within a few hours of upgrading.

Check now

Check now on the Watched companies tab checks every watched company that is not paused, up to 25 at a time, within a budget you set ($0.05 to $50, $0.50 by default); the refresh button on a row checks only that company. It also stays inside the day's budget. A lookup that already finished today costs nothing, and one turned on since today's check is new spend, so it needs the budget and the credits like any other. New signals appear in the feed as they are found.

Where signals show

  • The Signals feed lists every signal, newest first, filtered by kind and age. Each row opens its evidence page in a new tab.
  • Contacts. A contact at a company with a signal in the last 30 days carries a small badge next to their company, matched on the domain of their address.
  • Segments. Filter contacts with Last hiring signal, Last funding signal, Last news signal, Last leadership change or Last company signal, for example "in the last 14 days". See segments.
  • Webhooks. signal.detected fires once for each new signal. See webhook events.
  • Live. Teammates see new signals arrive without refreshing.

Credits

On an instance that bills with credits, each lookup is charged once Looot settles its cost: the settled spend divided by the operator's price per credit, rounded up. The default is one credit per $0.01, so a lookup that cost $0.01 is one credit. A lookup that yields no signal is charged what Looot billed for it, which is nothing only when the provider does not bill the miss.

  • The charge is taken before the lookup's signals are stored, so signals your workspace could not pay for are not handed over. They are stored after you add credits, when the next pass replays the lookup at no extra Looot cost.
  • A lookup only starts when the workspace has the credits for its cap. When they run out, the daily check tries again every hour and the rows say Out of credits.
  • A lookup Looot answered without reporting a cost is charged its cap, two credits at the default price, and its signals are stored. When Looot reports the cost, the settled spend is charged and the cap is given back as Looot company signals refund. If it never reports one within 7 days, the cap stays charged.
  • A lookup still running when the day ends is charged when it settles, even though the company has been checked again since.
  • Charges appear in the transaction log under Settings > Billing as Looot company signals, naming the company and the lookup, and count toward your spend limits. A manual check is attributed to the member who started it.

Use the API

POST /v1/signals/companies
{ "domains": ["acme.io", "https://www.example.com"] }

The body can name domains, companies (each a domain and an optional name), contact_ids, from_contacts: true or a segment_id, with limit (1 to 100, 50 by default) for the last three. The answer lists the companies added and how many were existing.

POST /v1/signals/check
{ "company_ids": ["2c1f..."], "max_cost_usd": 0.5 }

Leave company_ids out to check every watched company, up to 25. The answer is 202 with queued, already_checked_today, estimated_max_usd and what is left of the day's budget. Send an Idempotency-Key header with either POST so a retry returns the first answer.

  • GET /v1/signals lists signals, newest first, with types (comma separated), domain, days (1 to 365), limit (1 to 200) and the opaque cursor from pagination.next_cursor.
  • GET /v1/signals/domains?days=30 summarizes recent signals per company domain.
  • GET /v1/signals/companies, PATCH and DELETE /v1/signals/companies/:companyId read, rename or pause, and remove watched companies.
  • GET /v1/signals/settings returns the settings, today's spend and each lookup's cap; PUT /v1/signals/settings takes daily_budget_usd, paused and lookups.

Who can do what

ActionMember permissionAPI key scope
See signals, the watch list and the budgetView contactsREAD_CONTACTS
Add, rename, pause and remove companiesManage contactsWRITE_CONTACTS
Check nowUse integrations and manage contactsINTEGRATIONS and WRITE_CONTACTS
Change the daily budget and lookupsManage settingsINTEGRATIONS

On a hosted workspace, Check now and changing the budget also need a paid plan that includes integrations. See the endpoint scope map and the error codes.

Good to know

  • The headline, detail and link of a signal come from outside providers. AY Inbox shows them as text and opens links in a new tab.
  • Watched companies, their signals and the signal settings move with the contacts group in a workspace export. The record of what each lookup cost stays behind, and the destination checks each company again.
  • Signals are kept for a year after they were first found, and the record of each lookup for 90 days. See data control.
  • A signal is evidence that something happened, not a promise that a company is ready to buy. Read the source before you write.

On this page