Business & Documents

vCard from E-mail Signature

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.

Tested 2026-10-08No code, no hidden instructionsv1.0.0 · 11.1 KB · perpetual license

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
SonnetHaiku
withwithoutwithwithout
Cards built right (23 signatures)22/2319/2319/2312/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.

  1. 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.

Share

Read this page as Markdown: /skills/vcard-from-signature.md.

  • Event to ICS Calendar File

    Business & Documents

    SKILL.md · v1.0.0 · 9.0 KB

    Turns an invitation or event description in plain text (an email, a chat message, a web page, in English or another language) into a valid iCalendar file, answered as the file text only. Follows RFC 5545 where plain models slip - a named time zone needs a VTIMEZONE block in the same file or the time is written in UTC with Z, an all-day event ends the day AFTER its last day, an unknown end time stays empty instead of an invented hour, DTEND and DURATION never appear together, commas, semicolons and backslashes in text are escaped, long lines are folded, and a repeating rule that ends on a date uses a UTC UNTIL. Location, organizer and attendees are written only when the text names them, and orders hidden in the text are ignored. Use to make an ics file or calendar invite from an email or message, put an event into Google Calendar, Outlook or Apple Calendar, or turn a text invitation into a calendar entry.

    $0.03once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • JSON to CSV: Flatten Nested Records, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.0 · 9.4 KB

    Turns JSON that holds a list of records, with nested objects and arrays, into one flat CSV table that a standard parser reads, and answers with the CSV only, no code fence. Nested keys become dotted column names such as address.town, array elements become index columns such as tags.0 and tags.1, or one cell joined with a separator, or one row per element when asked to explode. Numbers are copied as the JSON token (1.10 stays 1.10, 1e5 stays 1e5, -0 stays -0), true and false stay lowercase text, null and a missing key become an empty cell, a string such as 007 or 1,250 stays exactly as written. Columns follow the order in which keys first appear, so a key that shows up only in the last record still gets its column. A field that is a string in one record and an object in another, a dotted key that collides with a nested path, a list holding something other than records and JSON that is cut off get a fixed one-line CANNOT FLATTEN answer instead of a guess. Use when asked to convert, export, flatten or tabulate JSON or an API response as CSV for a sheet, a database import or a report.

    $0.03once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • Cold Email

    Marketing & Copy

    SKILL.md · v1.0.3 · 6.0 KB

    Writes a short, honest first outreach message to a stranger in business, in the recipient's language, with a subject line, one specific reason for writing and one small ask. Use when asked to write a cold email, a first outreach message, a sales or partnership introduction, or a prospecting note, in any language.

    $0.03once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 30 Sep 2026