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
5 days 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.