Skip to main content
This page documents the Model Context Protocol (MCP) tool surface. Each tool’s input schema is generated directly from the server, so the parameters listed here are exactly what the MCP tools/list handshake exposes to your assistant. 36 tools are registered.

Error behavior

Errors are uniform across every tool:
  • Invalid arguments (wrong type, malformed payload) return a tool error (isError: true) with a message prefixed invalid arguments:. The call is not billed.
  • Internal failures return a tool error with a generic message; details are logged server-side and not exposed to the caller.
  • A tool error is delivered as a normal MCP result with isError: true (not a transport-level failure), so the assistant can read the message and recover.
Parameters not listed as required are optional. Where a default is shown, omitting the parameter applies that default.

add_companies_to_key_accounts

Add one or more companies to Key Accounts. This must be done before any deep-research tool can be called on a target company. Costs 1 credit per newly-added company; companies already in Key Accounts are not re-charged. Use a search tool (search_companies_by_name, search_companies_by_filters, etc.) first to obtain LinkedIn IDs. Call skill_research_key_account first to learn the full research workflow and the asynchronous nature of the generated outputs.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idsarray<string>requiredLinkedIn IDs of companies to add to Key Accounts. Resolve via search_companies_by_name first.
tagsarray<string>optionalOptional free-form tags to attach to newly-unlocked companies (e.g. ‘strategic’, ‘renewal-q2’). Omit if no tags.
tier_levelnumberoptional1 – 31Optional priority tier (1-3). Higher = higher priority. Omit if user has no preference (defaults to 1).

enrich_people

Enrich people with their professional email addresses and/or phone numbers. Identify people by LinkedIn URL (preferred), or by firstname + lastname + company domain. The domain field is required when enriching email addresses. Runs asynchronously: may return status="PENDING" — follow the next_action field. Call skill_find_people first to learn the recommended workflow. Costs 1 credit per email address and 10 credits per phone number. Maximum 100 people per request.
ParameterTypeRequiredAllowed valuesDefaultDescription
requestsarray<object>requiredList of people to enrich.
requests[] fields:
ParameterTypeRequiredAllowed valuesDefaultDescription
enrich_fieldsarray<string>requiredcontact.emails, contact.phonesFields to enrich: ‘contact.emails’, ‘contact.phones’, or both.
company_namestringoptionalCompany name (optional, improves accuracy).
customobjectoptionalOptional custom key-value pairs returned with results.
domainstringoptionalCompany domain (e.g. ‘tamtam.ai’). Required when enriching email addresses.
firstnamestringoptionalPerson’s first name.
lastnamestringoptionalPerson’s last name.
linkedin_urlstringoptionalLinkedIn profile URL (optional, improves accuracy).

extract_profile

Extract a person’s full LinkedIn profile and create a contact in the Tamtam account. Provide linkedin_url for a direct lookup, or any combination of identity hints (email, first_name, last_name, full_name, job_title, company_name, company_linkedin_id, free_text, context) to find the best matching person. Returns the full profile: name, headline, photo, location, experiences, and contact lists. Call skill_find_people first to learn when to use this vs. search_people. Costs 1 credit.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringoptionalLinkedIn numeric ID of the company (most precise company signal).
company_namestringoptionalCurrent company name (significantly improves matching accuracy).
contextstringoptionalFree-form supplemental context (e.g. meeting titles, CRM notes) used to disambiguate. Not a resolvable signal on its own.
emailstringoptionalEmail address of the person.
first_namestringoptionalFirst name.
free_textstringoptionalLoosely-structured input (e.g. ‘find John Doe at Google’ or a CSV row). Parsed automatically into the other fields.
full_namestringoptionalFull name (use when first/last are not separated).
job_titlestringoptionalCurrent job title (improves disambiguation).
last_namestringoptionalLast name.
linkedin_urlstringoptionalLinkedIn profile URL (e.g. ‘https://www.linkedin.com/in/john-doe’). When provided, used directly and other fields are ignored.

get_account_mapping

Fetch the account mapping for a target company: its parent company (if any) and its subsidiaries. Use this when the user wants to understand the target’s corporate structure, find related entities to approach, or expand the account footprint (e.g. “who owns them?”, “what are their subsidiaries?”, “are they part of a larger group?”). Call skill_research_key_account first to learn when to use this vs. the other research tools.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).

get_account_planning

Fetch the account planning for a target company (identified by its LinkedIn ID). Account planning gives a structured strategic view of the target: revenue, organizational structure, geographies, competitive landscape, goals & 3-5Y plan, business challenges & risks, strategic priorities, and news & industry trends. Resolve the LinkedIn ID with search_companies_by_name if you do not have it. Call skill_research_key_account first to learn when to use this vs. the other research tools.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).

get_companies_from_list

Retrieve companies inside a companies list, with custom-criteria column values inlined per company. Paginated. Use list_companies_lists first to discover available list IDs.
ParameterTypeRequiredAllowed valuesDefaultDescription
list_idstringrequiredUUID of the companies list to fetch companies from.
keep_obsoletebooleanoptionalfalseIf true, returns custom-criteria values that are obsolete (criterion definition changed since computation). Default false.
limitnumberoptionalMax number of companies to return.
offsetnumberoptional0Pagination offset (default 0).

get_company_job_changes

Fetch recent job changes at a target company (identified by its LinkedIn ID). Returns who joined the company (INCOMING), got promoted internally (PROMOTION), or left and where they went (OUTGOING). For large companies the unfiltered result can be long — narrow with change_type when the user’s intent is direction-specific (“who joined?” → INCOMING, “any departures?” → OUTGOING, “any internal promotions?” → PROMOTION) and tighten months_back when only the latest changes matter. Pair with get_company_job_postings for outbound hiring signals and with search_people for live org state. Resolve the LinkedIn ID with search_companies_by_name if you do not have it.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).
change_typestringoptionalINCOMING, PROMOTION, OUTGOINGOptional filter. One of “INCOMING” (joiners), “PROMOTION” (internal moves), “OUTGOING” (leavers). Strongly preferred whenever the user’s question is direction-specific, and especially for large companies where unfiltered results can be long. Omit only when the user explicitly asks for all activity.
limitnumberoptional≤ 20050Maximum number of job changes to return (default 50, max 200).
months_backnumberoptional1 – 32Number of calendar months back to include (1 = current + previous month, 2 = current + 2 previous months). Defaults to 2. Max is 3.

get_company_job_postings

Fetch recent job postings for a target company (identified by its LinkedIn ID). Returns postings ordered by posting date (newest first), with title, city, technologies, and a link to the original listing. Use this to surface hiring signals — team growth, tech-stack changes, geographic expansion, new role types — to inform outreach and meeting preparation. Full job descriptions are omitted by default to keep responses compact; set include_description to true when you need to inspect the body of the role (e.g. responsibilities, requirements). Resolve the LinkedIn ID with search_companies_by_name if you do not have it.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).
include_descriptionbooleanoptionalfalseIf true, include the full job description text for each posting. Defaults to false to keep responses compact. Set to true when you need the body of the role (responsibilities, requirements, etc.).
limitnumberoptional≤ 500100Maximum number of job postings to return (default 100, max 500).
sincestringoptionalReturn job postings posted since this RFC3339 timestamp (e.g. “2026-04-01T00:00:00Z”). Defaults to 30 days ago. Max lookback is 90 days.

get_company_news

Fetch recent news articles for a target company (identified by its LinkedIn ID). Returns articles ordered by publication date (newest first), with key points summarising each article and a per-account relevance assessment (whether the article matters for this customer’s sales opportunities, why, and concrete actionable insights). Use this to surface buying signals, fundraising, leadership changes, product launches, or strategic moves to inform outreach and meeting preparation. Resolve the LinkedIn ID with search_companies_by_name if you do not have it.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).
limitnumberoptional≤ 20050Maximum number of news items to return (default 50, max 200).
relevant_onlybooleanoptionalIf true, only return articles flagged as relevant to this account’s sales opportunities. Defaults to true. Set to false to also include articles whose relevance has not been flagged or assessed.
sincestringoptionalReturn news published since this RFC3339 timestamp (e.g. “2026-04-01T00:00:00Z”). Defaults to 30 days ago. Max lookback is 90 days.

get_company_past_discussions

Refresh and return a human-readable summary of the seller’s past discussions with a target company (identified by its LinkedIn ID): current/past deals, attendee history, engagement highlights, identified pains, objections, next steps, meeting tips, deal health, business case. Triggers an on-demand refresh first when the CRM has newer interactions than the stored summary; idempotent and a no-op when nothing has changed since the last run. Requires the seller’s CRM (HubSpot or Salesforce) to be connected; returns an empty summary when no engagements are recorded. Resolve the LinkedIn ID with search_companies_by_name if you do not have it.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).
max_age_daysnumberoptional30Force a refresh when the stored summary is older than this many days. Defaults to 30. Pass a smaller value when you specifically need very fresh data; pass a larger value to skip a refresh.

get_company_research_answers

Fetch the answers to the customer’s standing research questions for a specific target company. The set of questions themselves is account-wide (configured by the customer); this tool runs/retrieves their results for one given company. Each entry includes the question name, the question text, the run status, and the answers if available. Use this to get concrete, question-by-question insights about a specific company. Different from get_account_planning (broad strategic sections) and get_seller_questions (info about the customer themselves, not a target). Call skill_research_key_account first to learn when to use this vs. the other research tools.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).

get_contact_list_contacts

Retrieve all contacts inside a contacts list. Returns each contact’s identity, current experience, status, and the timestamp at which the contact was added to the list. Also returns contact_brief: AI-answered icebreaker questions per contact (may be empty if research has not yet been triggered from the UI for the contact’s company). Use list_contacts_lists first to discover available list IDs.
ParameterTypeRequiredAllowed valuesDefaultDescription
contacts_list_idstringrequiredUUID of the contacts list to fetch contacts from.

get_contact_past_discussions

Refresh and return a human-readable summary of the seller’s past discussions with a single contact (identified by its Tamtam contact UUID): engagement highlights, key topics, stated pains, objections, interests, sentiment, responsiveness, role signals, relationship history, next steps, talking points, and open questions. Triggers an on-demand refresh first when the CRM has newer interactions than the stored summary; idempotent and a no-op when nothing has changed since the last run. Requires the seller’s CRM (HubSpot or Salesforce) to be connected; returns an empty summary when no engagements are recorded. Resolve the contact UUID via get_contact_list_contacts or get_pipegen_list_leads (the id field).
ParameterTypeRequiredAllowed valuesDefaultDescription
contact_idstringrequiredUUID of the contact (the id field returned by get_contact_list_contacts or get_pipegen_list_leads).
max_age_daysnumberoptional30Force a refresh when the stored summary is older than this many days. Defaults to 30. Pass a smaller value when you specifically need very fresh data; pass a larger value to skip a refresh.

get_deal_meddic

Fetch the latest MEDDIC qualification snapshot for every CRM deal (HubSpot or Salesforce) linked to a target company (identified by its LinkedIn ID). MEDDIC scores six dimensions (Metrics, Economic Buyer, Decision Criteria, Decision Process, Identify Pain, Champion) on a 0-10 scale, each with bullet points and grounding from CRM engagements. Use this to assess where each open deal stands and what is missing before advancing it. Resolve the LinkedIn ID with search_companies_by_name if you do not have it. MEDDIC is generated on-demand inside Tamtam — if a deal has no snapshot yet, ask the user to generate it from the deal in the app first.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).

get_enrichment_results

Retrieve results for an enrich_people call that returned status="PENDING". If still PENDING after this call, follow the next_action field to continue polling. Enrichment typically completes within 10 minutes.
ParameterTypeRequiredAllowed valuesDefaultDescription
request_idstringrequiredThe request_id returned by enrich_people.

get_pain_hypothesis

Fetch the pain hypothesis for a target company (identified by its LinkedIn ID). The pain hypothesis gives a fitness score (how well the customer’s offering fits the target), a list of actionable challenges the target likely faces (each with supporting facts from public sources and a suggested solution). Use this to assess fit and prepare targeted outreach or meeting talking points for a specific company. Call skill_research_key_account first to learn when to use this vs. the other research tools.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idstringrequiredLinkedIn numeric ID of the target company (e.g. “104924588”).

get_pipegen_list_leads

Retrieve all leads inside a prospecting (PipeGen) list. Returns each lead’s identity, current experience, status. Also returns contact_brief: AI-answered icebreaker questions per lead (may be empty if research has not yet been triggered from the UI for the lead’s company). Use list_pipegen_lists first to discover available list IDs.
ParameterTypeRequiredAllowed valuesDefaultDescription
pipegen_list_idstringrequiredUUID of the prospecting (PipeGen) list to fetch leads from.

get_research_results

Wait for and retrieve research results previously started with research_companies. Polls internally until all companies are computed or a timeout is reached. Returns per-company status (pending, completed, error) and values. If all_completed is false after return, call again to continue waiting.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idsarray<string>requiredLinkedIn IDs of the companies to check results for.
criteria_idstringrequiredThe criteria_id returned by research_companies.

get_seller_questions

Fetch the seller questions and answers for the current customer account. Seller questions gives a comprehensive understanding of the customer as a company: their products, target market, value proposition, business outcomes, pain points, ROI, competitors, USPs, and competitive gaps. Use this when you need to understand the customer’s business in depth to provide relevant and insightful assistance — for example before configurating their account for them or giving strategic advice when the user has not provided enough information. Not needed for tactical assistance (using Tamtam features, finding contact info) where the user’s own description in the conversation is enough. No input parameters.

get_youtube_video_transcript

Fetch a YouTube video’s full spoken transcript from its URL (or video ID). Returns the video metadata (title, channel description, length, views, publication date) together with the full transcript text. Use this to brief yourself on a video before a meeting, extract talking points, or feed the transcript into further reasoning (e.g. competitive analysis, executive prep, podcast intelligence). The transcript comes from YouTube’s own subtitles when available, with an audio-transcription fallback otherwise; if neither works the tool returns an error and no credits are charged. Cost scales with video length: 1 credit per minute, minimum 10. A 5-min clip costs 10 credits; a 30-min talk costs 30; a 2h podcast costs 120.
ParameterTypeRequiredAllowed valuesDefaultDescription
urlstringrequiredYouTube video URL (e.g. “https://www.youtube.com/watch?v=dQw4w9WgXcQ”) or bare video ID.

list_companies_lists

List all existing companies lists. Returns each list’s ID, name, tags, assignee, CreatedAt, and UpdatedAt. Results are ordered by UpdatedAt (most recently updated first). Use this to discover available companies lists before performing actions on them. No input parameters.

list_contacts_lists

List all existing contacts lists. Returns each list’s ID, name, tags, and assignee. Use this to discover available contacts lists before performing actions on them. No input parameters.

list_key_accounts

List the companies the current user has in Key Accounts. Returns each company’s LinkedIn ID, name, domain, LinkedIn slug, HQ country, industry, logo URL, employee count, and the timestamp it was last added/updated in Key Accounts. Use this to discover which companies the user has unlocked for deep research. No input parameters.

list_pipegen_lists

List all existing prospecting (PipeGen) lists. Returns each list’s ID, name, owner, createdAt, updatedAt, archived state, visibility status, contact count, and whether it was auto-created. Results are ordered by updatedAt (most recently updated first). Use this to discover available prospecting lists before performing actions on them. No input parameters.

research_companies

Create a research criteria and compute it on specific companies. Results are computed asynchronously — use get_research_results with the returned criteria_id to poll for completion. Supported criteria types and their required parameters:
  • ‘nbJobOffers’: title_includes (required), title_excludes, countries, posted_at_max_age_days, description_includes, description_excludes, job_seniority_or, employment_statuses_or, job_technology_slug_or
  • ‘membersCount’: job_titles_includes or canonical_job_titles_includes_ids (one required), job_titles_excludes, canonical_job_titles_excludes_ids, countries, country_excludes
  • ‘technologiesBool’: technologies (required, array of slugs) — checks whether a company uses specific software (any category: CRM, marketing, HR, engineering, etc.)
  • ‘keywordSearchCompanyLinkedin’: keywords_includes (required), keywords_excludes
  • ‘lookalikeScores’: linkedin_ids or queries (one required)
  • ‘technologies’: returns all software and apps used by the company — not just engineering tools but also CRMs, marketing automation, HR platforms, analytics, ERP, collaboration tools, and more (detected from job postings, website, and other signals). No extra params needed
  • ‘fundraising’: no extra params needed
  • ‘mau’: no extra params needed (monthly website visits)
  • ‘instagramFollowers’: no extra params needed
  • ‘peopleGrowthLastYear’: no extra params needed Costs 1 credit per company for some criteria types.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idsarray<string>requiredLinkedIn numeric IDs of the companies to research (e.g. [“104924588”]).
criteria_typestringrequirednbJobOffers, membersCount, technologiesBool, keywordSearchCompanyLinkedin, lookalikeScores, technologies, fundraising, mau, instagramFollowers, peopleGrowthLastYearType of research to perform.
namestringrequiredHuman-readable name for this research. Example: ‘Hiring senior engineers’.
canonical_job_titles_excludes_idsarray<string>optionalFor membersCount: canonical job title IDs to exclude.
canonical_job_titles_includes_idsarray<string>optionalFor membersCount: canonical job title IDs to include.
countriesarray<string>optionalFor nbJobOffers or membersCount: ISO country codes. Example: [‘US’, ‘FR’].
country_excludesarray<string>optionalFor membersCount: ISO country codes to exclude.
description_excludesarray<string>optionalFor nbJobOffers: keywords that must not appear in the job description.
description_includesarray<string>optionalFor nbJobOffers: keywords that must appear in the job description.
employment_statuses_orarray<string>optionalfull_time, part_time, temporary, internship, contract, freelance, co_founder, apprenticeship, seasonal, volunteerFor nbJobOffers: employment types. Values: ‘full_time’, ‘part_time’, ‘temporary’, ‘internship’, ‘contract’, ‘freelance’, ‘co_founder’, ‘apprenticeship’, ‘seasonal’, ‘volunteer’.
job_seniority_orarray<string>optionalc_level, staff, senior, mid_level, juniorFor nbJobOffers: seniority levels. Values: ‘c_level’, ‘staff’, ‘senior’, ‘mid_level’, ‘junior’.
job_technology_slug_orarray<string>optionalFor nbJobOffers: technology slugs to filter by (e.g. ‘react’, ‘kubernetes’).
job_titles_excludesarray<string>optionalFor membersCount: job title keywords to exclude.
job_titles_includesarray<string>optionalFor membersCount: job title keywords to include.
keywords_excludesarray<string>optionalFor keywordSearchCompanyLinkedin: keywords that must not appear.
keywords_includesarray<string>optionalFor keywordSearchCompanyLinkedin: keywords that must appear in the company LinkedIn description.
linkedin_idsarray<string>optionalFor lookalikeScores: LinkedIn numeric IDs of reference companies to compare against (e.g. [“104924588”]).
posted_at_max_age_daysnumberoptional365For nbJobOffers: maximum age of job postings in days. Default: 365.
queriesarray<string>optionalFor lookalikeScores: text queries describing the ideal company profile.
technologiesarray<string>optionalFor technologiesBool: technology slugs to check. Example: [‘react’, ‘kubernetes’].
title_excludesarray<string>optionalFor nbJobOffers: job title keywords to exclude.
title_includesarray<string>optionalFor nbJobOffers: job title keywords to include. Example: [‘engineer’, ‘developer’].

search_canonical_job_titles

Search for canonical job titles by keyword. Returns matching job title IDs and English names. Use this to find valid canonical job title IDs for search_people’s canonical_job_titles_includes_ids / canonical_job_titles_excludes_ids parameters. Call skill_find_people first to learn the recommended workflow.
ParameterTypeRequiredAllowed valuesDefaultDescription
querystringrequiredThe job title keyword to search for (e.g. ‘CTO’, ‘Head of Sales’, ‘Software Engineer’).

search_companies_by_filters

Search for companies using advanced filters (keywords, industry, country, company size, founded year, employee count, etc.). Returns matching companies with their LinkedIn ID, name, and details. Call skill_find_companies first to learn how to choose between this, lookalikes, and job_postings search. Default filters from account settings are automatically applied when you don’t specify a filter explicitly. The response includes the true total_count, has_more, and next_offset. PAGINATION — DO NOT STOP AT THE FIRST PAGE when the user wants an exhaustive list: re-call with the SAME filters and offset set to the previous response’s next_offset until has_more is false (bounded to 10000 results total).
ParameterTypeRequiredAllowed valuesDefaultDescription
company_sizearray<string>optional1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+Employee size ranges. Values: ‘1-10’, ‘11-50’, ‘51-200’, ‘201-500’, ‘501-1000’, ‘1001-5000’, ‘5001-10000’, ‘10001+’.
countriesarray<string>optionalISO 3166-1 alpha-2 country codes for company HQ location. Example: [‘US’, ‘FR’, ‘DE’].
excluded_keywordsarray<string>optionalKeywords to exclude from search results. Example: [‘consulting’].
hq_citiesarray<string>optionalHQ city names. Example: [‘Paris’, ‘New York’].
hq_statesarray<string>optionalHQ state or region names. Example: [‘California’, ‘Île-de-France’].
industries_excludearray<string>optionalLinkedIn industry names to exclude. Example: [‘Staffing and Recruiting’].
industries_includearray<string>optionalLinkedIn industry names to include. Example: [‘Computer Software’, ‘Financial Services’].
keywordsarray<string>optionalKeywords to search for in the company profile (name, description, specialties). Example: [‘AI’, ‘machine learning’].
keywords_logicstringoptionalOR, ANDORHow to combine keywords: ‘OR’ matches any keyword (default), ‘AND’ requires all keywords.
limitnumberoptional≤ 5000100Maximum number of results to return per page (default 100, max 5000). Use a high limit (e.g. 5000) when the user wants exhaustive results.
max_employeesnumberoptionalMaximum number of employees on LinkedIn. Example: 1000.
max_founded_yearnumberoptionalMaximum year the company was founded. Example: 2023.
min_employeesnumberoptionalMinimum number of employees on LinkedIn. Example: 50.
min_founded_yearnumberoptionalMinimum year the company was founded. Example: 2010.
offsetnumberoptional0Number of results to skip, for pagination (default 0). To sweep ALL matches: keep the same filters and re-call with offset set to the previous response’s next_offset until has_more is false. Offset paging is bounded to 10000 results total.

search_companies_by_job_postings

Search for companies based on their job postings and hiring activity. Filter by job titles, technologies, funding stage, location, and company size. Returns companies that are actively hiring for matching roles. Returned companies are revealed for the account; revealing only unblurs the company data and does NOT add them to Key Accounts. Costs 1 AI credit per newly-revealed company; companies the account already revealed are not re-charged. Use limit to bound how many companies are returned and revealed per page (default 500, max 500). The response includes a pagination block with has_more and next_offset. PAGINATION — DO NOT STOP AT THE FIRST PAGE when the user wants an exhaustive list: re-call with the SAME filters and offset set to the previous response’s pagination.next_offset until pagination.has_more is false (each page reveals its companies and costs credits). Call skill_find_companies first to learn when to use job_postings search vs. other tools. Default filters from account settings are automatically applied when you don’t specify a filter explicitly.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_countriesarray<string>optionalISO 3166-1 alpha-2 country codes for company HQ location. Example: [‘US’, ‘FR’, ‘DE’].
company_countries_excludearray<string>optionalISO 3166-1 alpha-2 country codes to exclude for company HQ.
company_description_containsarray<string>optionalKeywords that must ALL appear in the company description (AND logic, every keyword must match). For match-ANY semantics use company_description_pattern_or instead. Example: [‘fintech’, ‘payments’].
company_description_excludesarray<string>optionalKeywords to exclude from company descriptions. Example: [‘consulting’].
company_description_pattern_orarray<string>optionalKeywords where ANY match is enough in the company description (OR logic, at least one keyword must match). For match-ALL semantics use company_description_contains instead. Example: [‘ecommerce’, ‘online store’, ‘tienda online’].
company_tech_slugs_andarray<string>optionalTechnology slugs the company must ALL use, AND logic (every slug required). Use only when the full stack must be present. Example: [‘react’, ‘typescript’].
company_tech_slugs_orarray<string>optionalTechnology slugs the company uses, OR logic (match if the company uses ANY of these). Prefer this for most tech searches. Example: [‘prestashop’, ‘woocommerce’, ‘magento’].
company_typestringoptionalrecruiting_agency, direct_employer, allallFilter by company type: ‘recruiting_agency’, ‘direct_employer’, or ‘all’ (default). Use ‘direct_employer’ to exclude recruiting agencies.
funding_stagesarray<string>optionalangel, convertible_note, debt_financing, equity_crowdfunding, other, private_equity, seed, series_a, series_b, series_c, series_d, series_e, series_f, series_g, series_h, venture_round_not_specified, series_i, series_j, undisclosed, series_unknown, pre_seed, post_ipo_secondary, post_ipo_equity, post_ipo_debt, non_equity_assistance, late_vc, initial_coin_offering, growth_equity_vc, grant, early_vc, corporate_round, secondary_market, product_crowdfundingFunding stages to filter by. Example: [‘seed’, ‘series_a’, ‘series_b’]. Values: angel, convertible_note, debt_financing, equity_crowdfunding, other, private_equity, seed, series_a, series_b, series_c, series_d, series_e, series_f, series_g, series_h, venture_round_not_specified, series_i, series_j, undisclosed, series_unknown, pre_seed, post_ipo_secondary, post_ipo_equity, post_ipo_debt, non_equity_assistance, late_vc, initial_coin_offering, growth_equity_vc, grant, early_vc, corporate_round, secondary_market, product_crowdfunding.
industry_exclude_idsarray<string>optionalIndustry UUIDs to exclude. Use search_industries to find valid IDs.
industry_idsarray<string>optionalIndustry UUIDs to filter by. Use search_industries to find valid IDs.
job_countriesarray<string>optionalISO 3166-1 alpha-2 country codes for job location (can differ from company HQ). Example: [‘US’, ‘FR’].
job_description_containsarray<string>optionalKeywords that must appear in the job description. Example: [‘remote’, ‘senior’].
job_description_excludesarray<string>optionalKeywords to exclude from job descriptions. Example: [‘clearance required’].
job_seniorityarray<string>optionalSeniority levels. Example: [‘senior’, ‘lead’, ‘manager’].
job_tech_slugsarray<string>optionalTechnology slugs mentioned in job postings (lowercase). Example: [‘python’, ‘kubernetes’, ‘react’].
job_titlesarray<string>optionalJob titles to search for. Example: [‘Data Engineer’, ‘Machine Learning Engineer’].
job_titles_excludearray<string>optionalJob titles to exclude from results. Example: [‘Intern’, ‘Trainee’].
limitnumberoptional≤ 500500Maximum number of companies to return and reveal per page (default 500, max 500). Each newly-revealed company costs 1 credit.
max_employeesnumberoptionalMaximum number of employees. Example: 1000.
max_funding_usdnumberoptionalMaximum total funding in USD. Example: 50000000 for under $50M.
max_revenue_usdnumberoptionalMaximum annual revenue in USD.
min_employeesnumberoptionalMinimum number of employees. Example: 50.
min_funding_usdnumberoptionalMinimum total funding in USD. Example: 1000000 for $1M+.
min_revenue_usdnumberoptionalMinimum annual revenue in USD.
offsetnumberoptional0Number of results to skip, for pagination (default 0). To sweep ALL matches: keep the same filters and re-call with offset set to the previous response’s pagination.next_offset until pagination.has_more is false. Should be a multiple of limit. Each page reveals its companies (costs credits).
posted_at_max_age_daysnumberoptional90Only include job postings from the last N days (default 90). Example: 30 for last month only.
remotebooleanoptionalFilter for remote positions only.

search_companies_by_lookalikes

Find companies similar to given reference companies. Uses AI-powered similarity search. You must provide at least one company_linkedin_id. Call skill_find_companies first to learn when to use lookalikes vs. other search tools. Costs 1 credit per call. Default filters from the user / account settings (HQ countries, company sizes, employee-count range) are automatically applied when you don’t specify the corresponding filter explicitly. Passing an explicit value (including an empty array) overrides the default. IMPORTANT: When multiple company_linkedin_ids are passed in the same call, they are merged into ONE combined similarity fingerprint (results are similar to ALL seeds at once, not similar to ANY of them). If the user names several distinct seed companies and wants companies similar to any of them, call this tool once per seed and union the results — do NOT batch them into one call. Only batch multiple IDs when the user explicitly asks for companies similar to the seeds as a group. When fanning out across multiple seeds, dedupe the union by linkedin_id; an overlap across seeds is a strong-fit signal worth surfacing.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idsarray<string>optionalLinkedIn IDs of reference companies to find lookalikes for. Use search_companies_by_name to find LinkedIn IDs first. Pass ONE seed per call when the user lists multiple distinct seeds; pass multiple only when the user explicitly wants companies similar to the seeds as a group (they will be merged into a combined fingerprint).
company_sizearray<string>optional1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+Employee size ranges. Values: ‘1-10’, ‘11-50’, ‘51-200’, ‘201-500’, ‘501-1000’, ‘1001-5000’, ‘5001-10000’, ‘10001+’.
countriesarray<string>optionalISO 3166-1 alpha-2 country codes to filter by HQ location. Example: [‘US’, ‘FR’].
limitnumberoptional≤ 500100Maximum number of results (default 100, max 500). Higher limits consume the same 1 credit.
max_employeesnumberoptionalMaximum number of employees on LinkedIn.
min_employeesnumberoptionalMinimum number of employees on LinkedIn.

search_companies_by_lookalikes_any

Find companies similar to ANY of several reference companies (OR semantics). Uses AI-powered similarity search. You must provide at least one company_linkedin_id. Call skill_find_companies first to learn when to use lookalikes vs. other search tools. Costs 1 credit per call. Unlike search_companies_by_lookalikes — which merges all seeds into ONE combined fingerprint (results similar to ALL seeds at once) — this tool runs a separate lookalike search per seed and unions the results. Use it when the user names several distinct seed companies and wants companies similar to ANY of them. Each result reports score (the highest score the company reached across the seeds it matched) and match_count (how many of the input seeds it qualified as a lookalike for). Results are ranked by match_count first, then by score: a company similar to several seeds is a stronger fit. Default filters from the user / account settings (HQ countries, company sizes, employee-count range) are automatically applied when you don’t specify the corresponding filter explicitly. Passing an explicit value (including an empty array) overrides the default.
ParameterTypeRequiredAllowed valuesDefaultDescription
company_linkedin_idsarray<string>optionalLinkedIn IDs of the reference companies to find lookalikes for (OR). Each is searched independently and the results are unioned. Use search_companies_by_name to find LinkedIn IDs first.
company_sizearray<string>optional1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+Employee size ranges. Values: ‘1-10’, ‘11-50’, ‘51-200’, ‘201-500’, ‘501-1000’, ‘1001-5000’, ‘5001-10000’, ‘10001+’.
countriesarray<string>optionalISO 3166-1 alpha-2 country codes to filter by HQ location. Example: [‘US’, ‘FR’].
limitnumberoptional≤ 500100Maximum number of results (default 100, max 500). Higher limits consume the same 1 credit.
max_employeesnumberoptionalMaximum number of employees on LinkedIn.
min_employeesnumberoptionalMinimum number of employees on LinkedIn.

search_companies_by_name

Search for companies by name. Returns matching companies with their LinkedIn ID, name, domain, and other details. Use this to find a specific company’s LinkedIn ID or to resolve company names for other tools. Call skill_find_companies first to learn the recommended workflows.
ParameterTypeRequiredAllowed valuesDefaultDescription
querystringrequiredThe company name (or part of it) to search for.

search_industries

Search for industries by keyword. Returns matching industry IDs, names, and hierarchy paths. Use this to find valid industry IDs for search_people and search_companies_by_filters / search_companies_by_job_postings. Call skill_find_people or skill_find_companies first to learn the recommended workflows.
ParameterTypeRequiredAllowed valuesDefaultDescription
querystringrequiredThe keyword to search for (e.g. ‘fintech’, ‘software’, ‘healthcare’).

search_people

Search for people — contacts, leads, prospects, or decision-makers — using advanced filters (job titles, seniority, location, company, industry, and more). Returns up to 25 profiles per page with LinkedIn IDs, job titles, companies, and locations. The response also includes total_count (total matches available across all pages) on the first page. Call skill_find_people first to learn how to use this tool effectively. Recommended: use the prompt parameter with a natural-language query (e.g. ‘CTOs at fintech startups in France’) — job titles, seniority, industries, countries, and other filters are automatically extracted from it. Alternatively, use the structured filter fields for precise control when you already have exact IDs. To find valid IDs for structured filters, use search_canonical_job_titles and search_industries. Pass next_cursor from a previous response to fetch the next page (re-call this same tool). Costs 1 credit per profile returned. PAGINATION DEFAULT — DO NOT STOP AT 25: Most people-search requests like ‘find software engineers in healthcare startups in Paris’ or ‘find marketing leaders at fintech companies’ are implicitly asking for a comprehensive list, NOT just 25 results. Stopping at the first page silently is a poor outcome. After the first page, if has_more is true, follow this decision rule:
  1. If the user’s request clearly implies wanting many/all/exhaustive results (broad discovery, building a list, prospecting, ‘find me X’, ‘who are the X’, ‘extract contacts’, persona-based searches): keep paginating by re-calling search_people with the returned next_cursor until has_more is false OR you have collected a reasonable working set (e.g. ~100-200 results), then ask the user if they want to continue. Mention the credit cost.
  2. If the user explicitly requested a specific small number (e.g. ‘find me 10 CTOs’, ‘give me a few examples’): respect that number and stop.
  3. If intent is ambiguous regarding scale: after the first page, proactively ask the user how many results they want (e.g. ‘I found a first batch of 25 out of <total_count> total matches. Do you want me to load more? Each additional page of 25 costs 25 credits.’). Do not silently stop.
ALWAYS surface to the user the total_count returned in the response, so they know how many matches exist before deciding to paginate.
ParameterTypeRequiredAllowed valuesDefaultDescription
canonical_job_titles_excludes_idsarray<string>optionalCanonical LinkedIn job title UUIDs to exclude.
canonical_job_titles_includes_idsarray<string>optionalCanonical LinkedIn job title UUIDs to include.
company_headcountsarray<string>optionalA, B, C, D, E, F, G, H, ICompany headcount band codes: A=self-employed, B=1-10, C=11-50, D=51-200, E=201-500, F=501-1000, G=1001-5000, H=5001-10000, I=10001+.
company_hq_countriesarray<string>optionalISO 3166-1 alpha-2 country codes of the company’s headquarters (e.g. [‘FR’,‘US’]).
company_linkedin_idsarray<string>optionalLinkedIn company IDs to filter by.
countriesarray<string>optionalISO 3166-1 alpha-2 country codes of the person’s location (e.g. [‘FR’,‘US’]).
first_namestringoptionalFilter by person’s first name.
industry_excludes_idsarray<string>optionalIndustry UUIDs to exclude from the search.
industry_includes_idsarray<string>optionalIndustry UUIDs to include in the search.
job_titles_excludesarray<string>optionalJob titles to exclude.
job_titles_includesarray<string>optionalJob titles to include (e.g. [‘Head of Sales’]).
last_namestringoptionalFilter by person’s last name.
next_cursorstringoptionalOpaque pagination token returned by the previous response’s next_cursor. Pass it back unchanged to fetch the next page. Invalid or expired cursors return an error inviting a fresh search.
promptstringoptionalNatural-language search query. Mutually exclusive with structured filters.
recently_changed_jobsbooleanoptionalOnly include people who recently changed jobs.

skill_find_companies

IMPORTANT: Call this BEFORE any company search or discovery task. Returns expert knowledge on which company search tools to use, how to combine them, and how to get the best results. No parameters needed. No input parameters.

skill_find_people

IMPORTANT: Call this BEFORE any task involving finding people, contacts, leads, or prospects — whether by search filters, name, LinkedIn URL, or email. Returns expert knowledge on which people-related tools to use, how to combine them, and how to interpret filters. No parameters needed. No input parameters.

skill_research_key_account

IMPORTANT: Call this BEFORE researching a specific target company in Key Accounts — their strategy, pains, fit, standing research answers, corporate structure, or recent news and buying signals. Returns expert knowledge on which research tools to use, the Key Accounts pre-requisite, and how to handle the asynchronous nature of research outputs. No parameters needed. No input parameters.