MIT open source, paid data

Open source Gojiberry alternative: looot-warm-leads

Find warm B2B leads from public LinkedIn intent signals and rank them.

The code is MIT open source. The data is not free and not self-hosted: every real run calls looot and pays per call at the catalog price shown before the run.

Short answer

What is looot-warm-leads?

looot-warm-leads is an MIT-licensed Next.js app and CLI. You name competitors, creators and topics. It finds people who commented, reacted or posted, reads their profiles, scores them against your ICP with every signal explained and drafts a first message. The code is open source. The data is paid per looot call.

What it does

What looot-warm-leads does and how to run it

It lists recent posts from competitor pages, creators and keywords, then reads comments and reactions on the top posts. Candidates are ranked, and the best few get a profile and company read. New-role, hiring and funding triggers are optional.

Each lead gets a score from 0 to 100: fit points plus intent points. The breakdown names every signal, the provider that supplied it, its weight, the date, the cost and a link to check it.

You pick leads, see the quote for the email lookup first, and get a verified work email. It drafts a first message that refers to the real signal and exports CSV or an Instantly import file. A daily GitHub Actions workflow is included.

This is the job that products such as Gojiberry do.

Commands for looot-warm-leads
git clone https://github.com/loootai/looot-warm-leads && cd looot-warm-leads
npm ci --ignore-scripts
npm run demo
npm run warm -- run --demo
npm run warm -- run --dry-run --config examples/sources.example.json
export LOOOT_TOKEN=...
npm run warm -- run --max-spend 1 --since-last
npm run warm -- email --top 5 --dry-run
npm run warm -- export --format instantly

Facts

Facts from the repository

Read from GitHub on 2026-10-11.

Facts about looot-warm-leads
JobFind warm B2B leads from public LinkedIn intent signals and rank them.
LicenseMIT
LanguageTypeScript
A real run needs
  • Node.js 22.13 or newer
  • A looot token with the scopes runs.execute, catalog.read, runs.read and usage.read, for real runs and email lookups
  • A funded looot balance, for real runs
  • A Unipile account, only if you use the optional LinkedIn sending
Demo modeYes. npm run demo and npm run warm -- run --demo use invented people and companies with a stand-in for looot. They need no token or account and book simulated spend at list price.
Repositorygithub.com/loootai/looot-warm-leads
Facts read on2026-10-11

Data and price

Endpoints it calls, with the live price

Every real run calls these looot endpoints. The price column is read live from the catalog, never typed into this page.

Endpoints called by looot-warm-leads with their live catalog price
EndpointUsed forLive price
scrapecreators-linkedin-company-postsscrapecreatorsPosts of a competitor pagereading live price
harvestapi-profile-postsharvestapiPosts of a creatorreading live price
harvestapi-post-searchharvestapiPosts that match a keywordreading live price
fetchin-post-engagementfetchinComments and reactions on a postreading live price
fetchin-profilefetchinProfile: title, role start date, locationreading live price
fetchin-companyfetchinCompany: industry, headcount, sitereading live price
predictleads-companies-job-openingspredictleadsOpen roles, optional triggerreading live price
predictleads-companies-financing-eventspredictleadsFunding events, optional triggerreading live price
anysite-api-linkedin-user-emailanysiteWork email lookupreading live price
millionverifier-verifymillionverifierEmail verificationreading live price

Prices are read from the looot public catalog when the page loads. Some endpoints are priced per result, so a run that returns many rows costs more than one call. The CLI dry run prints the exact quote for your input before anything is charged.

Limits

What looot-warm-leads does not do

  • It is a local tool, not a hosted outreach platform. It runs no campaigns and sends no email.
  • It does not log in to LinkedIn, use a session cookie or automate a browser. The intent data comes from public-data providers through looot.
  • Sending on LinkedIn is optional and goes through your own paid Unipile account. The README says no Unipile call was made when it was written, so that part is unverified.
  • LinkedIn engagement data is incomplete. Providers return a sample of commenters and reactors, not all of them, and a reaction date is the post date when the provider gives none.
  • Response parsing was written from provider documentation and fixtures. The README says it was not checked against a recorded paid response. A parse that finds nothing is reported as no data, not as a failure.
  • State is a JSON file. There is no hosted service, no database and no login, so run it on your machine or behind your own access control.

With an agent

Run it with your agent

Copy the prompt, give it to the agent you already use, and it dry-runs first.

Prompt: looot-warm-leads
Use looot to find warm leads from LinkedIn activity around my competitors. Read https://looot.ai/skill.md first. Then clone https://github.com/loootai/looot-warm-leads, set my sources and ICP, run its dry run and show me the quote and the cap. Run it only after I say yes, never send a LinkedIn message for me, and list the hot leads with the signal behind each score.

FAQ

Questions about looot-warm-leads

It finds people who commented on or reacted to your competitors' posts, posted about your topic or started a new role. It reads their profiles, scores them against your ICP, finds and verifies work emails and drafts a first message.

The code is free under the MIT license. The data is not. Every real run is a set of paid looot calls at the catalog price, quoted before the run. Demo mode and the dry run cost nothing.

No. It does not log in to LinkedIn, use a session cookie or automate a browser. Public data comes through looot providers. Optional sending uses your own Unipile account and its hosted sign-in.

Fit points (title, seniority, industry, location, company size) plus intent points from each signal, each with a weight and a half-life you can edit. The breakdown on a lead names every signal, provider, cost and evidence link.

A run costs the sum of its calls. The table on this page shows the live catalog price of each endpoint. Emails are always quoted separately, and the dry run prints the quote for your sources file.

It runs no campaigns, sends no email and does not see every commenter or reactor, because providers return a sample. The README says parsers and the Unipile client were not checked against live services.

Yes. npm run demo and npm run warm -- run --demo need no token or account. A real run needs a token and a funded balance.

Give your agent the prompt on this page and the setup link https://looot.ai/skill.md. The repo ships a skill that quotes first, never raises the cap on its own and never approves or sends a LinkedIn message for you.

Keep going

For agents
repo
https://github.com/loootai/looot-warm-leads
job
Find warm B2B leads from public LinkedIn intent signals and rank them.
license
MIT
language
TypeScript
endpoint
scrapecreators: scrapecreators-linkedin-company-posts (linkedin_company_posts)
endpoint
harvestapi: harvestapi-profile-posts (linkedin_person_posts)
endpoint
harvestapi: harvestapi-post-search (linkedin_post_search)
endpoint
fetchin: fetchin-post-engagement (linkedin_post_engagement)
endpoint
fetchin: fetchin-profile (linkedin_person_profile)
endpoint
fetchin: fetchin-company (linkedin_company_profile)
endpoint
predictleads: predictleads-companies-job-openings (jobs_company)
endpoint
predictleads: predictleads-companies-financing-events (company_funding)
endpoint
anysite: anysite-api-linkedin-user-email (people_email_find)
endpoint
millionverifier: millionverifier-verify (people_email_verify)
price
per call, read live from the catalog on the web page
framing
MIT code, paid data, every real run calls looot
setup
https://looot.ai/skill.md
llms.txt
https://looot.ai/llms.txt
read
2026-10-11

Run looot-warm-leads on your own looot account.

Try the demo first, no account needed. For a real run, start your workspace, top up, and use the quote the repo prints before it spends anything.