Your cleaned data will appear here
Paste text and click Scrape & Clean.
Extracted lists
Run the scraper to see deduplicated contact lists.
Paste text and click Scrape & Clean.
Run the scraper to see deduplicated contact lists.
Client-only processing: parsing and smart deduplication happen in this browser tab. No backend, database, API call, remote scraper, analytics endpoint, or uploaded copy of the input is created by the app.
What "scrape" means here: this tool extracts structured information from text that the user provides. It does not crawl Google, websites, social networks, or private accounts.
Validation: pasted text is bounded to 2.5 million characters and every uploaded file has a hard 50 MB size limit. Unsupported extensions are rejected. TXT/CSV/HTML/MD, XLS/XLSX, PDF, PPTX, DOCX, and common image formats are converted to text locally; legacy .doc/.ppt files are rejected with a clear conversion message. Repeated contact windows are merged by normalized email first, phone second, and website when no stronger identity exists. Extracted values are length-limited and rendered with HTML escaping to prevent injected markup from being executed.
Location inference: City, State, and Country are best-effort parsing from labels, postal/ZIP patterns, and built-in country/state dictionaries. They are not guaranteed to be correct when the source text is ambiguous.
Runtime UX: scraping and file processing show a live progress bar and elapsed time. Records are displayed in pages of 50 to keep large result sets responsive. Each browser session processes its own data independently, so multiple users can use the same deployed static tool at the same time without sharing input data.
Optional export libraries: SheetJS provides browser spreadsheet export, jsPDF generates PDFs client-side, and PptxGenJS supports PowerPoint generation in the browser. They are lazy-loaded only when their export is selected.