Signals 101
Last updated: September 8, 2026
Signals is how you prospect on what is happening right now, rather than on a fixed set of criteria. You subscribe to a signal, Topo watches the market for it every day, and the people or companies that match land in a list automatically for as long as the signal runs.
This is a new capability. Before, Topo could only query a database for what was true at the moment you searched. Signals watches continuously.
Signals or Lead Search?
The two do different jobs. Use whichever fits the question you are asking.
Lead Search | Signals | |
|---|---|---|
Based on | Fixed criteria — job title, industry, size, location | Something happening — a hire, a post, a job change |
When it runs | Once, when you run it | Every day, until you stop it |
The list it makes | Static. It holds what you imported and does not change | Live. It keeps topping up while the signal runs |
Best for | Building a target list from a known ICP | Catching the right moment to reach out |
Filters that used to approximate signal behaviour inside Lead Search have moved here. In Lead Search they were a one-off snapshot of the database. As a signal they are live.
The signals available
Signal | What it detects | Brings back | What you provide |
|---|---|---|---|
Company post engagement | People who react to or comment on your company's LinkedIn posts. | People | Your LinkedIn company page URL |
Competitor post engagement | People who react to or comment on a competitor's LinkedIn posts. | People | One or more competitor LinkedIn page URLs |
Person post engagement | People who react to or comment on the posts of profiles you watch. | People | One or more LinkedIn profile URLs |
LinkedIn post keyword | Public LinkedIn posts mentioning your brand or a keyword you track. | People | The keywords to track |
LinkedIn followers of your company | Someone starts following your company page. | People | Your LinkedIn company page URL |
LinkedIn followers of a competitor | Someone starts following a competitor page you watch. | People | The competitor's LinkedIn page URL |
LinkedIn followers of any company page | Someone starts following a LinkedIn company page you watch. | People | The LinkedIn page URL to watch |
Hiring
Signal | What it detects | Brings back | What you provide |
|---|---|---|---|
Hiring for a job title | A company posts a role matching the titles you track. | Companies | The job titles to watch |
Keyword in job description | A job post mentions a keyword you track, anywhere in its description. | Companies | The keywords to watch |
Technology
Signal | What it detects | Brings back | What you provide |
|---|---|---|---|
Technology adoption | A company starts using a technology you track. | Companies | The technologies to watch |
Other
Signal | What it detects | Brings back | What you provide |
|---|---|---|---|
Recent job change | Someone in your scope starts a new position at a new company. | People | Nothing mandatory — narrow it with persona filters |
Custom events | People who trigger your own product or website events, sent to the Topo events API. | People or companies | The event name, and whether your events identify people or companies |
Creating a signal
Go to the Signals page and choose the signal you want. The wizard then walks you through:
Signal criteria — what has to happen for the signal to fire. This is where you enter the job titles, keywords, technologies or LinkedIn URLs the signal watches. Each signal has one thing it needs before it can run, listed in the table above.
Audience filters — who actually gets imported once the signal fires. A hiring signal might detect any company posting a sales role, while your audience filters keep only the ones in your industry and size range. These are optional, but they are what keeps a list clean.
Preview — a sample of what the signal would have caught recently, so you can sanity-check your criteria before spending anything.
List type — whether the list holds people or companies. Company signals can import the companies themselves, or the people who work at them.
Daily cap and estimated cost — see below.
Launch — the signal starts straight away and runs its first check immediately.
The daily cap
Every signal has a cap, and setting it is not optional. It is the maximum number of leads the signal may import in a day.
If more people or companies qualify on a given day than your cap allows, you get up to your cap and no more.
If fewer qualify, you get fewer. The cap is a ceiling, not a target.
For a company signal set to import people, you set two numbers instead: how many companies to take per day, and how many people to import at each one.
The cap replaces the old auto-import schedule that used to sit on a list. Volume is now controlled on the signal itself.
The list your signal feeds
Creating a signal also creates its list, named after the signal. It is a contact list for a people signal and an account list for a company signal.
The list is live: new matches keep arriving while the signal runs. You can link it to a sequence like any other list, and leads will enrol as they land. You can also have imported leads enrolled into a sequence automatically as part of the signal setup.
Email and phone enrichment are each a toggle on the signal, so you only spend credits on what you need.
Managing a running signal
Pause a signal to stop it importing for a while, then resume it. The list stays where it is.
Edit its criteria, caps, filters or enrichment at any time. Changing the criteria resets the signal's baseline, so it starts watching afresh.
Duplicate a signal to run a variant. This is also how you switch between importing people and importing companies, since that cannot be changed on an existing signal.
Archive a signal when you are done. It never runs again, and the list it built stays.
Seeing what a signal found
The All events tab on the Signals page shows everything your signals picked up, most recent first, and what happened to each one:
Found — detected, not yet processed.
Imported — added to the list.
Already in list — a match you already had, so it was not imported twice.
Expired — the event aged out before it could be imported.
Rejected — detected, but filtered out by your audience filters, your exclusions, or because it could not be enriched.
A signal that is finding plenty but importing little is usually a sign your audience filters are tighter than you meant, or your cap is low.
If you were using auto-import
Lists that were set to import automatically keep everything they already hold, but no new leads flow into them. If you want leads arriving on their own, that is now a signal.
📄 How does list monitoring work?