You sell to a CRO by tying your offer to one number they already report: pipeline, win rate, cycle length or net revenue retention. This guide covers what a CRO cares about, who sits beside them, how many are reachable by region, and four first lines.
TL;DR
- A CRO owns the whole revenue line: sales, and often marketing, customer success and RevOps. Lead with one revenue number, not a feature.
- Count first, send second. On 2026-10-21 LeadOcean showed 13,761 mailable people with a C-Team job level and "Chief Revenue Officer" or "CRO" in the title across four sales regions, 8,644 of them in NORAM.
- The recipe takes about 25 minutes and spends about 26 LeadOcean records. Every count is free.
Prerequisites
- A free LeadOcean account and an API key from app.leadocean.io. Free gives you 1,000 records for life, no card, 5 requests a second.
- The key in your shell as
$LEADOCEAN_API_KEY. curlandjq.- Optional: Claude or any MCP client connected to
https://api.leadocean.io/mcp, which has 13 tools including free counts.
What a CRO actually cares about
A CRO is judged on one thing: revenue that the company can forecast and repeat. Everything they read passes that filter.
They care about four things.
- Predictable pipeline. Coverage, stage conversion and forecast accuracy. A missed forecast costs a CRO more than a missed deal.
- Rep productivity. Quota attainment, ramp time and the share of the week reps spend selling. Anything that removes admin work gets attention.
- Cost of acquisition. Cost per opportunity and payback period. The CFO asks about this every quarter, so the CRO needs an answer.
- Retention and expansion. Net revenue retention matters, because the CRO often owns customer success too.
They do not read feature lists. They read a sentence that moves one of these four numbers, and they read it in about ten seconds.
What kills the deal
CROs rarely object to the idea. They object to the cost of changing how the team works. Answer these in the first email.
- "Talk to my RevOps lead." Often the right outcome. Ask for the name and keep the CRO on the thread.
- "We just changed the stack." Do not argue. Ask what the team still cannot do.
- "Show me the number." Bring one count or one measured result, with the date. Never an invented benchmark.
- Too long. A CRO email over 90 words reads as a pitch to a junior. Cut it.
Where a CRO sits in the buying committee
A CRO is usually the executive sponsor, not the evaluator. They own the budget and the outcome, and they approve what the team recommends.
- The VP of Sales or VP of Revenue runs the day-to-day and brings the CRO a recommendation.
- RevOps or sales operations vets data quality, integration and risk. They often hold the real veto.
- The CFO checks cost and contract terms before the CRO signs. In a larger deal the CEO may also approve.
- The VP of Marketing joins when the buy touches lead flow. See how to sell to a VP of Marketing.
- The VP of Engineering joins when the buy needs an integration. See how to sell to a VP of Engineering.
- Talent leads matter when the buy changes hiring. See how to sell to a recruiter.
In a company under about 100 people the CRO may be the whole committee. Above that, write to the CRO when you have a count that makes a strategic point. Otherwise write to the VP or RevOps and make the forward easy.
Step 1: Count CROs by region (free)
Start with a count. It spends zero records and tells you whether a region is worth a campaign.
leadocean_count_leads counts mailable people by default: verified, catch_all_valid and catch_all addresses. The filter below uses jobLevel C-Team and two title keywords, so it also matches titles that contain them, such as "Chief Revenue Officer, EMEA". "CRO" is also short for other titles, so read the step 3 sample before you send.
{
"tool": "leadocean_count_leads",
"arguments": {
"jobLevel": ["C-Team"],
"title": ["Chief Revenue Officer", "CRO"],
"salesRegion": ["NORAM"],
"facets": false
}
}Repeat with EMEA, APAC and LATAM. Enum values are exact strings, so check them with leadocean_list_enum_values if a count comes back empty. For one country, use country with an ISO code such as ["DE"].
Step 2: Read the count for each region
Put the counts in one table before you pick a market. These ran on 2026-10-21 with jobLevel: ["C-Team"], title: ["Chief Revenue Officer", "CRO"] and the default mailable email statuses.
| Region | Mailable | Employers covered | All matches (any email status) |
|---|---|---|---|
| NORAM | 8,644 | 7,603 | 18,940 |
| EMEA | 3,208 | 2,657 | 9,466 |
| APAC | 1,289 | 948 | 6,900 |
| LATAM | 620 | 529 | 1,881 |
Read three things from this. NORAM is 63% of the mailable list across the four regions (8,644 of 13,761). EMEA is the second market, and APAC and LATAM are small enough to work one by one. And the last column shows how much of each region you would mail blind: in NORAM, 18,940 match but only 8,644 are mailable.
The count is mailable people, not companies. Employer figures come from distinctCompanies, and one company can list more than one CRO.
Step 3: Pull a sample from your best region
Pull 25 rows from the region you picked. This spends 25 records. Search is a flat JSON body, filters are arrays, and limit runs from 1 to 100.
curl -s -X POST https://api.leadocean.io/v1/people/search \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobLevel": ["C-Team"],
"title": ["Chief Revenue Officer", "CRO"],
"salesRegion": ["EMEA"],
"employeeRange": ["51-200", "201-500"],
"emailStatus": ["verified"],
"limit": 25
}' | jq '.data[] | {name: .profile_data.profile_full_name, person_id: .meta.source_ids.person_id}'Add the company-size filter first. A CRO at 60 people may run a handful of reps. A CRO at 5,000 often runs a global org with its own RevOps. Page with the cursor value from meta. One search pages to 10,000 rows, so narrow the filters instead of walking the whole index.
Step 4: Enrich one record to read the career history
Before you write, read one profile. Person enrich returns career history: past roles, education, certifications and awards. Past employers carry no company_id yet.
Enrich takes exactly one of linkedin_url, email, phone or person_id. Use the person_id a step 3 row carries at meta.source_ids.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_STEP_3", "reveal_email": true}' \
| jq '.data.resume_data.experiences[0:3]'This costs one record. A person we hold nothing for returns a 404 and costs nothing.
Look for the path. A CRO promoted from VP of Sales thinks in quota and headcount. One who came from customer success thinks in retention. A CRO hired from a larger company in the last year is building a plan and is open to new vendors.
Step 5: Write the first line
The first line must show you know the revenue motion. Pick one of these four angles and keep the email under 90 words.
1. Pipeline: "Acme's reps could start the quarter with {N} counted, mailable buyers in {region}. Want the count?"
2. Productivity: "How many hours a week do your reps spend building lists? What does that cost per quarter at your headcount?"
3. Forecast: "Bounced mail hides real pipeline. How do you check addresses before reps send?"
4. Territory: "I counted {N} mailable CROs in {region} on {date}. Want the list?"The territory line works because it is checkable. You ran a free count, so the number is real. Send it with the count and the date.
Match the angle to the company. A CRO at a 60-person company often still owns pipeline building, so lead with pipeline. A CRO at a larger company has RevOps for lists, so lead with forecast or cost. These are starting points from how the segments are shaped, not measured results. Test two angles on 100 contacts each and keep the winner.
Step 6: Save the list as a CSV
When the sample converts, export the list. Bulk CSV export is not on the Free plan. Solo ($97 a month) includes it, and Agency ($497 a month) exports 50k rows a file. The ceiling is 50,000 rows a request and 500,000 rows a day.
curl -s -X POST https://api.leadocean.io/v1/exports \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "cro-list",
"filters": {
"jobLevel": ["C-Team"],
"title": ["Chief Revenue Officer", "CRO"],
"salesRegion": ["EMEA"],
"employeeRange": ["51-200", "201-500"],
"emailStatus": ["verified"]
},
"limit": 5000
}'Search filters go inside filters, and limit sets the row count. Poll GET /v1/exports/{id} until the file is ready.
You can build the same export in the app at app.leadocean.io. The Exports page has a filter builder, a column picker and a price preview before you download. See pricing for the plans.
What you get
The count in step 1, run on 2026-10-21 with jobLevel: ["C-Team"], title: ["Chief Revenue Officer", "CRO"] and salesRegion: ["EMEA"], returned:
{
"total": 3208,
"totalIsExact": true,
"totalAll": 9466,
"distinctCompanies": 2657,
"credits": 0
}total is the mailable count. totalAll is everyone matching without the email filter. The call cost no records.
A search row follows the response shape from the API reference, shown here with placeholder values. Rows carry no addresses; enrich by person_id for those.
{
"success": true,
"data": [
{
"profile_data": { "profile_full_name": "Jane Doe", "profile_headline": "Chief Revenue Officer at Acme" },
"contact_data": {
"has_email": true,
"email_status": "verified",
"email_type": "work",
"contact_current_experiences": [
{ "job_title": "Chief Revenue Officer", "company_name": "Acme", "company_domain": "acme.com" }
]
},
"meta": { "source_ids": { "person_id": "1234567890", "person_group_id": "1234567890" } }
}
],
"meta": { "count": 1, "nextCursor": "..." }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Check $LEADOCEAN_API_KEY is set in this shell and sent as x-api-key. |
| 429 | Above the plan's rate limit (5 a second on Free, 200 on Agency) | Honor Retry-After, or pace the loop. |
| 402 | Out of records | The Free plan's 1,000 records are one-off. Move to Solo ($97 a month) or Agency ($497 a month). |
Empty data | A filter value does not match an exact enum string | Check values with leadocean_list_enum_values. Case matters (C-Team, not c-team, for jobLevel). |
| Export refused | The request is over 50,000 rows, or the day is over 500,000 rows | Split the export by region or company size, and spread it over days. |
FAQ
How do I find a CRO's email address?
Search by title, region and company size, then read email_status before you send. Enrich with reveal_email set to true returns the address for one person at one record. Send only to verified addresses first.
Should I email the CRO or the VP of Sales?
In a company under about 100 people, email the CRO. In a larger one, email the VP of Sales or RevOps and write the forward for them. Email the CRO directly only when you have a strategic point or a count that makes it.
How long should a cold email to a CRO be?
Under 90 words, with one question. A CRO will answer a question of one line and ignore a pitch of five paragraphs.
How many CROs can I reach by email?
On 2026-10-21, the filter in this guide counted 13,761 mailable people across NORAM, EMEA, APAC and LATAM. Your number depends on your size, industry and region filters, so run the free count.
Does the Free plan cover this recipe?
Yes, up to step 5. The counts are free and the sample and one enrichment spend about 26 of the 1,000 records. Bulk CSV export in step 6 needs Solo or Agency.
Back to the blog for more role playbooks.
Count the CROs in your market before you write the first email
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →