Turn a role or ICP spec into a ranked outbound sales list of LinkedIn prospects, each enriched with company context and a one-line personalized opener rationale. Use whenever the user wants prospects, leads, a target-account list, people to sell to, or personalized outreach angles, even if they only describe the buyer ("find me VPs of Sales at fintech startups") without saying "list" or "outreach". For a hiring shortlist use candidate-sourcing instead; for enriching prospects the user already has, use prospect-enrich.
Data & analysis
Prospect Enrichment
Try itEnrich a list of prospects (profile URLs, slugs, or names) with LinkedIn role and experience data via Veezee. Use when the user wants current titles, companies, or work history for known people, or asks to "enrich" leads/prospects/candidates.
What it does
Enrich a list of prospects (profile URLs, slugs, or names) with LinkedIn role and experience data via Veezee. Use when the user wants current titles, companies, or work history for known people, or asks to "enrich" leads/prospects/candidates.
The skill document
Prospect enrichment with Veezee
Turn identifiers you already have (LinkedIn profile URLs, slugs, or names) into current role, company, and experience data. LinkedIn only; this skill covers no other platform.
Setup (one free key, no signup)
Every call needs an API key. Minting one is free and human-free: no signup, no card. A call without a key fails with KEY_REQUIRED (401) carrying mint_url; the fix is the free mint below, never a payment. A fresh vz_trial_ key runs under a free per-IP daily budget of 200 credits, cached data only, first page only on any cursor sequence. Two equivalent surfaces; pick whichever your environment has:
- MCP: add the server
https://mcp.veezee.io/linkedin(streamable-http;https://mcp.veezee.io/allexposes every tool). Hosts that support MCP authorization (Claude Code, claude.ai) open a Veezee sign-in on connect (email code, no password): that is the whole auth step. Other hosts: mint a key withPOST https://api.veezee.io/v1/keys/mint(empty body; the key is shown once) and put it in the connection'sAuthorization: Bearerheader. - SDK:
import { VeezeeClient } from "@veezee/sdk";const client = new VeezeeClient(); await client.mint();mints and stores the free key the first time and reuses it on later runs. Platform methods live on the namespace (client.linkedin.getProfile/searchPeople/getCompany/getPosts);client.resolveUrlandclient.getUsageare top-level. The client sends retries and Idempotency-Keys for you. TheveezeeCLI (npx @veezee/sdk init) mints and stores the same key.
When the free budget or a trial cap runs out (TRIAL_CAP_EXCEEDED, INSUFFICIENT_CREDITS, BUDGET_EXHAUSTED), the error carries upgrade_url (https://veezee.io/upgrade) and a machine-readable offer. Hand that link to your human; purchases credit the same key directly and it keeps working unchanged.
The loop, per prospect
- Classify the identifier.
- Clean profile URL, slug (the part after
/in/), or URN: go straight to step 2. Do not callresolve_urlon clean identifiers; it costs credits for nothing. - Dirty or ambiguous URL (trackers, redirects, shortened):
resolve_urlfirst, then use the returned handle. - Name only:
search_peoplewithkeywords(andcurrent_companyif known), then take the best match.
- Clean profile URL, slug (the part after
get_profilewithsections: ["experience"]. The first two sections are included in the base price; each section beyond two costs extra, four sections maximum.- Record
full_name,headline,current_position, and the experience entries. Every response carriesusagewith the exact credits charged.
Rules that save credits and errors
- A
search_peopleresult withis_anonymous: trueis a private profile.get_profilecannot dereference it. Treat the match as confirmed and move on; never retry. - Check the budget BEFORE a batch:
get_usageis free, exempt from the rate limit, and works the same on a trial or paid key. - Set
max_creditson calls when running a large batch; a call whose quote exceeds it is rejected with nothing charged. - Default freshness is cached (usually a few hours old) and free.
freshness: "realtime"costs extra and needs a paid key (trial keys are cached-only and reject realtime with TRIAL_CAP_EXCEEDED); use it only when the user needs today's data. - A company known only by its website?
get_companyaccepts the domain directly (a new domain quotes extra for verified resolution; known domains settle at the base price). - On KEY_REQUIRED, mint the free key and retry the same call; it is never a payment problem. On TRIAL_CAP_EXCEEDED, INSUFFICIENT_CREDITS, or BUDGET_EXHAUSTED, stop the batch and give the error's
upgrade_urlto your human; purchases credit the account directly and the same key keeps working afterward. - A 403 NOT_ENTITLED means the key's account is not enabled for this platform; grants are explicit, write to hello@veezee.io to enable more.
Output
Report per prospect: name, current title, current company, and the two most recent experience entries. Include total credits spent (sum the usage.credits_charged fields) so the human can budget the next batch.
Related skills
Turn a LinkedIn profile URL into a full person profile plus a verified work email in a single call, powered by Cargo. Triggers: "enrich these LinkedIn profiles", "get details from this LinkedIn URL", "I have LinkedIn URLs and need emails", "enrich LinkedIn data", "who is this person", "contact enrichment", "linkedin enrichment", "get their headline and tenure", "pull the whole biography". Providers: aiArk. Skip when: you do not have the LinkedIn URL yet — use find-linkedin-url first; or you only have a name and domain — use find-work-email.
Enrich a list of companies (names, domains, or LinkedIn URLs) with firmographic data like industry, employee count, headquarters, and founding year. Use when the user wants to enrich, look up, or research a batch of companies.
Find LinkedIn candidates matching a role spec, shortlist them, and enrich the shortlist with current role and experience. Use when the user wants to source, find, or search for candidates, talent, or people matching criteria like title, school, or current/past employer (e.g. "engineers at Shopify who used to work at Amazon").
Looks up LinkedIn company, product, and showcase pages by ID via the Crawlora API, returning clean JSON. Use when the user wants a company's LinkedIn profile info, a product page, or a showcase page — instead of scraping LinkedIn directly. Covers company/product/showcase pages only, not personal LinkedIn profiles.
Optimise a LinkedIn profile to be found and to convert. Use when asked to write or improve a LinkedIn headline, About section, or profile, or to make a profi...