Business Card Photo Extraction

Extract Names, Titles & Contact Info from Any Business Card Photo

Manually typing contact data from a photographed business card into a spreadsheet takes 2-3 minutes per card — this reads it in 5 seconds.

5s per card · Up to 99% accuracy on printed text

Name · Title · Company
Phone · Email
Batch Process
Any Card Design

What You Can Pull from a Business Card Photo

Custom Column Extraction lets you name the fields — the AI locates each one by what it means, not where it sits.

Name

Largest text on the card, position varies by design. The AI finds it by meaning, not coordinate.

Company

Organisation name near the logo. Semantic extraction reads label context to tell company from tagline or address.

Title

Job title below the name, often in smaller type. The AI tells it apart from company by recognising it as a role.

Phone

Cards may list mobile, office, and fax. Define Phone 1 and Phone 2 — the AI maps each by label ("M", "O") or position.

Email

Some cards list two addresses. The AI routes each to Email 1 and Email 2 by recognising the format — no data lost in a merged block.

No Two Business Cards Share the Same Layout — But the Fields Are Always the Same

A business card is designed to make an impression, not to follow a fixed column order. Traditional OCR reads everything as a block of text. Semantic extraction reads each field as the thing it represents.

Why Traditional Tools Struggle

01

Layout-free design breaks position-based extraction. Zonal OCR needs a rectangle drawn where the name sits. On the next card the name is elsewhere. Every design needs a new config.

02

Multiple contact channels on one card. Mobile, office, fax, two emails, LinkedIn, WeChat — traditional OCR dumps them into one text block. Sorting takes manual work on every card.

03

Glossy stock and angled photos degrade OCR. Cards are designed to look good, not to be scanned. Glossy finishes reflect. Trade-show photos are rarely front-on. Traditional OCR expects flat, high-contrast text — real-world conditions produce scrambled output.

How Semantic Extraction Reads Any Card

01

Name the columns — AI finds values by meaning. Type "Name, Company, Title, Phone, Email". The model knows what a name looks like and what a phone pattern is — it locates each one regardless of position.

02

Disambiguate contacts with named columns. Define "Phone 1, Phone 2, Email 1, LinkedIn". The AI reads label prefixes ("M" vs "O"), icons, or URL domains to route each value to its column.

03

Visual context handles glare and angle. The model reads through reflections and distortion because it understands the concept of a name or a phone number — it does not need perfectly sharp characters. As one Reddit user put it, "the biggest issue wasn't scanning them — but getting them cleanly into Excel." Semantic extraction closes that gap.

From a Stack of Photographed Business Cards to a Clean Spreadsheet in Three Steps

1

Photograph the Cards

You are back from a conference with a stack of 30-50 business cards. Snap photos of each one with your phone — JPG or PNG. Some are glossy, some have tiny fonts, a few were taken at an angle in the dim light of the venue. Upload them all at once into a single batch. No need to sort by card design, lighting condition, or language.

2

Name the Fields Once

Type the column names you need: Name, Company, Title, Phone, Email. If a card has two numbers, add Phone 2 — the AI maps each number by its label context. The same column set works for every card in the batch, regardless of how different their designs are. You do not configure per-card templates or draw extraction zones.

3

Download a Single Spreadsheet

Processing takes about 5 seconds per card. The output is one XLSX file: each row is one business card, each column is one field you named. Cards from the event in rows 1-35, a business card you received at a meeting in row 36, all in the same table. Roughly 18x faster than opening each photo and typing the details by hand (~2-3 min manual per card vs ~5s here).

When It Works Best — and When to Be Cautious

When It Works Best

Straight-on photos, even light. Card flat on a table — up to 99% accuracy on printed text.

Standard printed fonts. Read by semantic role, not pixel-perfect OCR.

Mixed card designs in one batch. Different layouts, same column set.

When to Be Cautious

Extreme angles, glare, or heavy shadows. Reduce accuracy. Photograph cards flat under even light.

Ornamental fonts, foil stamping, tiny decorative text. Standard contact fields use readable fonts. Decorative text may not extract.

Text overlaid on photographic backgrounds. Full-bleed images reduce contrast. Semantic extraction helps, but very low contrast makes some fields harder.

Visible data only — no external enrichment. The tool extracts what is printed on the card. It does not validate email addresses or cross-reference company names against registries.

Frequently Asked Questions

Will the AI still read Name and Phone correctly from a glossy card photographed at an angle?

A straight-on, evenly-lit photo yields up to 99% accuracy. Angled shots and glare reduce that, but the model still outperforms traditional OCR — which can lose 30-40% accuracy at a 15-degree skew. The model reads through reflections by understanding what a name looks like as a concept. For critical contacts, photograph the card flat on a table.

Can I extract non-standard fields like a LinkedIn profile or WeChat ID?

Yes. Type the column names you need — LinkedIn, WeChat, Department, Website — and the AI reads each one by its surrounding label context. Custom Column Extraction works by semantic understanding: if you can see it on the card and name it, the AI can extract it.

A card has two phone numbers and two emails — will they land in separate columns?

Define Phone 1, Phone 2, Email 1, Email 2. The AI reads label prefixes ("M" vs "O") to route each value to its column. As a Reddit user in r/ios noted, many scanner apps produce "contact name getting tagged as company name" — field misclassification is exactly what semantic extraction avoids.

Can I mix business card photos with a receipt or shipping label in the same batch?

Yes. One column set covering all fields (Name, Company, Tracking Number, Amount). The AI reads each photo independently and fills only what appears on that document type. Cards contribute Name; the label contributes Tracking Number. Template-based tools require a separate configuration per document type.

Two phone numbers without labels — how does the AI assign them?

The AI uses positional cues: the number nearer the name is typically mobile, the one near the company logo is usually office. For guaranteed assignment, include a rule in your column like "Phone (Mobile)" vs "Phone (Office)" — the AI reads the semantic context of each number's placement. Reviewing one record per unknown card design takes seconds.

📮 contact email: [email protected]