Skip to content
← Processes

Find contacts for signal accounts

Companies that already showed interest but have nobody linked get the right people found by role, deduped, and added to outreach automatically.

Folk→AI Ark→Lemlist
Starts
Interest signal received
Steps
6
Checks and gates
0
A person decides
Never, runs alone

Trigger · Event

Interest signal received

An account showing interest with nobody linked to it starts the run, rather than waiting for someone to notice.

Folk

Claude runs the rest autonomously

  1. 1

    AI lists signal accounts with no contact.

    Folk

    Folk

    You get the companies that already showed interest but still have nobody linked as a contact.

  2. 2

    AI finds candidates for each role.

    AI Ark

    AI Ark

    Each account comes back with candidates for the roles that matter, and a role with nobody found is logged, not treated as a failure.

  3. 3

    AI keeps the most senior per role.

    Each role ends with one person, chosen on title and seniority rather than on who came first in the results.

  4. 4

    AI spots people already in the CRM.

    Folk

    Folk

    Anyone already in your CRM is recognised by email before anything is created, so nobody gets a duplicate record.

  5. 5

    AI saves each contact to the CRM.

    Folk

    Folk

    Each contact is created or updated, linked to its account and tagged with the segment it came from.

  6. 6

    AI queues each contact for outreach.

    Lemlist

    Lemlist

    Every resolved contact is in your outreach sequence, and nobody is added to the same campaign twice.

An account that showed interest and then never got a follow-up is usually missing one thing: a person to write to. A review, a reply to a form, any recorded signal puts the company in the CRM, and there it waits with nobody linked. Someone would need to notice the account, work out who to contact there, check whether that person is already in the CRM, and add them to outreach. Multiply that by every account with a signal and it becomes the kind of list that only gets worked when someone remembers to run it.

The CRM already knows which accounts raised a hand. A role-based people search already knows who works at each one. The gap between them is mechanical (find, dedup, link, queue), which makes it a job to run on a schedule instead of a line on a to-do list.

What you get

Every account with a signal and no contact gets its key people found, added to your CRM, and queued for outreach.

The run reads your CRM, Folk here, for the segment that already showed interest: a review, an inbound reply, any signal you record. It keeps only the accounts with nobody linked as a contact yet. Both conditions go into one query instead of fetching every account and filtering afterwards, which keeps the run cheap enough to repeat on a schedule. A list that has to be rebuilt from scratch each time is a list that stops getting run.

Finding the right person for each role

You define the two or three roles actually worth reaching for your product, commonly the founder or CEO and whoever owns the function your product touches, such as marketing, operations or procurement. For each account, AI Ark searches the company's domain for each role. An account with nobody found for a given role is logged as not found, and it does not hold up the roles that did resolve.

A search against a common role title returns several plausible profiles, and position in the results is not a reliable pick. The agent keeps one person per role, judged on title fit and seniority: a "Head of Marketing" search that returns a marketing coordinator and a CMO keeps the CMO. That choice is the difference between a contact worth emailing and one that gets passed up the org chart.

Adding contacts to the CRM without duplicates

Every kept candidate is matched against the CRM by email before anything is created. A match means the person already exists and their record is updated; no match means a new contact. It is a small check with an outsized effect on whether the CRM stays trustworthy after the tenth run, since without it the same account collects a second, slightly different version of a contact every time.

Each contact is saved linked to the account it came from and tagged with the segment that account was pulled from, so the roster stays traceable to the reason it exists. Writes are batched where the CRM supports it.

Queuing contacts for outreach

Every resolved contact, new or updated, goes into your outreach sequence in Lemlist with at least name, email, company and role. The agent checks before adding that the contact is not already in that campaign, so nobody is added twice. The run ends with a report: accounts matched, contacts found per role, how many were new or already on file, how many went to the CRM and to outreach, and which accounts came up empty for a role.

The prompt

The real prompt behind the steps above, detailed enough that an agent with the same tools can run it as written. The Run buttons copy the full version, which also carries the steps for connecting those tools.

# Find contacts for accounts with no one on file

You have access to your CRM, a people-search tool, and an outreach
campaign tool. Run this against **[the segment of accounts worth
checking — e.g. anyone who left a review, replied to a form, or showed
any other signal of interest]**.


## 1. List signal accounts with no contact

- Filter your CRM to the segment that already showed interest — a
  review, an inbound reply, any recorded signal — and keep only the
  ones with nobody linked as a contact yet.
- Combine the signal filter and the no-contact filter in one query
  rather than fetching everything and checking client-side; this is a
  list you'll re-run on a schedule, so keep it cheap.
- This is the whole point of the run: these are accounts that already
  raised a hand, and nobody followed up because nobody was ever found.

## 2. Find candidates for each role

- Define the two or three roles actually worth reaching for your
  product — commonly the founder/CEO and whoever owns the function your
  product touches (e.g. marketing, ops, procurement).
- For each account, search by company domain filtered to each role. An
  account with no match for a given role isn't an error — log it as
  "not found" and move on; it doesn't block the roles that did resolve.

## 3. Keep the most senior per role

Where a search returns several plausible people for the same role,
don't take the first result — judge on title match and seniority. A
"Head of Marketing" search that returns a marketing coordinator and a
CMO should keep the CMO.

## 4. Spot people already in the CRM before creating anything

- Match every kept candidate against your CRM by email.
- A match means the person already exists — update their record instead
  of creating a duplicate. No match means create a new one.

## 5. Save each contact to the CRM

- Create or update each contact, linked to the account it came from,
  and tagged with the same segment the account was pulled from — so
  the roster stays traceable to why it exists, not just a loose list of
  names.
- Batch the writes where your CRM supports it, rather than one call per
  contact.

## 6. Queue each contact for outreach

- Add every resolved contact — new or updated — to your outreach
  sequence, carrying at least name, email, company, and role.
- Never add the same contact to the same campaign twice; check before
  adding, not after.

## Output

Report: how many accounts matched the segment, how many contacts found
per role, how many were new vs. already on file, how many pushed to the
CRM, how many added to outreach, and which accounts came up empty for a
given role.

Why run it with Tulina

A prompt helps one person. A process moves a team.

Pasted into a chat, the prompt above works once, for whoever pasted it. In Tulina, "Find contacts for signal accounts" becomes a process the team shares, that keeps its history, runs on its own, and stays inside the same security perimeter as the tools it calls.

  • The whole team works on the same one

    PersonalTeamOrganisation

    A process lives where it belongs: yours, your team's or the whole organisation's. Whoever runs it can improve it, and everyone starts from the best version instead of explaining the job again.

  • Every edit is a version

    v1v2v3

    Each change is a new version with the previous one kept, so a bad edit is undone by restoring an earlier one. Every run records the version it followed, and what a run teaches goes back into the process.

  • It runs without you

    schedulewebhookon demand

    A hosted agent runs the process on Tulina's own infrastructure, on a schedule or when an event arrives, and keeps going when you close the chat. Nothing to host. Every run is tracked to its outcome.

  • Inside the same security perimeter

    vaultrolesrun log

    Credentials stay in the vault, never in the prompt. Roles decide who may run what, every call is logged, and a step a person has to approve waits for that person.

Questions about finding contacts at high-intent accounts

Yes — an agent can filter a CRM for accounts with a real signal (a review, an inbound reply) and no linked contact, then search for the right person by role and add them automatically.

By seniority and title fit, not the first result — a common role title returns several plausible profiles, and rank in a search isn't a reliable signal on its own.

Not if it checks first — every candidate is matched against the CRM by email before anything is created, so a match gets updated, not duplicated.

Only ones that already show a real signal and still have nobody linked — the filter runs in one query, so it's cheap enough to re-run regularly rather than a one-time sweep.

Other processes that run mainly on Folk. The tools they share with this one are lit.

See Tulina in a 30-minute demo.

Book a demo