Full ICP Search — Clay Alternative for Companies, Leads & Jobs
Pricing
from $1.50 / 1,000 person delivered with an emails
Full ICP Search — Clay Alternative for Companies, Leads & Jobs
Find companies, decision makers with live emails and open jobs matching an ideal customer, candidate or investor profile. Filter by industry, size, funding, hiring, title, seniority, location, experience. Free preview counts. Clay alternative, no login. Leads from $1.50/1k.
Pricing
from $1.50 / 1,000 person delivered with an emails
Rating
5.0
(2)
Developer
B2B Search Enriched
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
Describe your ideal customer profile in plain English to Claude or any MCP client, and get back the companies that fit it, the decision makers inside them with an email that reaches them today, and the open jobs they post — in one run, one dataset, priced per row. The same Actor finds an ideal candidate profile (people by title, skills, experience, past employers), and partners or investors (VC partners, angels, funds). No Clay subscription, no credits to buy, no login, no cookies.
- Companies, people and jobs in one search. Pick what to find: companies and the people in them, companies only, or people only.
- A profile is many signals at once. Industry, headcount, HQ country and city, founding year, last funding round and its date, words in the company description, job titles the company is hiring for, words in its job postings; for people: level, title, headline keywords, country, city, years of experience, past companies, past titles, when they started the current job, languages.
- Built for AI agents. A free preview counts companies, people and job postings before anything is bought, so Claude can tune the profile in a few calls and buy only the rows it keeps.
- Every entity is priced on its own. A company, a lead with a live email, a person without contact details, a job posting, a mobile number. Rows that find nothing are free.
Use it with Claude (MCP)
The fastest way to use this Actor is to let an AI agent fill the filters. Connect Apify MCP to Claude (Claude Desktop, Claude Code, Cursor or any MCP client):
https://mcp.apify.com?tools=b2bsearch/full-icp-search
Then describe who you want, in English, the way you would brief a researcher:
Find 50 US B2B SaaS companies with 51–500 employees that raised a Series A or B since January 2025 and are hiring SDRs. For each, give me the VP of Sales or CRO with a work email. Preview the counts first.
I'm hiring a senior backend engineer: people in Germany or the Netherlands with "golang" or "kubernetes" in their headline, at least 6 years of experience, who used to work at delivery or fintech startups.
Find partners at venture capital firms in London who write about climate or energy, with an email.
The agent turns the brief into this Actor's input, runs previewOnly: true
to see how many companies, people and jobs match, narrows or widens, and
only then runs the paid search. Each run's input, counts and rows come back
to the agent, so it can compare segments, drop the weak one and pull the
next — the loop that takes an afternoon of clicking in a table tool.
What does ICP mean here?
ICP = ideal customer, candidate or company profile: the description of who you are looking for. For a sales team it is the accounts and buyers you sell to; for a recruiter it is the candidate; for a founder it can be the partner, agency or investor to reach. This Actor reads all three from the same filters.
Use cases at a glance
| You want | Fields that do it |
|---|---|
| Decision makers at companies that fit your ICP | companyCountries, industries, companySizeMin/Max, seniority |
| Companies building a team you sell to (hiring SDRs, data engineers) | hiringJobTitles, jobsPerCompany |
| Companies that use a tool, read from their job postings | hiringJobKeywords: ["snowflake"] |
| Founders of startups that just raised and are hiring their first sellers | fundingStages, fundedAfter, hiringJobTitles |
| Leaders in their first months in the seat, when budgets move | startedCurrentRoleAfter, jobTitles, seniority |
| Your champions who left a customer for a new company | pastCompanyDomains, startedCurrentRoleAfter |
| The buying committee of your target accounts | companyDomains, seniority, peoplePerCompany |
| Candidates by skills, experience and past employers | find: "people", keywords, yearsExperienceMin, pastCompanyDomains |
| Candidates open to a new role | find: "people", betweenJobs: true |
| Funds that invest in a theme, and their partners | industries: ["Venture Capital and Private Equity Principals"], companyKeywords, jobTitles: ["partner"] |
| Only new accounts every week | excludeDatasets on a schedule |
What can you find?
How do I find decision makers at companies that match my ICP?
find: "companies_and_people" (the default). Describe the companies, then
the people:
{"companyCountries": ["us"],"industries": ["Software Development"],"companySizeMin": 51,"companySizeMax": 200,"seniority": ["founder", "cxo", "vp"],"maxCompanies": 100,"peoplePerCompany": 2}
Each company row is followed by its people, most senior first. With no levels and no titles you get the leadership (founders, C-level, VPs, directors). Companies where nobody matches are skipped free.
How do I find companies that are hiring for a role?
A company hiring SDRs is building a sales team; one hiring a data engineer
is buying data tools. Add hiringJobTitles (and optionally
hiringJobKeywords, words in the posting text) and jobsPerCompany to see
the postings:
{"companyCountries": ["us"],"industries": ["Software Development"],"companySizeMin": 51,"companySizeMax": 500,"hiringJobTitles": ["sales development representative", "sdr"],"hiringPostedWithin": "month","jobTitles": ["sales", "revenue"],"seniority": ["vp", "cxo", "director"],"peoplePerCompany": 2,"jobsPerCompany": 2}
Every company row then carries its hiring signal: open jobs, postings in the last 30 days, the titles the search matched. Staffing agencies and job boards are left out.
How do I find leads at recently funded startups?
Funding rounds and dates are company filters:
{"find": "people","companyCountries": ["us"],"industries": ["Financial Services"],"fundingStages": ["series_a"],"fundedAfter": "2025-01-01","seniority": ["founder", "cxo"],"peoplePerCompany": 1,"maxPeople": 200}
With find: "people" only the people are delivered (and charged), one per
company here.
How do I find founders of funded startups that are hiring their first sellers?
Funding and hiring filters combine. A seed or Series A company that posts account executive jobs is building its first sales team:
{"companyCountries": ["us"],"companySizeMax": 200,"fundingStages": ["seed", "series_a"],"fundedAfter": "2024-06-01","hiringJobTitles": ["account executive"],"hiringPostedWithin": "3months","seniority": ["founder", "cxo"],"peoplePerCompany": 1,"jobsPerCompany": 1}
Each company row comes with its founder or CEO and one of the postings. Keep the size cap: funding records of large, older companies are often missing or out of date.
How do I find leaders who just started a new job?
A new VP of Marketing reviews tools and agencies in the first months.
startedCurrentRoleAfter keeps people who started their current job on or
after a date:
{"companyCountries": ["us"],"industries": ["Software Development"],"companySizeMin": 51,"companySizeMax": 500,"jobTitles": ["marketing"],"seniority": ["vp", "cxo"],"startedCurrentRoleAfter": "2025-09-01","peoplePerCompany": 1}
How do I find my champions who moved to a new company?
People who used to work at your customers and have just started somewhere
else already know your product. Name the customers' domains in
pastCompanyDomains and add a country (a people search has to start from a
country, a title, a headline word or a company domain):
{"find": "people","pastCompanyDomains": ["stripe.com", "notion.so", "figma.com"],"personCountries": ["us"],"startedCurrentRoleAfter": "2025-09-01","seniority": ["cxo", "vp", "director"],"maxPeople": 50}
Each row shows the person's new title and company.
How do I find companies that use a tool, from their job postings?
Job postings name the stack: a company hiring data engineers who know
Snowflake runs Snowflake. hiringJobKeywords reads the posting text;
pair it with a title and a country so the text search stays small:
{"companyCountries": ["gb"],"hiringJobTitles": ["data engineer"],"hiringJobKeywords": ["snowflake"],"jobTitles": ["data", "engineering"],"seniority": ["cxo", "vp", "director"],"peoplePerCompany": 1,"jobsPerCompany": 1}
Every company row lists the matching job titles; the job row links a posting that names the tool.
How do I find candidates by skills, experience and past employers?
find: "people" with person filters. Contact details are optional: switch
requireEmail off to get profiles at the lower person price.
{"find": "people","jobTitles": ["backend engineer", "software engineer"],"keywords": ["golang", "kubernetes"],"personCountries": ["de", "nl"],"yearsExperienceMin": 6,"requireEmail": false,"maxPeople": 100}
pastCompanyDomains finds alumni of the companies you name (people who
have left them), pastJobTitles people who held a title before,
betweenJobs: true only people without a current position (reached at a
personal address; the row shows their last job), and
startedCurrentRoleAfter people who just changed jobs.
How do I find investors, VC partners and funds?
Investors are people at investment firms. The firms are an industry:
{"find": "people","industries": ["Venture Capital and Private Equity Principals"],"jobTitles": ["partner", "principal"],"personCountries": ["gb"],"keywords": ["climate", "energy"],"maxPeople": 50}
For funds that invest in a theme, describe the funds and ask for their
partners: the default find with the same industry,
companyKeywords: ["climate"]jobTitles: ["partner"] returns each fund with a partner
under it. For the funds alone, use find: "companies". Angel investors
usually say so in their headline: keywords: ["angel investor"].
How do I find contacts for my own account list (ABM)?
Paste up to 1,000 website domains into companyDomains. Each domain is one
account: the company page that owns the domain, not the pages of resellers
or of sites hosted on it. Domains that match no company are listed in a
free note row.
{"companyDomains": ["stripe.com", "linear.app", "vercel.com"],"seniority": ["cxo", "vp"],"peoplePerCompany": 2}
How do I find companies by what they do?
companyKeywords keeps companies whose description, name or industry
mentions any of the words (shopify, cybersecurity, b2b saas). The
words are read on each company, so pair them with an industry, a country
and a size; on their own the run reads many companies to find a few.
How it works
- Companies. The company profile picks the accounts: the company database for firmographic filters, or the employers behind matching job postings when a hiring filter is set. Largest companies, or those with the most matching postings, come first.
- People. For each company, its people at the chosen levels and titles from the company roster, most senior first; with person filters a roster cannot answer (headline, city, past employers, experience, languages, start date), the people search runs over a batch of companies at once. Assistants and chiefs of staff, filed under the leadership levels in the data, are left out unless you ask for them.
- Contacts. With
requireEmailon (the default), each person needs a work address on the current company's domain or a personal one. Addresses at earlier employers never count. People without one are skipped free. - Jobs. With
jobsPerCompany, each company's open postings.
find: "people" without company-only filters skips step 1 and searches
people directly, with the company filters applied to their current
employer. When the company filters are all there is (country, industry,
size), the run walks those companies and delivers their people.
Input
| Field | What it does |
|---|---|
find | companies_and_people (default), companies or people. |
previewOnly | Free counts of companies, people and job postings; no rows, no charge. |
maxCompanies | Companies to deliver (default 25). |
peoplePerCompany | People per company (default 3). |
jobsPerCompany | Open job postings per company (default 0). |
maxPeople | People across the run. Default maxCompanies × peoplePerCompany, or 100 for find: "people". |
requireEmail | On: only people with a live email, charged as leads. Off: profiles without contacts at the person price. |
emailType | any, work (current company only) or personal. |
includePhones | Verified mobile numbers on lead rows, charged per lead that has one. |
companyCountries, industries, companySizeMin, companySizeMax | The firmographic core. |
companyKeywords | Words in the company description. |
hiringJobTitles, hiringJobKeywords, hiringPostedWithin | Companies with matching job postings in the last week, month or three months. |
fundingStages, fundedAfter | Last funding round and its date. |
foundedAfterYear, foundedBeforeYear, hqCities | Age and headquarters. |
companyDomains, excludeCompanyDomains | Your account list; your customers or competitors to leave out. |
seniority, jobTitles, excludeJobTitles | Level and current title of the people. |
keywords | Words in the person's headline: skills, specialties, "angel investor". |
personCountries, personCities | Where the people live. |
pastCompanyDomains, pastJobTitles | Alumni of companies; people who held a title before. |
yearsExperienceMin, yearsExperienceMax | Years since the first job on the profile. |
startedCurrentRoleAfter | New in their role since a date. |
languages, betweenJobs | Profile languages; only people without a current job. |
keepCompaniesWithoutPeople | Also deliver companies where nobody matched (charged as companies). |
excludeDatasets | Earlier runs' datasets: their companies and people are skipped free. |
A run that cannot work says so before anything is charged: a hiring filter without a country, a people search with nothing that says who, a typo in a funding stage.
Output
One dataset; _type says what each row is.
_type | Columns |
|---|---|
company | companyName, companyDomain, companyWebsite, companyLinkedinUrl, companyIndustry, companySize, companyCountry, companyCity, companyFounded, companyDescription, fundingStage, lastFundingDate, lastFundingAmountUsd, hiring: openJobs, jobsLast30Days, matchingJobs, matchingJobTitles, topJobTitles30d; peopleFound |
person | fullName, firstName, lastName, jobTitle, seniority, headline, email, emailType, workEmail, personalEmail, linkedinUrl, twitterUrl, githubUrl, facebookUrl, location, countryCode, phoneOnRecord, phone, the company columns of their employer, personId |
job | jobTitle, jobUrl, jobPostedAt, jobLocation, jobCountry, jobSeniority, employmentType, applicantRange, companyName, jobsDataAsOf |
Rows with another _status are free notes: the preview counts, how many
companies had nobody matching, how many people had no live email, which
domains matched no company.
The dataset has five views: Everything, Companies, People,
Emails for outreach tools (name, email, title, company domain, the
columns Instantly, Lemlist, Smartlead and HubSpot import) and Jobs. A
view picks columns, not rows: each one starts with _type, so filter on
it (person for an outreach import) in the export or the spreadsheet.
Company and job rows, and the people found through a company, carry
companyId, so they join in a spreadsheet.
Pricing
Pay per entity delivered, priced by your Apify plan, plus the platform's small start fee per run:
| Event | Free plan | Starter | Scale | Business and up |
|---|---|---|---|---|
company-found — a company row | $2.00 / 1,000 | $2.00 / 1,000 | $1.75 / 1,000 | $1.50 / 1,000 |
lead-found — a person with a live email | $3.00 / 1,000 | $2.50 / 1,000 | $2.00 / 1,000 | $1.50 / 1,000 |
person-found — a person without contact details | $1.00 / 1,000 | $1.00 / 1,000 | $0.90 / 1,000 | $0.80 / 1,000 |
job-found — a job posting | $1.60 / 1,000 | $1.60 / 1,000 | $1.40 / 1,000 | $1.20 / 1,000 |
phone-found — a mobile number on a lead | $5.00 / 1,000 | $4.00 / 1,000 | $3.50 / 1,000 | $3.00 / 1,000 |
Free: the preview counts, companies skipped because nobody matched, people without a live email, repeats, people and companies from your excluded datasets, and every note row.
Example: 100 companies with 2 leads each and 2 job postings each costs, on Starter, 100 × $0.002 + 200 × $0.0025 + 200 × $0.0016 = $1.02.
The Store page's "from" price quotes the cheapest plan tier.
How does this compare with Clay?
Clay is a spreadsheet that calls data providers for you, sold as a monthly plan with actions and data credits; its pricing page (checked 31 October 2026) gives the free plan 100 data credits a month and prices data credits from $0.05 each. This Actor is the list-building half of that workflow as one search: no plan, no credits, no table to build. A lead with a live email costs $0.0015–$0.003 depending on your Apify plan, a company row $0.0015–$0.002, and the preview that sizes a profile is free.
Clay does far more than list building (custom columns, AI writing, CRM sync). If what you use it for is "find the accounts, find the people, get the emails", this is that, priced per row and callable from Claude. To enrich a CSV you already have, use Waterfall Lead Enrichment in this family.
Measured runs
On the live database, 31 October 2026:
| Run | Rows | Time |
|---|---|---|
| Free preview, US software companies 51–200 + their leadership | 3 counts | 6 s |
| 5 US software companies 51–200, 2 leaders each with email | 5 companies, 9 leads | 8 s |
| 5 US software companies hiring SDRs, sales leaders, 2 jobs each | 5 companies, 7 leads, 10 jobs | 10 s |
| 6 founders and CEOs of US fintechs with a Series A since 2025 | 6 leads | 8 s |
| 6 backend engineers in Germany, 5+ years, profiles only | 6 people | 4 s |
| 3 account domains, C-level and VPs with email | 3 companies, 5 leads | 4 s |
| 5 US seed and Series A startups hiring account executives, founder and one posting each | 5 companies, 5 leads, 5 jobs | 8 s |
| 5 US software companies, a marketing VP or CMO in the seat since September 2025 | 5 companies, 5 leads | 13 s |
| 5 former Stripe, Notion or Figma people now leading elsewhere in the US | 5 leads | 6 s |
| 5 product people in the UK between jobs, personal email | 5 leads | 3 s |
Runs with person filters a company roster cannot answer (city, headline, past employers) search people over batches of companies and take longer: 4 companies with marketing leaders living in New York took 16 s.
Honest limits
- Not every company has people on record at every level. Small companies often have only founders; the run note says how many companies were skipped.
- Emails are on record, not verified at run time. Run your usual verifier before a large send. Addresses are never guessed from a pattern.
- Job postings follow the jobs data's own date (
jobsDataAsOfon every job row), which can be several days behind today. - Funding is the last recorded round, one per company:
seedmeans "has not raised past seed yet". Records of large and older companies are often missing or out of date, so pair an early stage with a size cap. seniorityis filled on rows from a company roster. People found through the people search (headline, city, past employers, experience) carry their title only.- A search over posting text (
hiringJobKeywords) is slower the first time a profile runs; the same search again within minutes is fast. - Company descriptions are read in their first 500 characters.
- A person's country is where they live, from their profile; a company's country is its headquarters.
Ready-made examples
Each one opens with the input filled in; press Try for free and change it to your own.
- Funded Startups Hiring Their First Sales Reps, with Founders: 39 US seed and Series A startups posting AE or SDR jobs in the last 30 days, with founders' emails and the posting. A first sales hire signal.
- Recently Funded Startups in the USA, with Founders' Emails: 1,102 US seed and Series A startups with 11 to 200 staff funded since July 2025, with round, amount, date and founders' emails (count of 31 Oct 2026).
FAQ
Is this Clay? No. It is an independent Actor that covers the list-building part of a Clay workflow. It is not affiliated with Clay.
Do I need Claude? No. The form works on its own and the JSON input can come from any script, schedule or integration. Claude makes it faster to describe a profile and compare segments.
How do I keep the cost under control? Run previewOnly first, set
maxCompanies and maxPeople, and when calling through the API or MCP set
maxTotalChargeUsd on the run: it stops when the budget is spent and keeps
what was delivered.
Can I rerun weekly and get only new accounts? Yes: point
excludeDatasets at last week's dataset.
Who reads the reviews and issues? The people who build it. If a filter is missing, open an issue.
Which actor in this family?
| Actor | Input → output |
|---|---|
| Full ICP Search (this one) | a profile → companies, people and jobs |
| B2B Leads Finder | person filters → leads with a live email, mobile numbers on request |
| People Database Search | person filters → people, free counts and market breakdowns |
| Company Database Search | company filters → companies |
| Hiring Companies Finder | job search → the employers behind it |
| Waterfall Lead Enrichment | your CSV → emails, phones, company data |
Free Apify plan
Free accounts get the same rows as paid ones, with three limits. A run delivers at most 100 results when started from Apify Console and 25 when started through the API, a schedule or an integration; an account gets 500 dataset rows per calendar month on this Actor, found rows and misses alike; and a row that finds nothing carries only its status. Previews and counts stay free and outside the monthly allowance. When a limit stops a run, the status line and the last dataset row say which limit it was, what is left and when it resets. Any paid Apify plan removes all of this: Starter is $19/month and includes $19 of usage.
Feedback and reviews
How did it go? A rating on this Actor's Reviews page tells the next buyer what to expect; we read every word. Got a wrong or stale row? Open the Issues tab with the run ID. Issues are public, so leave out emails, phones and names; the run ID is enough for us to find the row.
Disclaimer
This Actor is an independent product. It is not affiliated with, endorsed by or sponsored by Clay Labs or LinkedIn. It does not access, crawl or scrape any of them at run time: answers come from our own database of publicly available professional and company data, and the names only describe the kind of data it covers. To have a person's data removed, open an issue on this Actor with only the profile link — nothing else is needed, and it is removed from every listing.