Finding companies that match your ideal customer profile is one of the hardest parts of B2B sales. Traditional firmographic filters (industry, size, location) only get you so far. What you really want is to find companies that look like your best customers, not just ones that match a checklist.
Today we're highlighting Ocean.io, an AI-powered B2B data platform that's scraped, cleaned, structured, and contextualized the whole damn internet into a lookalike search engine for your go-to-market, now available on Orthogonal.
What is Ocean.io?
Ocean.io is not another database that just scrapes LinkedIn and outdated registries. Their AI-driven platform collects, analyzes, normalizes, and organizes its data to help you find the most relevant companies. The platform covers 55 million company profiles, 250 million+ employee profiles, and 330 million data points, with a 98% CRM match rate. A team of over 25 data scientists continuously updates and refines the data to optimize accuracy.
Instead of using the same old industry codes and filters, Ocean.io's proprietary algorithm finds your next best-fit accounts at scale by matching you with lookalikes of your ideal customers.
Key Features
Lookalike Company Search
Razor sharp company targeting. Stop guessing who to target and start using your best-fit customers to find their twins. Provide a list of example company domains and Ocean.io's AI returns semantically similar companies ranked by relevance. Fine-tune results with filters like company size, industry, revenue, technologies, headcount growth, website traffic, department sizes, mobile apps, e-commerce, social media channels, year founded, and more. Each result comes with full firmographic data including employee counts, revenue ranges, department breakdowns, and funding data.
Lookalike People Search
Pinpoint the best people to target. Unlike other data providers who use outdated industry codes and filters, Ocean.io's algorithm is trained to find your next best-fit contacts at scale. Search for people at companies similar to your best customers, filter by job title, seniority, department, skills, location, and LinkedIn description. Combine these filters to define your ideal contact profile and get the right results every time.
Company Enrichment
Match any company by domain, name, registration number, or social handles and get back a comprehensive profile: name, description, countries, industry categories, employee count, revenue, year founded, technologies, technology categories, mobile apps, web traffic, social media handles, locations, department size breakdowns, headcount growth (3, 6, and 12 month windows), and impressum data for European companies.
Person Enrichment
Match a person by name, email, LinkedIn handle, or Ocean.io ID and enrich with job title, company, location, seniority, department, work history, skills, email, summary, photo, and LinkedIn URL. Optionally pass company context to improve matching accuracy.
Bulk Lookup
Look up and enrich multiple companies by domain or multiple people by LinkedIn handle in a single request. Domain redirections are handled automatically.
Data Warmup
Planning a large search or lookup? Use the warmup endpoint to check which companies exist in Ocean.io's database and trigger data gathering for missing ones. This ensures better coverage when you run your actual search or enrichment job.
Using Ocean.io with Orthogonal
Find Lookalike Companies
// Using @orth/sdk
// Install: npm install @orth/sdk
import Orthogonal from "@orth/sdk";
const orthogonal = new Orthogonal({
apiKey: process.env.ORTHOGONAL_API_KEY,
});
// Find companies similar to your best customers
const output = await orthogonal.run({
api: "ocean-io",
path: "/v3/search/companies",
method: "POST",
body: {
companiesFilters: {
lookalikeDomains: [
"stripe.com",
"plaid.com",
"brex.com"
],
companySizes: ["11-50", "51-200"],
},
size: 10
}
});
console.log(output);
// Returns ranked list of similar companies with full firmographic data
// Each result includes a relevance grade (A = most relevant)Find People at Similar Companies
// Find engineering leaders at companies similar to your best customers
const output = await orthogonal.run({
api: "ocean-io",
path: "/v3/search/people",
method: "POST",
body: {
companiesFilters: {
lookalikeDomains: [
"stripe.com",
"plaid.com"
]
},
peopleFilters: {
seniorities: ["C-Level", "VP"],
departments: ["Engineering"]
},
size: 10
}
});
console.log(output);
// Returns matching people with job titles, LinkedIn URLs, and company contextEnrich a Company
// Enrich a company by domain
const output = await orthogonal.run({
api: "ocean-io",
path: "/v2/enrich/company",
method: "POST",
body: {
company: {
domain: "notion.so"
},
fields: ["name", "employeeCountOcean", "revenue", "technologies", "industries", "headcountGrowth"]
}
});
console.log(output);
// Returns: name, employee count, revenue, technologies, industries, headcount growth, and moreEnrich a Person
// Enrich a person by LinkedIn handle (always returns all fields; no field selection for this endpoint)
const output = await orthogonal.run({
api: "ocean-io",
path: "/v2/enrich/person",
method: "POST",
body: {
person: {
linkedin: "satyanadella"
},
company: {
domain: "microsoft.com"
}
}
});
console.log(output);
// Returns: name, job title, seniority, department, work history, skills, email, summary, and more
// Note: person enrichment always returns the full profile; company enrichment supports field selection via the fields parameterBulk Company Lookup
// Enrich multiple companies at once
const output = await orthogonal.run({
api: "ocean-io",
path: "/v2/lookup/companies",
method: "POST",
body: {
domains: [
"stripe.com",
"notion.so",
"figma.com",
"linear.app"
]
}
});
console.log(output);
// Returns full enriched profiles for all matching companies in a single requestBulk People Lookup
// Look up multiple people by LinkedIn handle
const output = await orthogonal.run({
api: "ocean-io",
path: "/v2/lookup/people",
method: "POST",
body: {
linkedinHandles: [
"satyanadella",
"jeffweiner08",
"rbranson"
]
}
});
console.log(output);
// Returns full enriched profiles for all matching people in a single requestDiscover Valid Filter Values
Not sure what values to pass for company sizes, seniorities, departments, or industries? The data-fields endpoint returns all valid options for every search filter.
// Get all valid filter values
const output = await orthogonal.run({
api: "ocean-io",
path: "/v2/data-fields",
method: "GET",
});
console.log(output);
// Returns valid values for: industries, industryCategories, technologies,
// technologyCategories, regions, linkedinIndustries, departments,
// seniorities, companySizes, and moreUsing x402 Protocol
Ocean.io on Orthogonal also supports x402, an open protocol that enables native payments in HTTP. With x402, your agents can pay for API calls directly using USDC stablecoins, with no API keys required.
import { wrapFetchWithPayment } from "x402-fetch";
import { privateKeyToAccount } from "viem/accounts";
import type { Hex } from "viem";
const privateKey = process.env.PRIVATE_KEY;
if (!privateKey) {
throw new Error("PRIVATE_KEY environment variable is required");
}
const account = privateKeyToAccount(
(privateKey.startsWith("0x") ? privateKey : `0x${privateKey}`) as Hex,
);
const fetchWithPayment = wrapFetchWithPayment(fetch, account);
// Enrich a company with automatic payment
const response = await fetchWithPayment(
"https://x402.orth.sh/ocean-io/v2/enrich/company",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
company: { domain: "notion.so" }
})
}
);
const data = await response.json();
console.log(data);Use Cases
Account-Based Sales
Start with your top 3 to 5 customers, run a lookalike company search, and get back hundreds of similar companies ranked by relevance. No more guessing which filters define your ICP. Ocean.io's AI captures patterns that static filters miss.
Contact Discovery
Once you've found target companies with lookalike search, use people search to find decision-makers by seniority and department, complete with email addresses and LinkedIn profiles.
Market Mapping
Map competitive landscapes by starting with a few known players and letting Ocean.io surface the rest. Track headcount growth trends across 3, 6, and 12 month windows to spot companies that are scaling.
Technology-Based Targeting
Filter companies by their tech stack. Ocean.io tracks website technologies and technology categories, so you can find all companies using a specific tool or platform, then enrich with full firmographic profiles for targeted outreach.
CRM Enrichment
Enrich sparse company records with department sizes, revenue estimates, technologies, web traffic, and social profiles. Use bulk lookup to enrich multiple companies or people in a single request.
Why Agents Need Lookalike Search
Traditional search APIs give you filters. Ocean.io gives you AI-powered similarity matching built on vectorized data. This is a fundamentally different approach:
- Semantic similarity: "Find more like these" captures patterns that static filters miss, including industry positioning, company description semantics, and technology combinations
- Massive coverage: 55M company profiles, 250M+ employee profiles, and 330M data points with a 98% CRM match rate
- Continuously refined data: Over 25 data scientists dedicated to optimizing accuracy, so agents can trust the data before acting on it
- Headcount growth signals: Track hiring velocity per department to identify companies in growth mode
- Rich company profiles: Technologies, web traffic, department breakdowns, and funding data in every response
Try It Today
Sign up for Orthogonal and get $10 free credits to try Ocean.io and dozens of other APIs. No API keys to manage, no accounts to create.