Dataset Dedupe Merger
Under maintenancePricing
from $0.50 / 1,000 results
Dataset Dedupe Merger
Under maintenanceMerge multiple datasets into one clean dataset. Removes duplicates with exact, normalized, or fuzzy matching, unifies field names, and keeps the most complete version of every record — with missing fields back-filled from discarded duplicates. Built for cleaning multi-scraper output.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Uncle Glooby
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
11 days ago
Last modified
Categories
Share
Dataset Deduplicator & Merger
Merge multiple datasets into one clean dataset — remove duplicates, unify field names, and keep the most complete version of every record.
Built for the most common post-scraping problem: you ran Google Maps, Yelp, and a directory scraper, and now you have three overlapping lists with different column names and thousands of duplicate businesses. This Actor turns them into a single deduplicated, backfilled dataset in one run.
What it does
- Merges any number of datasets — pass a list of datasets, get one combined output.
- Three matching modes:
exact— byte-for-byte comparison.normalized(recommended) — case-insensitive, ignores punctuation and accents, strips common company suffixes (LLC, Inc, Ltd...), and compares phone numbers digits-only, so+1 (555) 123-4567matches5551234567.fuzzy— catches near-duplicates likeJoe's PizzavsJoes Pizza LLCusing a similarity threshold you control.
- Smart "most complete" keep strategy — instead of blindly keeping the first duplicate, keeps the record with the most filled-in fields and back-fills its empty fields from the discarded duplicates. If one source had the email and the other had the phone number, the surviving record gets both.
- Field mapping — rename columns on the fly so
businessNameandcompany_namebecome onenamecolumn before merging. - Handles big datasets — streams input in batches; fuzzy mode supports blocking (e.g. only compare rows within the same zip code) so 100k-row jobs stay fast.
Input example
{"datasetIds": ["abc123", "def456", "ghi789"],"dedupeFields": ["name", "address"],"matchMode": "fuzzy","fuzzyThreshold": 85,"blockingField": "zipCode","fieldMapping": { "businessName": "name", "company_name": "name" },"keepStrategy": "mostComplete"}
Output
One clean dataset, plus a SUMMARY record in the key-value store:
{"datasetsMerged": 3,"rowsIn": 48210,"duplicatesRemoved": 9384,"rowsOut": 38826,"rowsWithoutDedupeKey": 112,"matchMode": "fuzzy","keepStrategy": "mostComplete"}
Common use cases
- Lead lists — dedupe by
emailorphoneacross scraped sources before importing to your CRM. - Local business data — merge Google Maps + Yelp + directory results; fuzzy match on
name+address, block byzipCode. - E-commerce — dedupe product listings by normalized title or SKU.
- Job postings — collapse the same posting syndicated across multiple boards.
Tips
- Start with
normalizedmode. Switch tofuzzyonly if you can see near-duplicates surviving. - In fuzzy mode on large datasets, always set
blockingField(zip, city, domain...). It dramatically speeds up the run without hurting accuracy. - Dot notation works everywhere fields are referenced:
contact.email. - Rows where all dedupe fields are empty are never merged with each other — they pass through untouched and are counted in
rowsWithoutDedupeKey.
Pricing
Pay-per-result: billed per row in your cleaned output dataset. Duplicates removed along the way are processed free — you only pay for the clean rows you keep. Cleaning a 50,000-row lead list down to 38,000 unique records costs about $19 — a rounding error compared to the value of the list.
