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.
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.
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 with a strong and a weak model.
With and without the skill
Results with and without the skill, for Sonnet and Haiku |
| with | without | with | without |
|---|
| Cards built right (23 signatures) |
| Cards built right (23 signatures) | 22/23 | 19/23 | 19/23 | 12/23 |
|---|
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.
- SonnetStrong model, claude-sonnet-5-5
- 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.
- HaikuWeak model, claude-haiku-5-5
- 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.
Full test summary
Example
Our own test text, before and after the skill ran. Excerpts only.
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. Tried in: English, Bulgarian, German.
License
Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.
Versions
Current version 1.0.0, updated 2026-10-08. Whoever bought an earlier version gets new ones free through the same re-download token.
v1.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.
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.