Business Card OCR
Extract editable contact fields from a PNG/JPG business card in your browser.
Supported formats: PNG and JPG. Printed cards and common layouts work best.
Ready with an example contact; upload a card or edit the fields below.
vCard download
CSV download
Contacts JSON
Business Card OCR — Privacy-first, Client-side Business Card Scanner
One-line tool description
Performs client-side extraction of name, title, company, phone, email and address from a single PNG/JPG photo. Export formats: vCard 4.0 (RFC 6350), CSV (RFC 4180 guidance), or contacts-ready JSON.
Quick 3-step usage
- Upload a photo (one-shot): take or choose a PNG/JPG of the printed business card.
- Confirm & edit: quick field-edit UI shows parsed Name, Title, Company, Phone, Email, Address and conservative dedupe suggestions. Edit any field before export.
- Export: download a vCard (RFC 6350 v4.0), CSV (RFC 4180 style), or contacts-ready JSON.
How it works — key principles & formulas (concise, traceable)
- Text normalization: OCR text is normalized using Unicode NFKC, trimmed, interior whitespace collapsed, and control/invisible characters removed before parsing (Unicode TR15). Comparisons are done in lower case while the original case is preserved for display.
- Email rules: trim and NFKC-normalize. For storage: lowercase domain part; preserve local-part case for display. Client-side validation requires exactly one '@', domain contains at least one dot ('.'), and top-level domain label length >= 2 — otherwise mark for review (based on RFC 5322 guidance).
- Phone rules: numbers are normalised with built-in pattern matching (this tool does not bundle an external phone library). Separators, parentheses and dashes are removed while a leading '+' is preserved. Heuristics: replace leading '00' with '+' if present; store ambiguous national numbers as "needs review". Valid numbers are formatted to E.164 ('+{countrycode}{national significant number}'), respecting E.164 maximum of 15 digits (ITU‑T E.164). Extensions are preserved in vCard per RFC 6350 examples.
- Address (ADR) rules: keep original formatted address as label; attempt conservative component split for ADR fields: street; locality; region; postal-code; country. For low-confidence parses (single-line or international ambiguity) surface full label for user edit (vCard ADR per RFC 6350).
- vCard & CSV output: produce vCard VERSION:4.0 with FN, N, ORG, TITLE, TEL, EMAIL, ADR where available (RFC 6350). CSV follows RFC 4180 quoting and includes header: Full Name, Given Name, Family Name, Title, Company, Email, Phone (E.164), Street, Locality, Region, PostalCode, Country.
- Deduplication / similarity scoring (conservative defaults):
- Exact match on E.164 phone or exact email -> definite duplicate (score = 1.0).
- Email local-part similarity + domain exact match -> high confidence (score >= 0.95).
- Name similarity via a character-overlap score + normalized company equality -> medium/high confidence. Threshold used by this tool: a name score of 0.88 or above together with a matching company is flagged as a possible duplicate (show for user confirmation). Names are NFKC-normalised, lower-cased and stripped of punctuation before similarity checks.
- When confidence is below threshold, surface suggestion but do not auto-merge; require user confirmation.
- Failure / edge handling: empty or punctuation-only fields treated as missing or suspicious and surfaced for edit. Phone digits > 15 or non-digit residues after cleaning -> mark invalid and store raw text for manual correction.
FAQ
Q: How accurate is the OCR on business cards?
A: Client-side OCR is optimized for printed cards and common layouts — especially clear, high‑resolution photos. Handwritten text or highly unusual layouts are less reliable; advanced multilingual or handwritten parsing is available later as an opt‑in server feature.
Q: Does this tool keep or upload my card images?
A: By default all parsing runs client-side in your browser; images are not uploaded. Advanced parsing (multilingual/handwritten) can be offered as an opt‑in server feature and will only run if you explicitly enable it.
Q: What fields are extracted and what export formats are available?
A: Extracted fields: Name, Title, Company, Phone, Email, Address. Exports: vCard 4.0 (RFC 6350), CSV (RFC 4180 guidance), or contacts-ready JSON.
Q: How does deduplication work and can I review matches?
A: Deduping uses conservative similarity rules: exact phone/email matches = definite duplicate; email/name similarity above a threshold = suggested duplicates. Matches are shown to you for review — nothing is merged without your confirmation.
Q: Which countries and phone formats are supported?
A: Phone numbers are formatted to E.164 with built-in pattern matching. Valid international numbers are formatted to E.164 (leading '+' and up to 15 digits). If country code is missing, the app flags the number as ambiguous for review.
Q: Can I edit parsed fields before saving or exporting?
A: Yes. A quick field-edit UI surfaces every parsed field so you can correct OCR mistakes before export.
Q: What if OCR gets the text wrong?
A: You can manually edit fields; for better OCR results, retake photos with even lighting, higher resolution, and a flat single-card background. If parsing still fails, use the manual-entry flow.
Q: Is handwritten text supported?
A: Not in the default client-side mode. Handwritten and advanced multilingual parsing are planned as opt-in server-side features for users who explicitly enable upload.