pipecorn
pipecorn.
Pipecorn — a person's mobile phone or work email (asynchronous: submit, then
setup & usage
⚠ a Pipecorn API key
create a key in Pipecorn (Settings → API keys) and paste it into oto. Reference: Pipecorn authentication.
pc_test_…) answers every lookup with sample data and spends nothing: a good way to try the connector before your live key▸ a phone, an email, a profile, a company
pipecorn(...) submits it and answers at once with an enrichment_id; pipecorn(op="result", enrichment_id=…, find=[…]) reads it (free) — done: false while Pipecorn is still looking, read again a few seconds later (usually under a minute)pipecorn(find=["phone"], linkedin_url="https://www.linkedin.com/in/jane-doe/", phone_type="mobile"), then op="result"pipecorn(find=["email"], linkedin_url=…), or without a profile pipecorn(find=["email"], firstname="Jane", lastname="Doe", domain="acme.com")find=["email", "phone"]: one lookup, each result billed when foundphone_country_codes=["FR", "BE"]pipecorn(op="credits"): credits.enrichment is what lookups spendpipecorn(op="person", linkedin_url=…): current title and company (with its domain), past positions, tenure — no email nor phonepipecorn(op="company", domain="acme.com"): industry, headcount and its growth, department headcount, revenue range, headquarters, funding, web trafficpipecorn(op="stack", domain="acme.com"): technologies with a confidencepipecorn(op="jobs", domain="acme.com", job_title_keywords=["sales"], job_country_codes=["FR"], limit=20): open postings with their hiring team — billed per job, so bound limitwaterfall_phone and waterfall_email (submitted and read for you, up to 20 s, then your other providers), and a step of waterfall_person, waterfall_company, waterfall_tech. Their table modes (op="update_rows") leave the asynchronous phone and email lookups out· what can mislead
pipecorn_credits says what a lookup cost, and reading a result again costs nothing morewaterfall_email and waterfall_phone, a Pipecorn lookup still running after its 20 s is read once more at the end: an email or a mobile it finds is billed even if another provider found firstfind=["personal_email"] is refused, whatever the key; the profile, company and job lookups come without any email or phonefind to op="result" as to the submission: only what was asked is countedfailed when the credits ran out while it ran: nothing found, nothing billedphone_status: "not_found"+: no country is guessed for itphone_type="mobile" keeps looking until a provider has a mobile and drops landlines; without it, a landline can come back, unbilled"Contacts not shared", not a number⚙ multiple comptes
this connector accepts multiple comptes: each stored credential becomes a named account (one name per compte), at your level, your team's or your org's.
_account="<name>" on the tool; list them: oto_identity(op='list', connector='pipecorn') (scope='org' or scope='group' for the org's or team's)oto_identity(op='set', connector='pipecorn', identity_id='<name>'); rename: op='rename' with new_name_account) and adding upoutils
chargement…
utilisation
claude code — installe le plugin oto —
claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configurés.cli —
pipx install oto-cli puis oto pipecorn …