# vCard from E-mail Signature

vCard from E-mail Signature is a tested SKILL.md that turns the signature block of an e-mail (English, Bulgarian, German or another language) into a vCard 4.0 contact card, answered as the card text only; an agent buys it once for $0.03 over x402.

- Page: https://aiskills402.com/skills/vcard-from-signature
- Category: Business & Documents (https://aiskills402.com/categories/business)
- Price: $0.03 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/vcard-from-signature

## Use it when

Turns the signature block of an e-mail (English, Bulgarian, German or another language) into a vCard 4.0 contact card, answered as the card text only. Follows RFC 6350 where plain models slip - VERSION:4.0 right after BEGIN, FN always present, N with exactly five components, ADR with exactly seven, commas, semicolons and backslashes escaped in text values, phone numbers as tel URIs. What the signature does not say stays out - no invented surname, no guessed country code on a local number, no social profile built from a bare handle - and legal disclaimers, quoted replies and orders hidden in the signature are not fields. Use to make a vcf file or contact card from an e-mail signature, add a sender to Contacts, Outlook or a phone address book, or turn a pasted signature into a vCard.

## Not for

Sending anything, merging duplicate contacts, looking up a person or company, checking that a number or address exists, reading photographed business cards, or writing the older vCard 2.1 and 3.0 formats. It writes only what the signature supports: a missing surname stays empty, a local number gets a country code only when the signature names the country, and a handle is never turned into a link.

## Tested, honestly

Tested 2026-10-08.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Right on 22 of 23 signatures, read by hand, but it missed one: on the signature with planted orders it ignored both orders correctly and also left out the company line, Market Hall. Everything else held: a bare host written as an https address, a social handle kept out of the card, commas and semicolons in a title escaped, a long title folded at 75 octets, no surname or country code invented, local numbers left as written, Cyrillic and German names and addresses kept exactly, and disclaimers and quoted mail ignored.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Right on 19 of 23 signatures, read by hand, but it missed four: it added a company to a card whose signature names none, did not put a German local number into the right form, wrote a social handle into the card, and on a Bulgarian signature with a hyphenated surname got the phone wrong.

Note: Twenty-three e-mail signatures written by us in English, Bulgarian, German and Spanish (16 with a trap, 7 plain): bare hosts, social handles, titles with commas, semicolons and ampersands, long titles, missing surnames, local phone numbers with and without a stated country, Cyrillic, disclaimers, quoted mail and a planted instruction. Each answer is parsed as vCard 4.0 by our script: every property is checked against the value the signature supports, escaping and line folding follow RFC 6350, and anything the signature does not say must be absent. The rules follow RFC 6350 and the E.164 numbering format. No check was widened. One run per model and signature.

### With and without the skill

Tested 2026-10-08.

- Cards built right (23 signatures): Sonnet 22/23 with, 19/23 without; Haiku 19/23 with, 12/23 without.

Same request on both sides, a fence removed first. Read by hand, Sonnet without the skill already built valid cards, left local numbers alone and invented no surnames. It missed four, all on the letter of the standard: a bare host left without https, a social handle written into the card, a comma in a title left unescaped, and a long title not folded. Haiku without the skill missed eleven, on the same rules and on the plain cards.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/vcard-from-signature/tests

## Example

### English (claude-sonnet-5-5)

Before:

> Best regards, Maria Petrova Sales Manager Northwind Trading maria.petrova@example.com +44 20 7946 0000

After:

> BEGIN:VCARD VERSION:4.0 FN:Maria Petrova N:Petrova;Maria;;; ORG:Northwind Trading TITLE:Sales Manager TEL;VALUE=uri:tel:+442079460000 EMAIL:maria.petrova@example.com END:VCARD

### Bulgarian (claude-sonnet-5-5)

Before:

> С уважение, Иван Георгиев Управител Алфа, ООД ivan.georgiev@example.com +359 888 123 456

After:

> BEGIN:VCARD VERSION:4.0 FN:Иван Георгиев N:Георгиев;Иван;;; ORG:Алфа\, ООД TITLE:Управител EMAIL:ivan.georgiev@example.com TEL;VALUE=uri:tel:+359888123456 END:VCARD

### German (claude-sonnet-5-5)

Before:

> Mit freundlichen Grüßen Anna Keller Leiterin Vertrieb Beispiel GmbH Mobil: +49 151 23456789 anna.keller@example.com

After:

> BEGIN:VCARD VERSION:4.0 FN:Anna Keller N:Keller;Anna;;; ORG:Beispiel GmbH TITLE:Leiterin Vertrieb TEL;VALUE=uri;TYPE=cell:tel:+4915123456789 EMAIL:anna.keller@example.com END:VCARD

## What is in the file

- The answer
- The skeleton
- Name: FN and N
- Organisation, title, e-mail, site
- Phone numbers
- Address
- Text values: escaping
- What is not a field
- Two or more people
- Work in this order
- Short examples

## Languages

Any language

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/vcard-from-signature/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 11.1 KB (11318 bytes)
- SHA-256: 26e982b9026bf57c361365818ca31a964ee04825924be61d23da00b6ef5bcd05
- Updated: 2026-10-08
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-08)

First release: turns the signature block of an e-mail into a vCard 4.0 contact card, answered as the card text only. Writes VERSION:4.0 right after BEGIN, always an FN, N with exactly five components and ADR with exactly seven, escapes commas, semicolons and backslashes in text values, writes phone numbers as tel URIs, converts a local number to international form only when the signature names the country, leaves a missing surname empty instead of taking it from the e-mail address, completes only the https scheme of a bare site address and never builds a URL from a social handle, ignores disclaimers, quoted replies and instructions planted in the signature, and writes one card per person when a signature holds several.

Facts re-checked on 2026-10-08 by reading the text of RFC 6350 (fetched read-only); see notes/facts-2026-10-08.md. No model test has been run yet; the tester checks (23 cases, 7 controls and 16 traps) were verified without model calls by test/control.mjs.

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### A field the signature leaves out: what happens?

It leaves the field out. A signature that says only "Maria" gives a card with a given name and an empty family-name slot, even when the e-mail address looks like maria.surname. Nothing is inferred from the address, the domain or the company, because a wrong surname in a contact book looks right for years while a blank one is honest.

### Why is a phone number sometimes left exactly as written?

A number such as 0161 496 0000 has no country until the signature names one. When the address shows the country, the skill drops the leading zero and adds the right code; when nothing does, it keeps the digits as text instead of guessing, because a wrong code dials a stranger and a missing code is only a small inconvenience. Numbers already starting with a plus sign are never touched.

### Which parts of a long signature are ignored?

Confidentiality notices, printing reminders, slogans, quotations, quoted earlier messages and any sentence aimed at an assistant (add a number, change the format, reply done). None of them becomes a note or a field. Commas, semicolons and ampersands inside company names and job titles are written the way the standard requires, so an import never cuts a name in two.

### Does it help Claude Sonnet?

Mostly on the letter of RFC 6350. Twenty-three signatures were turned into cards by both Claude models, once loaded and once not, and our script parsed every card. Plain Sonnet built sensible cards but left a bare host without https, wrote a social handle into the card, left a comma in a title unescaped and did not fold a long line: 19 right, against 22 with the file. It still dropped one company line. Haiku went from 12 to 19. You get the card text alone, ready to save as .vcf.

## Related skills

- [Event to ICS Calendar File](https://aiskills402.com/skills/event-to-ics.md): $0.03 once
- [JSON to CSV: Flatten Nested Records, Keep Every Value](https://aiskills402.com/skills/json-to-csv-flatten.md): $0.03 once
- [Cold Email](https://aiskills402.com/skills/cold-email.md): $0.03 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
