Telecom is a committee sale with a long cycle. A carrier, a regional ISP and a tower company buy for different reasons, so you build one list per buyer type.
This guide picks the buying committee, finds it with LeadOcean filters, sizes the list with a free count and drafts the first message for each role.
TL;DR
- Target three groups: operators and carriers, ISPs and cable or fiber providers, and infrastructure and satellite companies. Each has its own committee.
- Size first with a free count. On 2026-10-21, four telecom industries held 244,706 mailable VPs, directors and C-level people across 26,319 companies.
- The recipe takes about 40 minutes and spends about 30 records, so it fits inside the Free plan's 1,000.
Prerequisites
- A LeadOcean account on the Free plan. Sign up at app.leadocean.io, no card.
- An API key exported as
$LEADOCEAN_API_KEY. curlandjq, or any HTTP client.- Optional: the hosted MCP server at https://api.leadocean.io/mcp if you would rather run the counts from Claude.
Step 1: Pick the buying committee
Telecom purchases pass through engineering, operations, finance and procurement. Name the roles before you touch a filter.
| Buyer type | Economic buyer | Champion | Gatekeeper |
|---|---|---|---|
| Operator or carrier | CTO, CIO, SVP Network | VP or Director of network engineering | Vendor management, procurement |
| ISP, cable or fiber provider | CEO or COO on smaller firms, CTO on larger | Director of network operations | Finance, purchasing |
| Infrastructure and satellite | CEO, VP Engineering | Director of operations or product | Procurement, legal |
Pick the champion by what you sell. A billing or OSS product goes to operations and IT. A network product goes to engineering. A managed service goes to the person who owns the contract renewal.
LeadOcean has no single "telecom buyers" list. You build the segment from industry values. Look the exact strings up before you use them.
for q in telecom wireless satellite; do
curl -s -G "https://api.leadocean.io/v1/enums/industry" \
--data-urlencode "q=$q" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]'
doneOn 2026-10-21 the lookup returned Telecommunications, Telecommunications Carriers, Satellite Telecommunications, Wireless, Wireless Services and Media and Telecommunications. Enum values are exact strings. The same lookup is free through the MCP tool leadocean_list_enum_values.
Step 2: Turn the committee into filters
Write the filters as flat JSON. Every filter is an array, even when it holds one value.
{
"industry": [
"Telecommunications",
"Telecommunications Carriers",
"Satellite Telecommunications",
"Wireless"
],
"jobLevel": ["C-Team", "VP", "Director"],
"employeeRange": ["201-500", "501-1000", "1001-5000"],
"country": ["US"]
}Two more values are worth a second pass: Wireless Services and Media and Telecommunications. Keep them in a separate list, because the buyers and the pitch differ.
Narrow by function when one product has one owner. A network tool sells to Engineering. A billing, OSS or security product sells to Information Technology and Operations. A procurement-led deal also wants Purchasing.
The title filter takes keywords. Use network, OSS or vendor management when the function field is too coarse. Wrap a value in brackets for an exact match.
Step 3: Size the list with a free count
Count before you pull. A count costs no records and can run as often as you like.
curl -s "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["Telecommunications","Telecommunications Carriers","Satellite Telecommunications","Wireless"],
"jobLevel": ["C-Team","VP","Director"],
"limit": 1
}' | jq '.meta'count=true goes in the query string. The JSON body rejects unknown fields. The response has no rows, only meta.total (capped at 100,000) and meta.countOnly: true.
The MCP tool leadocean_count_leads returns the same count without the 100,000 cap and adds distinctCompanies, which tells you how many employers the people span. For the company side, GET /v1/companies/count takes the company-search filters and returns an exact total with breakdowns by industry, headcount band, HQ country and HQ state.
Step 4: Pull a 25-row test batch
Pull a small batch first. Read the titles. If half of them are the wrong role, tighten the filters before you spend more.
curl -s "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["Telecommunications","Telecommunications Carriers","Satellite Telecommunications"],
"jobLevel": ["C-Team","VP","Director"],
"employeeRange": ["501-1000","1001-5000"],
"country": ["US"],
"jobFunction": ["Engineering","Information Technology","Operations"],
"limit": 25
}' > batch.json
jq '.data | length' batch.jsonA page of 25 is 25 records. Page with cursor from meta.nextCursor when you want more. One search pages to 10,000 rows, and the last page carries meta.depthCapped: true. Narrow the filters instead of walking further.
Check the industry mix in the batch. The Telecommunications value is wide and holds more than carriers, so a first read tells you whether to add excludeIndustry or a title filter.
Each record carries an email status. Send to verified and catch_all_valid. Read the status before you send, because LeadOcean does not credit back bounces.
Step 5: Enrich the champions you will contact
Enrich only the people you will contact. Enrich takes exactly one of linkedin_url, email, phone or person_id.
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'Enrich also returns career history in resume_data: past roles, education and certifications. A prior role at a carrier or a vendor you know is a better opener than a job title. Past employers carry no company_id yet, so match them by name.
An enrichment that finds nothing is a 404 and costs nothing. For a phone number, call GET /v2/people/phone. A v2 contact call costs one record even when it finds nothing.
Step 6: Write messages that fit the buyer
Telecom buyers answer to uptime, cost per subscriber and regulatory deadlines. Open with the problem they own this quarter, not with your product.
| Buyer | Their pressure | First line angle |
|---|---|---|
| CTO or VP Network | Reliability, rollout schedule | A specific failure or delay you remove |
| Director of operations | Support load, tooling sprawl | Hours saved on a named process |
| Vendor management | Contract terms, vendor count | Fewer vendors or cleaner renewal terms |
| CFO or COO at an ISP | Churn, cost per customer | One cost number tied to their plan |
Regulation and network change windows shape timing. A buyer who is mid-rollout will not take a call about a new vendor, so ask about the next planning cycle and not the current one.
Procurement runs the process at larger carriers. A cold email rarely closes a deal there. Its job is a conversation with the champion who will then add you to a vendor review.
Keep it under 80 words. Plain example for a network operations director:
Subject: Ticket volume on your fiber installs
Hi Jane,
Acme Fiber handles installs across several regions. We give network ops
a single view of install status so fewer tickets reach the support queue.
Open to a 15-minute call next week?Names, domain and subject are placeholders. Use your own product and a claim you can back up.
Step 7: Split the list into three campaigns
Do not send one message to the whole list. Split it by buyer type and run each segment on its own copy.
- Operators and carriers. Industry
Telecommunications CarriersandWireless,jobLevelC-Team and VP, headcount 1001-5000 and up. Lead with scale and reliability. Expect a long cycle. - ISPs, cable and fiber. Industry
Telecommunicationsat 201-1000 employees. Smaller teams, shorter chains. The COO or CTO often decides, so keep the email short and about cost. - Infrastructure and satellite. Industry
Satellite Telecommunicationsplus a title filter fornetworkoroperations. These firms buy capacity, equipment and software on project timelines.
Run the count again for each segment. The totals will not add up to the combined list, because a person can match more than one filter set. Use the combined count for planning and the segment counts for sending.
Step 8: Rank accounts before you send
A list of 20,000 people is too many to write by hand. Rank the accounts and send to the top group first.
- Count people per company in the test batch. An account with three matching titles is a committee you can reach from several sides.
- Prefer people whose work email is
verified. It bounces less than a catch-all address. - Use
GET /v1/companies/{domain}/peoplefor your highest-ranked accounts. It lists the other people at one domain, so you can add the missing roles to a committee. - Drop accounts where the only match is a Staff or Other level title. Those rarely sign.
Check the company side too. POST /v1/companies/search returns the accounts themselves, and hasMailableContacts: true drops companies where nobody has a sendable email. That keeps you from ranking an account you cannot reach.
Send in batches of 50 to 100 and read the replies. If replies cluster on one role, move effort toward it. Telecom cycles are long, so plan several touches over weeks and not one blast.
What you get
Output of leadocean_count_leads on 2026-10-21 for the Step 2 industries with jobLevel C-Team, VP and Director, worldwide. The count includes only people whose best email is verified, catch_all_valid or catch_all.
{
"total": 244706,
"totalIsExact": true,
"totalAll": 899082,
"distinctCompanies": 26319,
"unsupportedFilters": []
}Now remove Wireless, add employeeRange of 201-500, 501-1000 and 1001-5000, and country US. The same count on the same date narrows to this:
{
"total": 21954,
"totalIsExact": true,
"totalAll": 64254,
"distinctCompanies": 1040
}Then add jobFunction of Engineering, Information Technology and Operations. The count narrows again.
Same date, same email rule:
{
"total": 2106,
"totalIsExact": true,
"totalAll": 5367,
"distinctCompanies": 416
}The result is a 2,106-person mailable list at 416 mid-sized and large US telecom companies. You cannot pull all of it on the 1,000-record Free plan, so rank by title and pull the first few hundred.
Response shape from the API reference (placeholder values). Search rows carry no contact points. Enrich with reveal_email for the address.
{
"success": true,
"data": [
{
"profile_data": {
"profile_full_name": "Jane Doe",
"profile_headline": "VP Network Operations at Acme",
"profile_url": "https://www.linkedin.com/in/jane-doe"
},
"contact_data": {
"has_email": true,
"has_phone": false,
"email_status": "verified",
"email_type": "work"
},
"meta": { "source_ids": { "person_id": "1234567890" } }
}
],
"meta": { "count": 1, "credits": 1, "nextCursor": "CURSOR" }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Check $LEADOCEAN_API_KEY is exported and sent in the x-api-key header |
| 429 | More than the plan's rate limit (5 requests a second on Free, 200 on Agency) | Wait for the Retry-After seconds, then retry slower |
| 402 | The 1,000 Free records are spent | Move to a paid plan or shrink the pull, since counts still work |
| Empty results | An enum value is not an exact string, such as "Telecom" | Resolve the value with list_enum_values first |
unsupported_filters on a count | A filter like fundingType or hqCity is not supported in people counts | Drop it and count without it |
meta.depthCapped: true | One search stops at 10,000 rows | Split by country or headcount band |
FAQ
Is there a telecom industry filter?
Yes, several. LeadOcean has 534 industry values, and six relate to telecom: Telecommunications, Telecommunications Carriers, Satellite Telecommunications, Wireless, Wireless Services and Media and Telecommunications. Telecommunications is by far the largest. Check the industry and title mix on a 25-row batch before you send.
Why is the worldwide count so large?
The worldwide count spans every country and every company size, including firms of 1 to 10 people. Add country and employeeRange first. On 2026-10-21 that took 244,706 mailable people down to 21,954 for the US at 201 to 5,000 employees.
How many records does this cost?
About 30: 25 for the test batch and a handful of enrichments. Counts, enum lookups and GET /v1/companies/count are free.
Can I download the whole list as a CSV?
Yes, on a paid plan. Bulk CSV export is not on Free. Solo is $97 a month and Agency is $497 a month, both with a fair-use pace instead of credits. See pricing.
Related
- Hub: all lead generation guides
- Lead generation for web3
- Lead generation for travel
- Lead generation for solar
Count your telecom buyers free, then pull only the ones you will email
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →