Superclean Person Names avatar

Superclean Person Names

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Superclean Person Names

Superclean Person Names

Clean messy person names for cold email and CRM. Extracts first names for personalization, fixes ALL CAPS, handles McDonald/O'Brien/van der Berg correctly, strips titles (Dr.) and credentials (PhD). Three styles: first name only, casual, or formal.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Superlative

Superlative

Maintained by Community

Actor stats

2

Bookmarked

4

Total users

3

Monthly active users

9 days ago

Last modified

Share

Clean messy person names for cold email personalization, CRM systems, and lead lists.

What does Superclean Person Names do?

Superclean Person Names uses AI to intelligently clean and normalize person names from lead lists, LinkedIn exports, and CRM exports.

  • Fixes ALL CAPS — "JOHN SMITH" becomes "John Smith"
  • Extracts first names — "Dr. John Michael Smith Jr., PhD" becomes "John" for cold emails
  • Handles special cases — McDonald, O'Brien, van der Berg formatted correctly
  • Strips unwanted content — Removes titles, credentials, emails, phone numbers
  • Detects non-English — Flags names in CJK, Arabic, Cyrillic for review
  • Instant API mode — Sub-second single-name cleaning via Standby HTTP server

What else can Superclean do?

If you're cleaning lead data, you might also need:

Why clean person names?

Your lead lists show the same person different ways:

  • "JOHN SMITH"
  • "Dr. John Smith, PhD"
  • "john smith"
  • "Smith, John"
  • "MR. JAMES WILSON JR., MBA"

Clean data means better:

  • Cold email personalization — "Hi John," instead of "Hi DR. JOHN MICHAEL SMITH JR.,"
  • CRM consistency — Proper formatting across all records
  • Segmentation — Accurate name-based filtering and deduplication

How to use Superclean Person Names

  1. Paste your person names into the input field (one per line)
  2. Select your output style (First, Casual, or Formal)
  3. Click Start and download your cleaned results

Output styles

StyleBest forBeforeAfter
FirstCold emailDr. John Michael Smith Jr.John
CasualCRM, generalDR. JOHN SMITH JR., PhDJohn Smith Jr.
FormalContractsdr john smith jr phdDr. John Smith Jr., Ph.D.

First (for cold email)

Just the first name. Perfect for cold email personalization.

  • "Dr. John Michael Smith Jr., PhD" → "John"
  • "Mary-Jane O'Brien" → "Mary-Jane"
  • "van der Berg, Johannes" → "Johannes"

Casual (default)

Full name without titles or credentials. Keeps generational suffixes.

  • "DR. JOHN SMITH JR., PhD" → "John Smith Jr."
  • "mary-jane o'brien" → "Mary-Jane O'Brien"
  • "JOHANNES VAN DER BERG" → "Johannes van der Berg"

Formal

Complete professional formatting with all components.

  • "dr john smith jr phd" → "Dr. John Smith Jr., Ph.D."
  • "MARY O'BRIEN MD" → "Mary O'Brien, M.D."
  • "prof johannes van der berg" → "Prof. Johannes van der Berg"

Standby mode (instant API)

Standby mode keeps a warm container running so you get instant person name cleaning without cold-start delays. Instead of starting a full Actor run, you make a simple HTTP GET request and get results in milliseconds.

This is ideal for:

  • Clay enrichment steps — single-name cleaning inline
  • Make / n8n HTTP modules — real-time name normalization in workflows
  • MCP agents — AI tools that need instant person name data

Standby URL

https://superlativetech--superclean-person-names.apify.actor?token=YOUR_API_TOKEN

Or use a Bearer token in the Authorization header instead of the token query parameter.

Clean a person name

$curl "https://superlativetech--superclean-person-names.apify.actor?token=YOUR_API_TOKEN&input=DR.+JOHN+SMITH+III"

First name only

$curl "https://superlativetech--superclean-person-names.apify.actor?token=YOUR_API_TOKEN&input=DR.+JOHN+SMITH+III&style=first"

With your own OpenRouter key (BYOK)

curl -H "X-OpenRouter-Key: sk-or-..." \
"https://superlativetech--superclean-person-names.apify.actor?token=YOUR_API_TOKEN&input=mcdonald,+sarah+jane"

Query parameters

ParameterRequiredDescription
inputYesPerson name to clean
styleNoOutput style: first, casual (default), or formal
modelNoLLM model (default: openrouter/auto)

Headers

HeaderRequiredDescription
X-OpenRouter-KeyNoYour OpenRouter API key for BYOK

Response format

{
"id": 1,
"input": "DR. JOHN SMITH III",
"output": "John Smith",
"confidence": 0.95
}

Error responses

CodeCause
400Missing input parameter or invalid style
405Non-GET request
500Unexpected server error

Special capitalization

The Actor correctly handles:

  • Scottish/Irish names — McDonald, MacArthur, O'Brien, O'Neill
  • Dutch/German names — van der Berg, von Braun (particles lowercase)
  • Italian names — da Vinci, di Caprio
  • Hyphenated names — Mary-Jane, Jean-Pierre, Saint-Martin

How many names can you clean?

There's no limit. Process as many person names as you need — from a handful to hundreds of thousands. The Actor scales automatically.

For best performance, batch your requests. Processing 1,000 names at once is more efficient than 10 separate runs of 100 names each. For batches over 5,000 items, increase the timeout in Settings → Run configuration (e.g., 1800 seconds for 10K names).

How much will it cost you?

This Actor uses pay-per-result pricing:

NamesCost
1,000$1.00
10,000$10.00
100,000$100.00

Volume discounts apply automatically:

  • Bronze (100+ items): $0.0009/name
  • Silver (1,000+ items): $0.0008/name
  • Gold (10,000+ items): $0.0007/name

AI model costs

This Actor uses the Apify OpenRouter integration for AI processing. Token costs are billed to your Apify account at OpenRouter rates.

The default model (openrouter/auto) automatically selects the most cost-effective option, typically adding less than $0.05 per 1,000 names.

Bring your own key

You can bring your own OpenRouter API key instead of using the built-in Apify integration. This routes AI requests directly through your OpenRouter account, so token costs are billed there instead of your Apify account.

To use your own key, paste it into the OpenRouter API key field in the Advanced section. The key is encrypted and never logged.

Input parameters

ParameterTypeDescription
itemsarrayList of person names to clean (one per line in the UI, or JSON array)
itemstringSingle person name to clean — API shorthand for integration callers (Clay, Make, n8n). If both item and items are provided, item is prepended to the list
stylestringOutput style: first, casual, or formal (default: casual)
modelstringAI model to use (default: openrouter/auto). Set a specific model for higher-quality confidence scores. Browse models
openRouterApiKeystringOptional. Your own OpenRouter API key for direct API access (encrypted)

Input example

{
"items": [
"JOHN SMITH",
"dr. mary jane o'brien, phd",
"McDonald, Ronald",
"johannes van der berg",
"MR. JAMES WILSON JR."
],
"style": "casual"
}

items also accepts objects, which is useful for API and MCP integrations:

{
"items": [
{ "input": "JOHN SMITH" },
{ "input": "dr. mary jane o'brien, phd" }
],
"style": "casual"
}

For API and integration callers who want to clean a single value without wrapping it in an array, use the item shorthand:

{
"item": "dr. mary jane o'brien, phd",
"style": "casual"
}

During the Actor run

The Actor processes names in batches for efficiency. You'll see progress updates as each batch completes.

If you provide invalid input (e.g., an empty list), the Actor will stop immediately with an error message explaining what went wrong.

Results are available in real-time — you can start downloading cleaned names before the full run completes.

Output format

Results are saved to the default dataset. Each cleaned name is a separate item.

You can export results as JSON, CSV, Excel, or other formats directly from Apify Console. Or access them programmatically via the API.

Output example

[
{
"id": 1,
"input": "JOHN SMITH",
"output": "John Smith",
"confidence": 0.95
},
{
"id": 2,
"input": "dr. mary jane o'brien, phd",
"output": "Mary Jane O'Brien",
"confidence": 0.92
},
{
"id": 3,
"input": "McDonald, Ronald",
"output": "Ronald McDonald",
"confidence": 0.90
}
]
FieldDescription
idRow number (1-based, matches Apify's displayed row numbers)
inputOriginal person name before cleaning
outputCleaned person name
confidenceConfidence score from 0 to 1 (lower scores may need manual review)

Confidence scores

Each result includes a confidence score from 0 to 1:

  • 0.9+ — High confidence, no review needed
  • 0.7-0.9 — Moderate confidence, spot check recommended
  • < 0.7 — Low confidence, manual review suggested

Non-English names automatically receive confidence 0 and should be reviewed.

Integrations

Superclean Person Names works with any tool that can call Apify Actors:

  • Clay — Add as an enrichment step in your Clay tables
  • Make — Use the Apify module to run the Actor
  • Zapier — Trigger runs and retrieve results automatically
  • n8n — Self-hosted workflow automation

You can also use webhooks to trigger actions when a run completes — for example, send a Slack notification or automatically import results into your CRM.

Using Superclean Person Names with the Apify API

The Apify API gives you programmatic access to run Actors, retrieve results, and manage datasets.

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('superlativetech/superclean-person-names').call({
items: ['JOHN SMITH', 'dr. mary jane o\'brien, phd'],
style: 'casual'
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('superlativetech/superclean-person-names').call(run_input={
'items': ['JOHN SMITH', "dr. mary jane o'brien, phd"],
'style': 'casual'
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Check out the Apify API reference for full details, or click the API tab above for more code examples.

Your feedback

We're always improving Superclean Actors. If you have feature requests, find a bug, or need help with a specific use case, please open an issue in the Actor's Issues tab.

When Apify asks to share your run data with us, we encourage you to opt in — it's the fastest way for us to spot edge cases and improve results. Sharing is completely optional (you can toggle it anytime under Account Settings → Privacy), and shared runs are automatically deleted by Apify based on your plan's data retention period. We only use shared data to debug issues and improve this Actor.

Leave a review

If Superclean Person Names saves you time or improves your outreach, please leave a review. Your feedback helps other users discover the tool and helps us understand what's working well.


Built by Superlative