Skip to content
← Processus

Construire une liste cible à partir d'une phrase

Décrivez en une phrase les entreprises que vous voulez, et obtenez-les sourcées, notées sur des signaux datés, enrichies, vérifiées contre votre CRM et prêtes en campagne.

Apollo.io→HubSpot→TheirStack→Serper→Apify→FullEnrich→Lemlist
Démarre
Quand vous le demandez
Étapes
6
Contrôles et conditions
0
Une personne décide
Jamais, tourne seul

Entreprises de logistique en France, 250 à 1 000 salariés, qui recrutent sur des postes supply chain. Sourcer 40 comptes.

Brief en une phrase dans le chat

Voir en démo

Claude exécute la suite en autonomie

  1. 1

    Présélectionner les comptes et leurs contacts

    Apollo.io

    Apollo.io

    Les entreprises correspondantes sont notées sur ce que la recherche a déjà renvoyé, et chacune retenue reçoit deux ou trois personnes correspondant au persona décrit.

  2. 2

    Écarter les contacts déjà dans le CRM

    HubSpot

    HubSpot

    Quiconque le CRM montre comme client, en opportunité ouverte ou dans la séquence d'un collègue est écarté, en comparant par email ou sinon par domaine d'entreprise.

  3. 3

    Récolter les signaux pour ce qui a survécu

    TheirStack

    TheirStack

    Chaque entreprise restante reçoit ses postes ouverts et sa technologie, ses levées, mouvements et expansions récents, et des détails de ses propres pages, chacun avec son URL source.

    Serper

    Serper

    Apify

    Apify

  4. 4

    Trouver des emails et numéros vérifiés

    Apollo.io

    Apollo.io

    Chaque contact reçoit une adresse vérifiée et un numéro direct, une seconde source comble ce que la première a manqué, et quiconque reste introuvable est marqué injoignable, jamais deviné.

    FullEnrich

    FullEnrich

  5. 5

    Rédiger chaque accroche à partir d'un signal

    Chaque accroche nomme une trouvaille datée sur cette entreprise et cite son URL, et une entreprise sans rien trouvé reçoit une version plus sobre, jamais une accroche inventée.

  6. 6

    Préparer la campagne, mettre à jour le CRM

    Lemlist

    Lemlist

    La séquence attend en brouillon avec l'accroche propre à chaque contact, la liste qualifiée est dans le CRM avec ses signaux en note, et le lancement est laissé à une personne.

    HubSpot

    HubSpot

Construire une liste de prospection, c'est d'habitude une matinée à changer d'onglet. Quelqu'un ouvre une base de données, devine les filtres, exporte quelques centaines de lignes, les colle dans une feuille, vérifie une douzaine d'entreprises à la main, abandonne pour le reste, et livre une liste dont personne ne peut décrire la qualité.

La phrase dans la tête de quelqu'un est le vrai cahier des charges, et elle ne survit jamais intacte au trajet vers un panneau de filtres. Pendant ce temps, la preuve qui qualifierait vraiment ces entreprises est publique, datée, et assise derrière une API : qui elles recrutent, ce qu'elles font tourner, ce qu'elles ont annoncé le trimestre dernier, ce que disent leurs propres pages. La jointure entre les deux, c'est tout le travail, tout comme savoir lequel de ces appels payer et dans quel ordre. Cet ordre est ce qu'un agent de prospection IA peut tenir à chaque exécution.

What you get

A list that matches the sentence you wrote, scored on dated evidence with a source URL behind every claim, enriched with verified addresses and real direct numbers, deduplicated against your CRM, and staged as a campaign ready for a person to launch.

D'une phrase à une liste de comptes notée

Afficher les filtres inférés avant de dépenser quoi que ce soit. Une phrase est réellement ambiguë et un panneau de filtres ne l'est pas, donc l'ambiguïté doit être résolue quelque part, et le seul endroit économique, c'est à voix haute, avant que la recherche ne tourne. « Taille moyenne » résolu en 50 à 250 quand le lecteur voulait dire 250 à 1 000, c'est une liste complètement différente, et le découvrir après coup signifie payer deux fois pour la mauvaise. Tout ce que la phrase n'a pas précisé reste non défini.

La recherche d'entreprises dans Apollo demande ensuite un compte avant de tirer des lignes. Moins de 50, les filtres sont trop étroits ; plus de 2 000, ils sont trop larges. Les tags mot-clé sont appliqués sans grande précision, donc une recherche sur un secteur revient avec des entreprises d'autres secteurs, et les résultats sont filtrés sur le code de classification d'activité avant qu'aucune ligne ne soit écrite. Chaque entreprise qui survit est notée sur ce que la recherche a déjà renvoyé, répartie en trois paliers, et le palier du bas n'est pas travaillé davantage. Les deux paliers du haut reçoivent chacun deux ou trois personnes, correspondant à l'ancienneté et à la fonction demandées par la phrase.

Dépenser dans le bon ordre

Chaque étape après celle-là est un filtre pour la suivante, et cet ordre est la conception même. Sourcer est presque gratuit, noter sur ce que la recherche a déjà renvoyé ne coûte rien du tout, trouver des personnes coûte, les signaux coûtent plus, et l'enrichissement est facturé par recherche. Donc la vérification contre HubSpot tourne avant l'une ou l'autre des étapes coûteuses : cent vingt contacts déjà dans votre pipeline, c'est cent vingt recherches que vous pouvez simplement ne pas acheter, et la vérification qui les trouve est gratuite. Les signaux ne sont achetés que pour les entreprises qui ont encore un contact joignable, parce qu'une recherche sur une entreprise inaccessible est une recherche payée et inutilisable.

Les signaux viennent de trois sources, chacune répondant à quelque chose que les autres ne peuvent pas : postes ouverts et technologie depuis TheirStack, levées de fonds récentes, acquisitions et changements de direction depuis la recherche web Serper, et le détail qu'un extrait laisse de côté, tiré des propres pages de l'entreprise via Apify. C'est aussi là que l'agent vérifie si une entreprise a été acquise ou absorbée, puisque les données firmographiques deviennent vite périmées et qu'aucune note ne survit à ça. Chaque trouvaille est écrite avec sa source, sa date et son URL. Une entreprise sans rien trouvé est enregistrée comme n'ayant aucun signal, et un signal inventé n'est jamais permis.

Contacts vérifiés et accroches depuis les signaux

L'enrichissement se fait en cascade, et la réponse du second fournisseur est quand même vérifiée. La base de contacts répond en premier et FullEnrich récupère ce qu'elle a manqué, ce qui est la seule façon de faire monter le taux de réussite sur un lot réel. Mais une cascade renvoie parfois l'exacte adresse que le premier fournisseur avait déjà signalée comme en hard-bounce, sans rien sur le dossier pour dire qu'elle est morte, donc les deux réponses sont comparées plutôt que la plus récente écrasant silencieusement la précédente. Même histoire sur les numéros de téléphone : un résultat de recherche revendiquera une ligne directe pour presque tout le monde puis renverra le standard de l'entreprise, identique pour chaque contact de cette entreprise, ce qui vaut la peine d'être gardé et étiqueté mais n'est pas une ligne directe.

Deux paliers d'accroche gardent la personnalisation honnête. Là où il y a un signal, l'email le nomme et porte l'URL d'origine, si bien que le destinataire peut aller vérifier. Là où il n'y en a pas, prétendre le contraire produit le geste vague vers la pertinence qui fait lire le sortant comme automatisé, et un email plus sobre qui revendique moins est le meilleur échec possible. La campagne est ensuite chargée dans Lemlist en brouillon avec l'accroche de chaque contact attachée, la liste qualifiée retourne au CRM avec ses signaux en note, et le lancement est laissé à une personne.

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.

# Build a target list from a sentence

You have access to a B2B contact database, a hiring and technology
signal source, a web search API, a hosted scraper, a waterfall
enrichment provider, a CRM, and an outreach tool. Run this for **[one
sentence describing the companies and people you want]**.


## 1. Turn the sentence into filters, and show your work

Read the sentence and write out the structured filters you inferred
from it before running anything: headcount range, sectors, countries,
seniority, job functions. Print them.

This step exists so a wrong reading is caught in five seconds rather
than after eight hundred credits. "Mid-sized logistics companies in
France" has to become an explicit headcount band, and if your band is
50 to 250 and the reader meant 250 to 1000, they need to see that
before the search runs, not after.

Anything the sentence did not specify stays unset. Do not invent a
country filter because most customers are French.

## 2. Shortlist the accounts, scored before spending

Run the company search with those filters. Ask for the count first,
then decide:

- Under 50 results, the filters are too narrow. Report that and say
  which filter to loosen rather than proceeding with a list nobody can
  run a campaign on.
- Over 2,000, they are too broad. Report the count and ask before
  spending anything.

**A wide net costs the same as a narrow one.** Most databases bill per
page of results, not per filter, so widen the keywords and narrow
afterwards. Splitting a vertical into several single words returns far
more than one compound phrase does.

**The result set will not be the vertical you asked for.** Keyword
tags are applied loosely and a search for wholesale distribution will
return cosmetics manufacturers and EV charging networks alongside the
real matches. Filter on the industry classification code before
writing any rows, and give a reason for anything that survives
outside it.

Then score every company that made it through, using only the data
the search already returned. No paid signal is bought at this stage.
Rate each one on the criteria the sentence implies, band them into
three tiers, and stop working the bottom tier entirely. This is the
cheapest filter you will ever run and it decides what the expensive
steps operate on.

## 3. Shortlist their people worth reaching

For the top two tiers only, find contacts matching the seniority and
function from step 1. Cap it at two or three per company. More than
that and you are emailing an entire department, which gets noticed
internally and reads as a blast.

A company with no reachable contact is not a target. Mark it and stop
spending on it, whatever it scored.

## 4. Drop contacts the CRM already has, before you buy anything else

Check every contact against the CRM. Match on email where you have
one, and on company domain where you do not, because a bare name match
will happily return a different person at a different company.

Drop anyone who is already an open opportunity, an existing customer,
or under active sequence by a colleague. Keep the CRM record id
against the ones you keep, so the write in step 8 updates rather than
duplicates.

Do this before signals and before enrichment, not after. Both are
billed per lookup, and paying to research a company you already sell
to is pure waste. A list of eight hundred contacts where a hundred and
twenty are already in pipeline is a hundred and twenty lookups bought
to rediscover what you were already sitting on, and the check that
avoids it is free.

## 5. Gather signals only for what survived

Now, and only for companies that still have a live contact, gather the
evidence the outreach will be built on. Three sources, each answering
something the others cannot:

- **Open roles and the technology behind them.** A company hiring for
  the function your product serves is the strongest single signal
  available, because it is dated, public and carries a URL. The stack
  matters too, in both directions: a tool you integrate with is a
  reason to call, and a direct competitor already installed is a
  reason not to.
- **Recent events, from web search.** Funding rounds, acquisitions,
  new facilities, leadership changes in the function you sell into.
  Set the country explicitly if the market is not the search
  provider's default, or you will get the wrong region's results.
- **The pages themselves, from a hosted scraper.** Where the search
  returns a thin result, run a scraper against the source the result
  points at, the careers page, the company profile, the location
  listing. This is what gets you the detail a snippet drops.

Three things that will mislead you if you do not expect them. The
signal source may return **duplicate company records for one domain**
with different headcounts, so take the union of what they say rather
than the first row. It will have **no record at all for many mid-size
firms**, which is a normal result and not an error. And it **misses
parts of the stack**: where a layer that sits on top of a system
appears with nothing under it, the system underneath is almost
certainly present but unnamed, and the contact database's own
technology field is a usable second opinion.

**Re-check independence here, because this is the only step that can.**
Search explicitly for the company being acquired, merged or absorbed.
Firmographic data goes stale, and a company that was folded into a
group last quarter can still score at the top of the batch on
yesterday's record. If it has been, stop and say so with the source
URL. No score survives that.

Write every finding with its source, its type, the detail, its URL and
the date it was captured. **The URL is what lets a human check the
claim before repeating it in an email.** A company where you found
nothing keeps its score and gets recorded as having no signal. An
account with no signals is allowed; an invented signal is not.

## 6. Find verified emails and numbers

Enrich only what is left. Take the contact database's own match first,
then fall through to the waterfall provider for whatever it missed.

**Read the contact layer, not just the person layer.** A record can
report an address as verified at the top level while its own contact
detail carries a hard-bounce flag and no deliverable address. That
address has already bounced. An address is only usable when both
layers agree, and sending to one that a provider itself has flagged as
dead is how a sending domain gets burned.

**The waterfall is not an independent check.** Run it where the first
provider returned nothing usable and a profile URL is known, then
compare what comes back against the address the first provider already
rejected. A fallback that hands you the same dead address, with no
indication that it is dead, is not a second source. Only treat it as
new information when it differs.

**Phone data promises more than it delivers.** A search result will
report a direct line for almost everyone, and the matched record then
returns the company switchboard, identical for every contact at that
company. Only a mobile or a direct number is a real number. Write the
switchboard if it is all there is, and label it as such so nobody
calls it expecting a desk to ring.

Record the source of each address and each number honestly. "None" is
a valid value and is the right value for a bounced address. Where
nothing answers at all, mark the contact unreachable rather than
dropping the row, and keep it if the name and title are good, because
a name and a title are enough for a call even when a send is not
possible.

## 7. Write each opener from a signal

Write in two tiers. Where a company carries a signal, the opener names
it and cites the URL it came from, so the recipient can go and look.
Where it does not, the plain version goes out and claims less.
Pretending otherwise produces the vague gesture at relevance that
makes outbound read as automated, and a plainer email is the better
failure mode.

Rules that hold in both tiers:

- The opening detail comes from a captured finding on **that** company.
  No hook is ever invented to fill the slot.
- An observation about their business, never a compliment. Zero
  flattery.
- Plain text. No markup, no links, no signature block. Sequence copy
  is usually HTML and a variable is dropped into it verbatim, so an
  ampersand or an angle bracket in the text will break the markup
  around it.
- Some findings are true, relevant and still not openers. A disclosed
  control weakness or a restructuring reads as an attack when it opens
  a cold approach. Keep it in the notes as second-conversation
  material and open on something structural.

## 8. Stage the campaign, update the CRM

Two writes, and neither of them sends anything.

**To the outreach tool:** load the campaign as a draft and attach each
contact's own opener as a per-contact variable that the sequence
resolves at send time. Read the campaign's copy first and write down
every variable it references, because a variable with no value on a
contact is a contact the tool holds back rather than sends. Before the
first real add, validate one payload against the campaign without
adding anyone.

**To the CRM:** read the field definitions first, every run, because
field keys are per-workspace and hardcoding them is how a run writes
into nothing. Upsert the company, then the person, passing the record
id you kept in step 4 so an existing record updates instead of
duplicating. Attach the signals and their URLs as a note, and check
whether you already wrote one for this contact: notes usually cannot
be updated, so a second run writes a second note. Tag everything with
this run's name and date.

Then stop. The launch is a person's decision.

## Output

Report: the filters you inferred, companies found, how many survived
scoring, contacts sourced, how many were dropped as already known and
why, how many companies carried a signal and how many did not,
enrichment hit rate split by provider, how many addresses were
rejected as undeliverable, and the campaign's draft status.

Pourquoi le faire tourner avec Tulina

Un prompt aide une personne. Un processus fait avancer une équipe.

Collé dans une conversation, le prompt ci-dessus marche une fois, pour celui qui l'a collé. Dans Tulina, « Construire une liste cible à partir d'une phrase » devient un processus que l'équipe partage, qui garde son historique, qui tourne seul, et qui reste dans le même périmètre de sécurité que les outils qu'il appelle.

  • Toute l'équipe travaille sur le même

    PersonnelÉquipeOrganisation

    Un processus se range à l'endroit qui lui correspond : à vous, à votre équipe ou à toute l'organisation. Celui qui l'exécute peut l'améliorer, et tout le monde repart de la meilleure version au lieu de réexpliquer le travail à chaque fois.

  • Chaque modification est une version

    v1v2v3

    Chaque changement crée une nouvelle version et garde la précédente ; une mauvaise modification se défait en restaurant une version antérieure. Chaque exécution enregistre la version qu'elle a suivie, et ce qu'elle a appris revient dans le processus.

  • Il tourne sans vous

    planifiéwebhookà la demande

    Un agent hébergé exécute le processus sur l'infrastructure de Tulina, à heure fixe ou quand un événement arrive, et continue quand vous fermez la conversation. Rien à héberger. Chaque exécution est suivie jusqu'à son résultat.

  • Dans le même périmètre de sécurité

    coffrerôlesjournal

    Les identifiants restent dans le coffre, jamais dans le prompt. Les rôles décident qui peut lancer quoi, chaque appel est journalisé, et une étape qu'une personne doit valider attend cette personne.

Questions sur la construction de listes de prospection par IA

Oui, tant qu'elle montre comment elle a lu la description avant de lancer quoi que ce soit. Les filtres inférés de la phrase sont affichés en premier, si bien qu'une formule ambiguë comme « taille moyenne » ressort comme une tranche d'effectif explicite que vous pouvez corriger. Rien n'est sourcé, noté ou enrichi tant que la lecture n'est pas juste.

En lisant la couche contact autant que la couche personne, car un enregistrement peut déclarer une adresse vérifiée alors que son propre détail de contact porte un drapeau de hard-bounce. La base de contacts est interrogée en premier et seul ce qu'elle manque retombe sur la cascade, qui parcourt plusieurs sources en un seul appel. La réponse de la cascade est comparée à la première plutôt que de l'écraser silencieusement, car elle renvoie parfois l'exacte adresse que le premier fournisseur avait déjà signalée comme morte.

Des postes ouverts et la technologie derrière eux, des événements récents comme des levées de fonds, acquisitions, nouveaux sites ou changements de direction, et des détails tirés des pages propres de l'entreprise. Chacun est daté, public et porte une URL, si bien qu'une affirmation construite dessus peut être vérifiée par la personne qui reçoit l'email plutôt que prise sur parole. Chaque trouvaille est enregistrée avec son lien source pour exactement cette raison.

Oui, et ici cette vérification tourne avant tout signal payant ou enrichissement. Chaque contact est comparé au CRM par email, ou par domaine d'entreprise s'il n'y a pas d'email, et quiconque déjà client, en opportunité ouverte ou dans la séquence d'un collègue est écarté. À la fin, la liste qualifiée est réécrite avec les signaux attachés en note. Les deux sont des opérations de lecture et écriture ordinaires, donc n'importe quel CRM connecté les supporte.

Deux ou trois au maximum, correspondant à l'ancienneté et à la fonction demandées. En contacter plus que ça sur une même entreprise se voit en interne et se lit comme une salve plutôt qu'une prospection.

Des processus qui partagent des outils avec celui-ci. Les outils partagés sont allumés.

Découvrez Tulina en 30 minutes.

Réserver une démo