Skip to Content
MCPToolsFind Companies

Find Companies

Describe the company profile you want, get back a list of matching companies.

Tool
find_companies
Cost
0.5 credits per company found
Category
Source Leads
Required input
None — pass at least one filter
Returns
Matching company profiles

What it does

  • Finds companies based on the filters you pass and returns matching company profiles.
  • No required parameter. You must pass at least one filter or there is nothing to search on.
  • Filters cover identity, category, location, type, size, revenue, funding, social following, age, headcount growth, department mix, technographics and competitors — see the tables below.
  • Cost scales with results — 0.5 credits per company returned. A default page of 25 costs 12.5 credits; a full page of 100 costs 50.

This is how you build an account list. Enrichment tools like enrich_organization work on domains you already have — this call produces them.


Use cases

  • Build a TAM list from scratch. Industry, geography, size and type in one call is the fastest route from an ICP definition to a list of real accounts.
  • Source funded accounts to work this quarter. Combine last_funding_round_types with last_fundraise_after to get companies that have just raised and are spending.
  • Target on growth rather than size. Headcount-growth filters find the 80-person company scaling fast, which a static headcount range would rank alongside a flat one.
  • Find lookalikes of your best customers. Feed competitor domains or a technographic filter and get accounts that resemble the ones already closing.
  • Qualify on team shape. Department filters separate a 300-person company with 60 in sales from a 300-person company with six.

How to use it

Connect the MCP server

Follow the setup guide for your client. Browser sign-in, no API key.

Describe the account profile

Find privately held SaaS companies in the US with 51-200 employees.

Add the timing signal

Narrow that to companies whose last funding round was series_a or series_b and closed after 2025-06-01.

Add the growth signal

Now only keep companies with min_headcount_growth_percent_6m above 20.

Page through the results

Return 100 per page and keep paging with the cursor until I have 300 companies. Report credits used.

Example prompts

Ask your clientWhat you get back
”Privately held fintech in Germany, 201-500 employees”Companies matching company_types, industries, countries, employee_count_ranges
”Series A companies that raised after 2025-06-01”last_funding_round_types plus last_fundraise_after
”Companies that grew headcount 20%+ in the last 6 months”min_headcount_growth_percent_6m
”Founded after 2020, over $5M raised, not in retail”min_year_founded, min_total_funding_usd, exclude_industries
”NASDAQ-listed companies with over 100k LinkedIn followers”markets plus min_followers
”Companies running Salesforce with at least 25 people in sales”technologies plus department: "sales" and min_department_headcount
”Companies that compete with hubspot.com, 201-500 employees”competitor_domains plus employee_count_ranges
”Companies whose engineering team grew 30%+ year over year”department: "engineering" plus min_department_growth_yoy

Best prompting practices

  • Always pass at least one filter. There is no required parameter, so an unfiltered ask returns whatever the search defaults to rather than what you meant.
  • Use the range enums, not free text. employee_count_ranges accepts fixed buckets — "51-200", "1001-5000". “Mid-market” is not a value.
  • Dates are YYYY-MM-DD. last_fundraise_after: "2025-06-01". “Last six months” will not parse.
  • Stack growth windows deliberately. min_headcount_growth_percent_1m catches a sudden spike; _12m catches sustained expansion. Percent filters favour small companies, absolute filters favour large ones.
  • Paste the docs URL into the prompt. “Parameter reference: https://docs.syncgtm.com/mcp_server/tools/find_companies — read it first and use the exact parameter names and value formats.” With this many filters, a client left to guess invents company_size and location and silently drops half your criteria.
  • Exclude early. exclude_industries costs nothing and keeps agencies, recruiters and consultancies out of a list you would otherwise clean by hand.
  • Filter on the team, not the company. department plus min_department_headcount finds accounts that actually staff the function you sell to. Headcount alone does not — a 300-person company with six people in sales is not a sales-tooling buyer.
  • top_technologies beats technologies for qualification. technologies matches any detection, including a tag left on one page. top_technologies matches what the company actually runs.
  • One department per call. The department filters all read the same department value, so run separate calls to compare sales-heavy and engineering-heavy accounts.
  • Set limit explicitly. Default is 25. limit is the cost dial at 0.5 credits per company, so ask for volume only when you will use it.
  • Ask for the raw columns. “Return company_name, primary_domain, employee count, country, last round and date — as CSV.” Left to itself your client writes a paragraph about the market and you lose the fields you paid 0.5 credits each for.
  • Search before you enrich. 100 companies here is 50 credits; guessing 100 domains and enriching them at 2 credits each is 200.

Output

{ "companies": [ { "company_name": "Example Inc", "primary_domain": "example.com", "employee_count_range": "51-200", "countries": ["United States"] } ], "next_cursor": "eyJwYWdlIjoyfQ" }

Credits and limits

0.5 credits per company returned. limit is 1–100 with a default of 25, so a default call costs 12.5 credits and a full page costs 50. Run check_credits (free) before a long paging run.

The cost is per result, so paging is what drives spend. Three pages of 100 is 300 companies and 150 credits. Tell your client how many companies you want up front rather than letting it page until the cursor runs out.


Parameters

No parameter is required, but a call with no filters has nothing to match on. Combine filters from any of the families below.

Filters combine as AND across families and any-of within a single array filter. industries: ["Software Development", "Financial Services"] matches either industry; adding countries narrows that set rather than widening it.

Identity

ParameterTypeNotes
company_namesarrayFuzzy, any-of
primary_domainsarrayExact
websitesarrayFull website URL, when the domain alone is ambiguous
linkedin_urlsarrayCompany LinkedIn page URL
linkedin_idsarrayLinkedIn company id

Category

ParameterTypeNotes
industriesarray
exclude_industriesarrayNone-of
categoriesarrayCrunchbase categories — narrower than industries
specialitiesarrayLinkedIn specialities
linkedin_industriesarrayLinkedIn’s own industry taxonomy — differently worded from industries

Location

ParameterTypeNotes
countriesarrayExact HQ country
headquarters_locationsarrayFuzzy
largest_headcount_countriesarrayWhere most employees sit
street_addressesarrayStreet address text
office_locationsarrayMatches any office, not just the HQ

Type

ParameterTypeNotes
company_typesarraye.g. "Public Company", "Privately Held"
marketsarraye.g. "NYSE", "NASDAQ", or "PRIVATE"

Size

ParameterTypeNotes
employee_count_rangesarray"1-10" | "11-50" | "51-200" | "201-500" | "501-1000" | "1001-5000" | "5001-10000" | "10001+"
min_headcountnumber
max_headcountnumber

Revenue

ParameterTypeNotes
min_revenue_usdnumberMatches the estimate’s lower bound
max_revenue_usdnumberMatches the estimate’s upper bound
acquisition_statusesarraye.g. acquired, not_acquired — drop companies already absorbed
stock_symbolsarrayTicker, e.g. "CRM", "HUBS"
ipo_afterstringYYYY-MM-DD
ipo_beforestringYYYY-MM-DD
fiscal_year_endsarrayFiscal year end date — useful for budget-cycle timing

Funding

ParameterTypeNotes
min_total_funding_usdnumber
max_total_funding_usdnumber
last_funding_round_typesarraye.g. "seed", "series_a", "series_b"
min_last_round_amount_usdnumber
max_last_round_amount_usdnumber
last_fundraise_afterstringYYYY-MM-DD
last_fundraise_beforestringYYYY-MM-DD
investorsarray
tracxn_investorsarrayInvestors as recorded by Tracxn — catches rounds missing from the primary list

Social

ParameterTypeNotes
min_followersnumberLinkedIn follower count
max_followersnumberLinkedIn follower count
min_follower_growth_percent_1mnumberMonth-over-month follower growth
min_follower_growth_percent_3mnumberQuarter-over-quarter follower growth
min_follower_growth_percent_6mnumber6-month follower growth
min_follower_growth_percent_12mnumberYear-over-year follower growth
crunchbase_urlsarrayCrunchbase profile URL
twitter_urlsarrayX / Twitter profile URL

Age

ParameterTypeNotes
min_year_foundednumber
max_year_foundednumber

Growth

ParameterTypeNotes
min_headcount_growth_percent_1mnumberPercent growth over 1 month
min_headcount_growth_percent_3mnumberPercent growth over 3 months
min_headcount_growth_percent_6mnumberPercent growth over 6 months
min_headcount_growth_percent_12mnumberPercent growth over 12 months
min_headcount_growth_absolute_1mnumberHeadcount added over 1 month
min_headcount_growth_absolute_3mnumberHeadcount added over 3 months
min_headcount_growth_absolute_6mnumberHeadcount added over 6 months
min_headcount_growth_absolute_12mnumberHeadcount added over 12 months
max_headcount_growth_percent_1m | _3m | _6m | _12mnumberCeiling on percent growth — caps runaway outliers
max_headcount_growth_absolute_1m | _3m | _6m | _12mnumberCeiling on headcount added

Department headcount

Filters on the company’s employee mix rather than its total size — a 300-person company with 60 in sales is a different account to a 300-person company with 6.

ParameterTypeNotes
departmentstringThe department the filters below apply to — see the list under the table
min_department_headcountnumberEmployees in that department
max_department_headcountnumberEmployees in that department
min_department_percentnumberDepartment as a percent of total headcount
max_department_percentnumberDepartment as a percent of total headcount
min_department_growth_6mnumber6-month growth in that department
min_department_growth_yoynumberYear-over-year growth in that department

Accepted department values: accounting, administrative, arts_and_design, business_development, community_and_social_services, consulting, customer_success_and_support, education, engineering, entrepreneurship, finance, healthcare_services, human_resources, information_technology, legal, marketing, media_and_communication, military_and_protective_services, operations, product_management, program_and_project_management, purchasing, quality_assurance, real_estate, research, sales, support.

Technographics

ParameterTypeNotes
technologiesarrayTechnology names, e.g. "Salesforce", "Snowflake"
technology_categoriesarraye.g. "CRM", "Marketing Automation"
technology_super_categoriesarrayBroader grouping above category
top_technologiesarrayMatches only the company’s most-used tools, not every trace detection
min_technologiesnumberTotal technologies detected — a rough proxy for stack maturity
max_technologiesnumberTotal technologies detected

Competitors

ParameterTypeNotes
competitor_domainsarrayCompanies that compete with these domains — lookalike sourcing from one known account

Data freshness

ParameterTypeNotes
updated_afterstringYYYY-MM-DD — only records refreshed since this date
indexed_afterstringYYYY-MM-DD — only records first indexed since this date

Paging

ParameterTypeNotes
limitnumber1–100, default 25
cursorstringFrom next_cursor on the previous response

Filter reference

Several filters only match values from a fixed list. A near-miss does not error — it silently matches nothing, which reads like “no companies found”. These are the full accepted value lists, hosted as JSON.

FilterAccepted valuesShape
linkedin_industriesstatic-linkedin-industries.json Array of strings (~15 KB)
categoriescrunchbase_categories.json Array of strings (~17 KB)
largest_headcount_countrieslargest_headcount_country.json Array of { iso_alpha3, name } (~13 KB)
company_typescompany_type.json Array of strings
employee_count_rangesemployee_count_range.json Array of strings
last_funding_round_typeslast_funding_round_type.json Array of strings

Pass the name, not an id — largest_headcount_countries: ["United States"], not ["USA"].

Point your client at a list rather than guessing: “fetch https://dyyboia6z5eq9.cloudfront.net/mcp/filters/find_companies/crunchbase_categories.json  and pick the categories that match B2B fintech.” It resolves the exact strings once, then reuses them for every call.

To search one locally:

curl -s https://dyyboia6z5eq9.cloudfront.net/mcp/filters/find_companies/static-linkedin-industries.json \ | jq -r '.[]' | grep -i software

industries and exclude_industries are a separate, differently-worded taxonomy from linkedin_industries — do not mix strings between the two.


ToolUse it instead when
find_peopleYou want people across many companies, not the companies themselves — 0.5 credits per result
enrich_organizationYou already have the domains and need firmographics — 2 credits
enrich_linkedin_pageYou already have LinkedIn pages and want the cheapest enrichment — 0.5 credits
search_job_openingsYou want the same firmographic filters, but only accounts with a matching open role — 0.5 credits per job found
google_maps_listingsYou are sourcing local businesses rather than firmographic B2B accounts — 0.3 credits per business

Next steps

  • All MCP tools — the full catalogue with credit costs
  • TAM Sourcing — workflows that turn a company search into a working list

Keep learning

Two courses take these tools past the reference page — clustered by GTM job, then chained into workflows.