AI Lead Qualifier — Score Leads & Write Openers avatar

AI Lead Qualifier — Score Leads & Write Openers

Pricing

Pay per event

Go to Apify Store
AI Lead Qualifier — Score Leads & Write Openers

AI Lead Qualifier — Score Leads & Write Openers

Score any batch of leads against your ideal customer profile (1-10) and draft a personalized cold-open line for each. Feed it any lead scraper's output. Bring your own OpenAI-compatible key.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Rook DataTools

Rook DataTools

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Turn a raw list of leads into a scored, prioritized outreach list — with a personalized opening line already written for each one. Point it at any batch of leads, describe your ideal customer and your offer, and get back every lead scored 1–10 with a one-sentence reason and a ready-to-send cold-open line.

Real run: a public chamber directory turned into a ranked call list — 15 businesses → 12 emails added → AI-scored leads with written openers

Not a scraper — this is the qualification layer that goes after scraping. Feed it the output of any lead-scraper on Apify (including the Wild Apricot, MembershipWorks, and ChamberMaster directory scrapers) and it turns hundreds of raw rows into a ranked call list.

Bring your own key = you pay pennies here

The model runs on your OpenAI-compatible API key (OpenAI by default; works with Azure, OpenRouter, Together, local servers — anything OpenAI-compatible). Because the model cost is billed to your own account, this Actor charges only a few cents per lead for the orchestration, prompting, parsing, and delivery.

Input

{
"leads": [
{ "name": "Bluewater Bistro", "category": "Restaurant", "city": "Seattle" }
],
"inputDatasetId": "PASTE_A_SCRAPER_RUN_DATASET_ID_optional",
"icpDescription": "Independent restaurants and bars, not chains.",
"offerDescription": "Modern restaurant POS with free install.",
"scoreThreshold": 7,
"onlyReturnQualified": false,
"model": "gpt-4o-mini",
"apiKey": "sk-your-own-key"
}
  • leads: array of objects (any shape) or strings. And/or…
  • inputDatasetId: qualify another Actor's output directly — paste its dataset ID.
  • icpDescription / offerDescription: the sharper and more specific, the better the scores.
  • onlyReturnQualified: return just the leads that meet your threshold.
  • model / apiBaseUrl / apiKey: your provider and key (key stored as a secret).

Output

Each input lead is returned unchanged, plus a _qualification block:

{
"name": "Bluewater Bistro",
"category": "Restaurant",
"city": "Seattle",
"_qualification": {
"score": 9,
"reason": "Independent food-service business, strong ICP fit.",
"opener": "Saw your spot listed locally — most independents here still run legacy POS; ours installs free before your next weekend rush.",
"qualified": true,
"model": "gpt-4o-mini",
"at": "2026-07-23T21:40:00.000Z"
}
}

Typical workflow (the flywheel)

  1. Run a directory/lead scraper → dataset of raw businesses.
  2. Run AI Lead Qualifier with that inputDatasetId + your ICP + offer.
  3. Export the qualified rows (with openers) to your CRM / Google Sheet / Slack.

Notes

  • Robust to messy model output — a malformed response never kills the run; it fails safe per lead.
  • Concurrency is configurable (1–10) for speed vs. rate limits.
  • Your API key is stored as a secret and used only to call your chosen model.
  • No personal data is sent anywhere except your own model provider.

🔗 Part of a lead-generation suite (scrape → enrich → qualify)

This Actor works best chained with its companions on the same account:

  1. Directory scrapers — get businesses/members (name + website) from Wild Apricot, MembershipWorks, or ChamberMaster / GrowthZone directories.
  2. Business Website Contact Extractor — add the emails/phones the directories hide.
  3. AI Lead Qualifier — score each lead against your ICP and write a personalized opener.

Pass a run's dataset ID into the next step. NOTE: cross-actor chaining needs your apifyToken in the input (Apify runs actors with limited permissions, so reading another run's dataset requires your token).