# Social listening to qualified leads

You have access to a scraper, a website visitor identification tool,
LinkedIn, a CRM, an email enrichment waterfall, and a messaging tool.
Run this every morning for **[the engagement and the visits of the
day before]**.

## 0. Set up (skip if you're already connected)

If you don't already have live tool access for this, connect it
first. This prompt is only as real as the tools behind it:

1. Get a Tulina account: book a demo at https://tulina.ai/book.
2. Add Tulina's MCP server to your assistant: https://mcp.tulina.ai/mcp
3. In Tulina, connect your own API keys for the tools this
   prompt uses: a scraper, your website visitor identification tool,
   LinkedIn, your CRM, email enrichment, and your team's messaging
   tool.

Once connected, your assistant has real tool access and the rest of
this prompt runs as written.

## 0b. Already on Tulina? Three things around the run

An account and the MCP server are not the whole setup. Two of these come
before the run below and one after it, and together they turn this from a
one-off answer into a process your workspace keeps:

1. **Activate this process's connectors first.** Call
   `oto_connector(op="list")`, match it against the tools named in step 3
   above, and `oto_connector(op="select", name="...")` every one that
   isn't active yet. Selecting a connector does not mount its tools in the
   conversation you're already in — reach them through `oto_call` for this
   run, or open a fresh conversation once they're all on.
2. **Attach the work to an existing project.** `oto_project(op="list")`
   shows your active org's projects: pick the one this work belongs to
   rather than opening another, and keep its id. The project is where this
   process, the tables it writes to and the connectors it uses hang
   together.
3. **When the run is done, save it as a process — with its graph.** Write
   the body with `oto_procedure(op="set", ...)`, then attach it with
   `oto_project(op="link", project_id=..., target_type="procedure",
   target_ref="<your slug>")`. The body has to carry a drawing: read
   `oto_guide(op="read", slug="procedure-flowchart")` and follow it
   exactly — ONE untagged fenced block in that grammar, opening with the
   trigger and a quoted example of what you'd type to start a run. Tulina
   parses that drawing back into the graph it renders as the process's
   default view, which is what makes it come out in the same style as
   every other process in the app; a drawing the grammar can't read falls
   back to raw characters instead. Saving a process needs org-admin
   rights — without them, hand the finished body to someone who has them.

## 1. Collect who engaged with competitors' posts

For each of **[your competitors' LinkedIn pages, and your own]**, read
the posts of the last **[seven days]** through the scraper and
collect everyone who reacted or commented, with the post, the date and
what they wrote. A comment outranks a reaction, and a person who
engaged twice in the week is one person with two signals.

Keep what the person wrote verbatim. It is the hook later, and a
paraphrase of a comment reads as surveillance where the quote reads as
attention.

## 2. Identify companies visiting the site

From the visitor identification tool, read every company identified
on your site in the last day: the pages read, how many times, over
how many days. A pricing, security or integration page read more than
once is intent; a single hit on the home page is not. Keep the page
and the count: the note in step 6 names the page.

## 3. Match people to companies and the CRM

Resolve every engager to a current employer and title on LinkedIn,
and for every visiting company find **[the role you sell to]** the
same way, one or two people at most. Then match everyone against the
CRM by domain and by email, and drop with the reason: your own staff,
competitors' staff, a current customer, a company with an open deal,
a contact already in any sequence, and anyone who opted out. A lead
from a customer or an open deal goes to that account's owner as one
line, not into this list.

## 4. Qualify each person against your ICP

Score what is left on **[your ideal customer profile: segment, size,
geography, role, and what disqualifies]**. A person at a company
outside the profile is set aside with the reason, whatever they did:
a like from the wrong segment is still the wrong segment.

## 5. Rank each lead by what they did

Read each lead against **[your intent rules: which actions count as
hot, warm or watch]**. A starting grid: a pricing or security page
read twice, or a comment on a competitor's post about the problem you
solve, is hot; a reaction on such a post, or a product page read once
by a fitting company, is warm; one reaction on an unrelated post is
the watchlist, kept and not contacted. Within a tier, order by
recency, then by fit.

## 6. Find emails, draft one note each

Send every hot and warm lead to the enrichment waterfall as one job,
work emails only, and keep an address only when the domain belongs to
the company. Draft one note per lead, two sentences, that names what
they did, the post they commented on and the words they used, or the
page they read, and asks one question. Nothing the sources did not
say, no figure your proof points do not mark citable. **Create them as
drafts. Never send.** A lead with no email keeps its note for
LinkedIn.

## 7. Log the leads, send each rep their list

Write each lead to the CRM: the contact on its company, one note with
the signal, the quote or the page, the tier and the reason, and the
draft. Create a company only when the domain search came back empty.
Then send each rep the leads whose accounts they own, hot first, with
the evidence and the draft under each, and the unowned ones to
**[your manager channel]** with the counts: collected, matched,
excluded with reasons, unfit, watchlist, hot and warm.

## Output

Report: engagers collected per competitor, companies identified with
the pages read, people matched and dropped with reasons, the fit per
person, the tier per lead with the rule, emails found and missing,
drafts written, leads logged, and the reps told.
