Lead Formatter - Clean & Enrich Leads
parseforge/lead-formatter
Lead generationAIAutomation
Upload a leads file and get back a cleaned, formatted, and optionally AI-enriched dataset. Perfect for cold email outreach.
- Total users
- 10
- Monthly active
- 1
- Total runs
- 304
- Bookmarked
- 2
- Rating
- 5.0 (2)
- Last modified
- 8 days ago
Overview
Lead Formatter - Clean & Enrich Leads
Clean, format, and enrich your leads for cold email in one run. Upload a CSV, Excel, or JSON file and get back a standardized dataset with formatted names, job titles, company names, phone numbers, and optional AI-generated personalization. No code required.
Cold email outreach fails when your lead data is messy: inconsistent job titles, unformatted phone numbers, and missing company context. This tool takes your raw leads file and automatically cleans and standardizes it, so every row is ready for your email campaign. It also offers optional AI enrichment to generate personalized lines, company descriptions, and industry tags, helping you increase reply rates.
| Who uses it | What they scrape Lead Formatter for |
|---|---|
| Sales development reps | Prepare a clean, deduplicated lead list for cold email outreach |
| Marketing teams | Segment leads by country, job title, or industry for targeted campaigns |
| Recruiters | Format candidate contact details and generate personalized outreach lines |
What it does
This Actor uploads a leads file, cleans and formats the contact fields, optionally removes blanks and duplicates, and returns a structured dataset with each lead as a flat row.
- ๐งน Data cleaning: remove blank leads, remove duplicates by email, and standardize phone numbers to E.164 format.
- โ๏ธ Formatting: capitalize job titles and company names, strip business suffixes like Inc. or LLC.
- ๐ค AI enrichment: generate company descriptions, personalized opening lines, case studies, and industry tags.
- ๐ Web search: enable real-time web search to enrich leads with up-to-date company info.
- ๐ Segmentation: group leads into separate datasets by any field, e.g., country or job title.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with Lead Formatter data
๐ Prepare a clean lead list for cold email.
A sales team uploads a messy CSV of prospects and gets back a formatted, deduplicated list ready for their email tool.
๐ฏ Segment leads for targeted outreach.
A marketer segments leads by country and job title to run region-specific campaigns with tailored messaging.
โ๏ธ Generate personalized email openers.
A founder enables AI personalization to create unique opening lines for each lead, increasing response rates.
๐ข Enrich company data for better context.
A researcher generates company descriptions and industry tags to understand each prospect's business before reaching out.
Why choose this scraper
| What you get | |
|---|---|
| Clean data | Standardized names, job titles, company names, and phone numbers for professional outreach. |
| Deduplication | Remove duplicate leads by email to avoid contacting the same person twice. |
| AI personalization | Generate tailored opening lines and company descriptions to boost reply rates. |
| Segmentation | Split leads into separate datasets by country, job title, or industry for targeted campaigns. |
How it compares
Unlike Skool member scrapers that only pull raw profiles, this tool cleans and enriches your existing leads with formatting and AI personalization.
| Feature | ParseForge | SKOOL | Members/Groups | Discovery Search | Scraper (PPE) |
|---|---|---|
| Upload your own leads file | Yes | Not listed |
| Remove duplicates by email | Yes | Not listed |
| Format job titles and company names | Yes | Not listed |
| AI-generated personalized lines | Yes | Not listed |
| Email verification | Yes | Not listed |
Configure the run
Feed the Actor a leads file (CSV, Excel, or JSON) and configure cleaning options like removing blanks or duplicates, formatting fields, and enabling AI enrichment. Filters run as each lead is processed, so only the cleaned and enriched data reaches your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"leadsFile": "https://api.apify.com/v2/key-value-stores/rFlGez0FeHA0VgeU0/records/test-incomplete-leads.csv",
"segmentBy": [],
"fieldConfigurations": {},
"temperature": "0.3"
}
Pricing
Pay-per-result: $0.0095 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.95 |
| 1,000 results | $9.50 |
| 10,000 results | $95.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect more results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the Lead Formatter - Clean & Enrich Leads.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to Lead Formatter through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/lead-formatter"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your file has an 'email' column and that the leads are not all blank. If you enabled 'Remove Blank Leads', empty rows are deleted.
Why are some phone numbers not formatted?
Phone formatting works best with US numbers. For international numbers, ensure they include the country code.
Why is AI enrichment slow?
AI features take longer to process. You can disable web search or reduce the number of AI fields to speed up the run.
FAQ
| Question | Answer |
|---|---|
| What file formats can I upload? | You can upload CSV, Excel (XLSX), or JSON files. The tool automatically detects column names, so you can use variations like 'First Name' or 'first_name'. |
| How does email verification work? | If you provide a Million Verifier API key, each email is checked and a 'verifiedEmail' field is added with statuses like 'valid', 'invalid', or 'disposable'. |
| Can I remove duplicate leads? | Yes, enable the 'Remove Duplicates' option to keep only the first occurrence of each email address. |
| What does AI enrichment cost? | AI features like generating company descriptions or personalized lines increase the run cost slightly. You can enable only the ones you need. |
| Can I customize the AI output? | Yes, use the 'Field Configurations' option to set custom prompts and output column names for each field. |
| How do I segment leads? | Use the 'Segment By' option to list fields like 'country' or 'jobTitle'. Each segment is saved to a separate dataset. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Lead Formatter. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| leadsFile required | string | Upload your leads file containing contact information to format and enrich. Supported formats: JSON (array of objects), XLSX/Excel (first sheet used), CSV. The tool automatically detects column names (case-insensitive) and supports variations like 'First Name', 'first_name', 'firstName', etc. Required fields: email. Optional fields: firstName, lastName, companyName, jobTitle, country, website, personalPhone, homePhone, domain. | https://api.apify.com/v2/key-value-store |
| removeBlanks | boolean | Automatically remove leads that have no data in any field. This helps clean your dataset by filtering out completely empty records. Useful when processing large lists with incomplete data. Default: false (keeps all leads). | false |
| removeDuplicates | boolean | Remove duplicate leads based on email address. If multiple leads have the same email, only the first occurrence is kept. This ensures each contact appears only once in your final dataset. Default: false (keeps all leads including duplicates). | false |
| formatJobTitle | boolean | Format job titles with proper capitalization and professional standards. Examples: 'ceo' โ 'CEO', 'vice president of sales' โ 'Vice President of Sales', 'cto' โ 'CTO'. Keeps abbreviations uppercase and applies title case formatting. Default: true (recommended for professional appearance). | true |
| formatCompanyName | boolean | Format company names with proper capitalization and remove business suffixes (Inc., LLC, Corp., Ltd.) for cold email personalization. Examples: 'apple inc' โ 'Apple', 'microsoft corporation' โ 'Microsoft'. This makes company names more personal and natural for email outreach. Default: true (recommended for cold emails). | true |
| formatPersonalPhone | boolean | Standardize personal phone numbers to a consistent format. Converts various formats (e.g., '123-456-7890', '(123) 456-7890', '1234567890') to E.164 international format (e.g., '+11234567890') or local format. Ensures phone numbers are properly formatted for CRM systems and international dialing. Default: true. | true |
| formatHomePhone | boolean | Standardize home phone numbers to a consistent format. Converts various formats to E.164 international format or local format. Ensures phone numbers are properly formatted for CRM systems. Default: true. | true |
| generateCompanyDescription | boolean | AI-generated brief company description based on available company information (name, website, domain). Useful for enriching your lead database with company context. The description helps you understand what each company does before reaching out. Default: false (enables AI content generation, increases cost slightly). | false |
| generatePersonalizedLine | boolean | AI-generated personalized opening line for cold emails based on lead information (name, company, job title). These opening lines are tailored to each lead and can significantly improve email reply rates. Example: 'Hi John, I noticed you're the CEO at Apple - I'd love to discuss...' Default: false (enables AI content generation, increases cost slightly). | false |
| pullCaseStudy | boolean | AI-generated brief case study or success story relevant to the company's industry. Useful for personalizing outreach with industry-specific examples and social proof. Helps establish credibility in your cold emails. Default: false (enables AI content generation, increases cost slightly). | false |
| generateIndustry | boolean | Automatically identify and generate the primary industry for each company. Returns 1-3 words (e.g., 'Technology', 'Healthcare', 'Financial Services'). Useful for segmentation, targeting, and personalization. Helps organize leads by industry for targeted campaigns. Default: false (enables industry identification, increases cost slightly). | false |
| segmentBy | array | Group leads into segments based on specified fields. Each segment is saved to a separate dataset for easy download and targeted campaigns. Example: ['country', 'jobTitle', 'industry'] creates segments like 'country:USA | jobTitle:CEO | industry:Technology'. Each segment gets its own dataset that you can download separately. Useful for organizing leads by location, role, or industry for targeted outreach. | [] |
| sortBy | string | Sort all leads by a specific field before output. Enter the field name (e.g., 'companyName', 'country', 'jobTitle', 'industry', 'email'). Leads will be ordered alphabetically or numerically based on this field. Use with 'Sort Order' to control ascending/descending. Useful for organizing output in a specific order. | not set |
| sortOrder | string (2 options) | Control the sort direction when using 'Sort By'. 'asc' = ascending (A-Z, 0-9), 'desc' = descending (Z-A, 9-0). Default: 'asc' (alphabetical order). | asc |
| fieldConfigurations | object | Advanced: Customize how specific fields are processed and named in output. Each field can have: 'enabled' (boolean - enable/disable field), 'customPrompt' (string - max 100 chars - custom AI instruction), 'outputColumn' (string - custom column name in output). Example: {"companyDescription": {"customPrompt": "Based on company information identify industry make it less than 3 word, do not include dashes, do not include parenthesis", "outputColumn": "Company Description"}}. Useful for customizing AI behavior and mapping fields to your CRM column names. | {} |
| temperature | string | Control AI creativity and consistency (0-2). Lower values (0.1-0.3) = more consistent, deterministic results. Higher values (0.7-1.0) = more creative, varied results. Recommended: 0.3 for consistent formatting. Use higher values only if you want more creative AI-generated content. Enter as decimal (e.g., 0.3). Default: 0.3. | 0.3 |
| enableWebSearch | boolean | Enable web search to enrich lead data with real-time information from the internet. When enabled, the AI will automatically search the web for company information, industry details, case studies, and other relevant data to enhance your leads. Useful for getting up-to-date company descriptions, industry classifications, and personalized insights. Default: false (enables web search, increases processing time and cost). | false |
| millionVerifierApiKey | string | Optional: Your Million Verifier API key for email verification. If provided, each email address is verified before output. Verification status is added as 'verifiedEmail' field with values: 'valid' (deliverable), 'invalid' (undeliverable), 'unknown' (cannot verify), 'disposable' (disposable email), 'catch_all' (catch-all domain). Helps improve email deliverability by identifying invalid emails. Get your API key from https://www.millionverifier.com/. Leave empty to skip email verification. | not set |
Pricing
from $3.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.0035 |
| Formatted Lead | Charged when a lead is processed | $0.0095 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~lead-formatter/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
Rated 5.0 out of 5 across 2 reviews. Read them on Apify.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run Lead Formatter - Clean & Enrich Leads on Apify All scrapers
