AI ICP Qualifier
Pricing
from $2.50 / 1,000 results
AI ICP Qualifier
This AI-powered Apify actor scrapes websites using Playwright and analyzes them via GPT-4o-mini (OpenRouter) to qualify B2B leads. It outputs a JSON report with a **QUALIFY/DISQUALIFY** verdict, 1-10 score, and reason, focusing on the **cold outreach and lead gen** software niche.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Riddhiman
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 months ago
Last modified
Categories
Share
AI Website Qualifying Agent ๐ค
An Apify actor that uses AI to qualify B2B SaaS websites against your Ideal Customer Profile (ICP) criteria.
What It Does
This actor takes a list of website URLs and uses AI to analyze whether each company matches your target ICP:
- Scrapes the website content using Playwright
- Analyzes the product/offering using AI (via OpenRouter)
- Qualifies as QUALIFY or DISQUALIFY with a score (1-10)
- Explains the reasoning behind each decision
Default ICP Criteria
The actor is pre-configured to qualify companies in:
- Cold email software (Smartlead, Instantly, etc.)
- Cold LinkedIn outreach tools
- Lead generation / prospecting databases (Clay, Apollo, etc.)
- Sales engagement platforms
- Email finding / contact enrichment
- AI-powered outreach automation
You can customize the ICP criteria by providing your own icpSystemPrompt in the input.
๐ How to Use
Option 1: Import from GitHub (Recommended)
- Push this code to GitHub
- Go to Apify and sign in
- Click "Create" โ "Import from GitHub"
- Select your repository and the "Apify Version" folder
- The actor will be created automatically!
Option 2: Create Actor on Apify
- Go to Apify and sign in
- Click "Create" โ "New Actor"
- Choose "Blank actor"
- Click "Source" โ "Upload .zip" (zip this folder and upload)
- Or use the Apify CLI:
apify push
๐ฅ Input
When running the actor, provide the following input:
{"urls": ["https://www.smartlead.ai","https://www.clay.com","https://www.shopify.com"],"openrouterApiKey": "sk-or-v1-xxxxxxxxxxxxx","icpSystemPrompt": "Your custom ICP criteria here..."}
All three core inputs are dynamic! The icpSystemPrompt is fully customizable.
Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
urls | array | โ | Array of website URLs to analyze |
openrouterApiKey | string | โ | Your OpenRouter API key. Get a free key at https://openrouter.ai/settings/keys |
icpSystemPrompt | string | โ * | Custom ICP criteria (required - uses default if not provided) |
delayBetweenRequests | integer | โ | Delay in ms between processing URLs (default: 2000) |
maxRetries | integer | โ | Max retry attempts for AI calls (default: 3) |
*Note: The icpSystemPrompt has a default value in apify.json, so technically it's optional but can be customized.
๐ค Output
The actor saves results to a dataset and returns a summary:
{"total": 3,"qualified": 1,"disqualified": 2,"results": [{"url": "https://www.smartlead.ai","verdict": "QUALIFY","score": 9,"reason": "Smartlead is a cold email infrastructure platform..."},{"url": "https://www.shopify.com","verdict": "DISQUALIFY","score": 0,"reason": "Shopify is a B2C e-commerce platform..."}]}
Result Fields
| Field | Description |
|---|---|
url | The analyzed website URL |
verdict | "QUALIFY" or "DISQUALIFY" |
score | Score from 0-10 based on ICP match |
reason | 2-3 sentence explanation |
๐ง Customization
Change ICP Criteria
Provide your own icpSystemPrompt in the input:
{"urls": ["https://example.com"],"openrouterApiKey": "sk-or-v1-...","icpSystemPrompt": "Your custom ICP criteria here..."}
Change AI Model
Edit main.js to use a different model:
model: 'openai/gpt-4o-mini' // Change to your preferred model
๐ Project Structure
Apify Version/โโโ main.js # Main actor entry pointโโโ package.json # Dependenciesโโโ apify.json # Actor metadata & input schemaโโโ README.md # This file
โ ๏ธ Important Notes
- API Key - You'll need an OpenRouter API key. Get one free at https://openrouter.ai/
- Rate Limits - The actor includes delays between requests to avoid rate limiting
- Scraping - Some websites may block scrapers - these will be marked as DISQUALIFY
- Cost - Each URL requires one AI API call (very low cost with gpt-4o-mini)
๐ ๏ธ Troubleshooting
| Issue | Solution |
|---|---|
| "Input must contain openrouterApiKey" | Add your OpenRouter API key to the input |
| "Scraping failed" | Some sites block scrapers - this is normal |
| "Rate limit exceeded" | Increase delayBetweenRequests in input |
| Actor stuck | Check the log for errors |
๐ License
MIT โ Feel free to use and modify for your own purposes.


