Inspiration

Freelancers, small business owners and B2B sales or marketing teams collect dozens of business cards at every event. The cards end up as phone photos. Retyping them takes hours, contacts get duplicated, and cloud card-scanner apps send personal data to third parties without clear consent tracking.

What it does

card-to-lead-ledger is a Uliya Skill that turns business card and event badge photos already stored on a UGREEN AI NAS into a private, deduplicated CSV lead ledger ready for CRM import. Every row links back to its source photo and carries a consent flag set to "unconfirmed", which supports privacy laws such as Malaysia's PDPA.

Example: "Turn the cards from Expo KL, 12 to 14 November, into a lead list in /nas/leads." The Skill finds the card photos, reads them, previews the counts (rows, low-confidence rows, duplicates, unreadable photos), asks for approval, writes the ledger and optionally tags the source photos "lead-captured".

How we built it

The Skill is Markdown only (SKILL.md plus a reference file) and follows the Uliya Skill Kit 0.7.3 structure. The parent Skill only orchestrates:

  1. photo-agent (ug-photo): card and OCR screenshot search within the user's scope.
  2. photo-agent (ug-photo): vision-ocr on each photo.
  3. Parent Skill: maps OCR text into fixed lead fields using rules in references/ledger-format.md. It never invents values and flags low confidence.
  4. document-agent (ug-document): reconciles leads against the user's existing contact list.
  5. file-agent (ug-filesystem): mkdir and write the ledger, with approval and never overwriting.
  6. file-agent (ug-filemgr): optional tag-add-file on the source photos, with approval.

No scripts, credentials or external services. Card data never leaves the NAS.

Challenges we ran into

Keeping the Skill honest: no guessed emails or domains, no substitute photos outside the requested scope, and clear handling of every completion state (completed, failed, cancelled, waiting_user, waiting_approval).

Accomplishments that we're proud of

A privacy-first lead capture workflow with a full audit trail from each CSV row back to its photo, and duplicate checking against the user's own list.

What we learned

How the Uliya capability catalog maps CLIs to expert agents, and how to design approval gates around write and tag actions.

What's next for card-to-lead-ledger

NAS testing of card search recall, OCR quality on glossy cards and reconcile behaviour on CSV contact lists, then multi-language card handling.

Disclosure

Third-party components: none. AI tools used: Claude (Anthropic) assisted with drafting and structuring the Skill; workflow design and review by the author.

Built With

Share this project:

Updates

Submission history