MoltSets is a contact-data API. You give it a name, a LinkedIn URL, or a company, and it gives you back verified emails, carrier-verified mobile numbers, firmographics, and hashed identifiers for ad audiences. It also runs as an MCP server, so you can wire it straight into Claude and work in plain English.
That last part is where the idea for the library came from. The result is library.moltsets.com, a set of 39 (and growing) pre-built Claude Skills that you drop into Claude and run. This is the story of how it got there, and the decisions I made along the way.
The blank-prompt problem
When you connect an MCP server to Claude, you get a set of tools. For MoltSets that means things like search_people, linkedin_to_best_email, and search_business_email_by_name, alongside a dozen others. All of that capability is real, and it still lands you in front of a blank prompt. The tools are available, and you have to know which one to reach for, what order to chain them in, and how to recover when a lookup comes back empty.
Take a task people ask for constantly: you have a list of names and companies, and you want business emails. The reliable way to do it is a waterfall. Search for the person, confirm you have the right match, pull their LinkedIn profile, request the best email, and fall back to a personal email when the business one is missing. That is four or five steps with a judgement call at each one. Anyone who works with the API every day runs the pattern without thinking. Someone opening a fresh chat has no way of knowing it exists.
I kept writing that pattern out for customers. Same waterfall, same guardrails, slightly reworded each time. After enough repetitions the obvious move was to package it once and hand the package over.
The first three skills
Claude Skills are a good fit for this. A skill is a folder with a SKILL.md file that tells Claude when to use it and how, plus any supporting files it needs. Claude reads the description, decides on its own that the skill is relevant, and follows the instructions inside. You are handing the model a recipe it can pick up when the moment calls for it.
I started with three, aimed at the jobs I was explaining most often:
- Find a Contact's Email. A single-person lookup by name and company. It finds the LinkedIn profile, then retrieves the business email, in about ten seconds.
- Enrich a Contact from LinkedIn. Take one LinkedIn URL, or a batch of up to 100, and return business email, personal email, or mobile.
- Find & Enrich by Name. Go from names and companies to full contact data with no LinkedIn URLs required. It searches, confirms the match, then enriches.
Each one encodes the waterfall, the credit pre-check, and the fallbacks I had been typing by hand. You drop the skill into Claude, describe what you want in plain English, and it runs the whole sequence with the guardrails already in place.
Packaging the skills taught me a small detail worth passing on. A skill ships as a zip, and I build them with ZIP_STORED, which stores the files uncompressed. Claude reads the contents of the archive directly, so storing rather than compressing keeps everything legible to the model. It is the kind of thing you learn by getting it wrong the first time and watching a skill fail to load.
Organise by outcome, not by endpoint
Once there were a handful of skills, the question was how to present them. API documentation is organised the way API docs usually are, by endpoint. That structure serves developers well and does very little for everyone else. A growth marketer who wants an ad audience has no interest in which endpoint hashes an email address. They want the audience to come out the other end, ready to upload.
So the library is grouped by outcome. Today there are four:
- Get verified emails and carrier-verified mobile phone numbers. Turn names and profiles into contactable data.
- Find new prospects. Build lists of people who match your ICP by company, domain, industry, or size.
- Build an ad audience for Meta, Google, TikTok, and more. Turn emails and profiles into SHA256-hashed audiences and mobile ad IDs.
- Turn website visitors into pipeline. Resolve raw IPs or RB2B exports into outreach-ready contacts.
You pick the result you are after and the skills that produce it are right there. Underneath, they call the same MoltSets tools the API docs describe. The framing on top matches the way a sales or growth person actually thinks about their day. Each skill also carries a difficulty label (easy, intermediate, or advanced) and a note on what it connects to, whether that is plain Claude chat, a CSV, Google Sheets, Excel, or an RB2B export. Someone can scan a category and know in a second whether a skill fits their setup.
Opening it up to contributors
The three starter skills covered the core enrichment jobs. The workflows I found most interesting were the ones people were already building on top of MoltSets, the chains I would never have thought to write.
The featured slot on the home page is a good example: LinkedIn Thought Leader Expansion, by Alex Fine. It scrapes a thought leader's posts, enriches everyone who reacted, filters the list down to your ICP, then finds verified emails for the people who remain. That is a genuinely sharp piece of work, and it came from someone using the product in the wild rather than from me.
So the library became a home for community skills as well as my own. Submissions run through a public GitHub repo. You fork it, add your skill folder with its SKILL.md, and open a pull request. Once it is merged, the skill appears in the library with your name attached and a link to your own contributor page, which lists everything you have submitted. The attribution is part of the point. If you build something good, your name travels with it.
The RB2B skills show the range this makes possible. I work on RB2B as well as MoltSets, so I wrote a set that bridges the two products: Enrich RB2B Visitors, RB2B Intent Triage, RB2B Companies to Contacts, and RB2B Non-ICP to ICP Contacts. They take an RB2B export of identified website visitors and turn it into an enriched, prioritised outreach list. Those sit in the library under my name in exactly the same way any contributor's skills sit under theirs.
Every page gets a proper share card
A piece of the build that took more effort than I expected: Open Graph images. Every skill page and every contributor page has its own social card, so a link dropped into Slack or posted on LinkedIn renders with a title, the author, and consistent branding rather than a bare URL.
Hand-designing a card for 39 skills and a growing list of contributors was never realistic. The images are generated automatically instead. Each card is produced from the page's own metadata, the skill name, the author, and the category, so a new contributor page arrives with a matching share image the moment the pull request is merged. There is no manual step and no image that goes stale when a title changes.
This carries more weight than it first appears to. A library only grows if people share the skills inside it, and sharing only works when the links look like something worth opening. Getting the share cards right is part of getting the distribution right, and distribution is what turns a folder of skills into a library people actually reach for.
Where it is now
The library sits at 39 skills across seven categories, spanning enrichment, prospecting, IP intelligence, identity resolution, and ad audiences. Some are mine and some are the community's, and the balance keeps tipping towards the community. That is the direction I want it to keep moving.
The through-line for the whole project is straightforward. MoltSets can do a great deal, and most of that capability is gated behind knowing the right sequence of calls. A skill captures one sequence so that anyone can run it by describing the result they want. The library is where those captured sequences live, and where anyone can add their own.
If you use MoltSets, the quickest way in is to pick your outcome and grab the matching skill. If you have built something good on top of the API, the repo is open and I would like to see it. Come and submit a skill.