Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

Role playbook

How to Sell to a COO (and Size the List First)

What a COO buys, who else is in the room, how many are mailable by sales region, and four first lines you can send today.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

TL;DR

  • A COO buys to make the business run with fewer surprises. Sell a change in cycle time, cost per unit or error rate, not a feature list.
  • Count first, send second. On 2026-10-21 LeadOcean showed 335,376 mailable C-level people titled "COO" or "Chief Operating Officer" worldwide, 156,268 of them in North America.
  • 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.
  • curl and jq.
  • Optional: Claude or any MCP client connected to https://api.leadocean.io/mcp, which has 13 tools including free counts.

What a COO actually cares about

A COO is judged on whether the company delivers what it sold, on time and at a cost the plan allows. Every email you send gets read against that.

They care about four things, in this order.

  1. Throughput and cycle time. How much faster does work move from request to done? A COO wants the before and after in days or hours.
  2. Cost per unit. What does one order, ticket, hire or shipment cost today, and what does it cost after you arrive?
  3. Reliability. What breaks when volume doubles? A COO has been paged by a failure once and will remember it.
  4. Adoption effort. Who has to change how they work? A tool that needs three teams to retrain is a tax on the COO's calendar.

They do not care about your roadmap. They care whether the floor, the queue or the pipeline runs better in a quarter.

What kills the deal

COOs say no for practical reasons. Answer them in the first email, not the third.

  • "We do not have the capacity to implement this." Offer a pilot on one team, with a named owner and a two-week scope.
  • "Talk to the VP of Operations." Good. Send a short note they can forward, with one number and one date.
  • "This touches too many systems." Say exactly which systems you touch and which you do not.
  • "Show me it works here." Bring a worked example with assumptions written out. Never quote a result you have not measured.

Where a COO sits in the buying committee

A COO is usually the sponsor who owns the outcome. They are often the economic buyer for anything that changes how work flows. In smaller companies the CEO also holds this role, so the COO title is rarer there.

Four roles show up around them:

Write to the COO as someone who will ask one question. It is "What changes on the floor, and who has to do the work?" Give your champion the answer in one sentence.

Step 1: Count COOs by sales region (free)

Start with a count. It spends zero records and tells you whether the segment is worth a campaign.

leadocean_count_leads counts mailable people by default (verified, catch_all_valid and catch_all addresses). Run it from any MCP client:

json
{
  "tool": "leadocean_count_leads",
  "arguments": {
    "title": ["Chief Operating Officer", "COO"],
    "jobLevel": ["C-Team"],
    "salesRegion": ["NORAM"],
    "facets": false
  }
}

Repeat with EMEA, APAC and LATAM, or omit salesRegion for the worldwide figure. Title search matches job-title keywords, and these two phrases leave out "VP of Operations" or "Head of Operations". Run them as separate counts.

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, filtered by the two titles above, jobLevel C-Team and the default mailable email statuses.

RegionMailableEveryone matchingEmployers covered
Worldwide335,3761,236,104about 168,221
NORAM156,268444,747about 78,722
EMEA33,844130,17124,744
APAC19,17079,96812,999
LATAM5,09219,5793,852

Three things to read from this. North America holds 47% of the worldwide mailable list (156,268 of 335,376). The mailable column is about 27% of everyone matching, which is why you count mailable before you plan volume. And the four regions add up to 214,374, well under the worldwide figure, so many records carry no sales region. Use the worldwide count when you do not care where the COO sits.

Worldwide and NORAM employer figures are close estimates, not exact. The EMEA, APAC and LATAM figures are exact.

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.

bash
curl -s -X POST https://api.leadocean.io/v1/people/search \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": ["Chief Operating Officer", "COO"],
    "jobLevel": ["C-Team"],
    "salesRegion": ["EMEA"],
    "emailStatus": ["verified"],
    "limit": 25
  }' | jq '.data[] | {name: .profile_data.profile_full_name, person_id: .meta.source_ids.person_id}'

Add a company-size filter next if you sell to one segment, for example "employeeRange": ["201-500"]. 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.

bash
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], .data.resume_data.certifications'

This costs one record. A person we hold nothing for returns a 404 and costs nothing.

Look at the path. A COO who came up through supply chain or customer support reads process and service levels first. One who came from consulting or finance reads cost and structure. A Six Sigma or PMP certification tells you they will ask for the method behind your numbers.

How to size the operations side of the room

A COO rarely evaluates alone, so count the people below them too. Run the same free count with jobFunction: ["Operations"] and jobLevel: ["VP"] or ["Director"], and compare it with the COO count.

The ratio tells you how many operations leaders exist per COO in a region. A high ratio means you can multi-thread: write to a VP of Operations and a Director in the same week, with the same number in both emails. A low ratio means the COO is often the only operations name on record, so write to them directly and keep the ask small.

Counts with jobLevel or jobFunction are free and spend no records. Label each one by what you filtered, because a mailable count is not a count of everyone.

Step 5: Write the first line

The first line must show you know the job. Pick one angle and keep the email under 90 words.

text
1. Cycle time: "If this cuts {process} from {X} days to {Y}, who on your team owns the change?"
2. Cost per unit: "What does one {order/ticket/hire} cost you today? I can show where the cost sits."
3. Reliability: "What happens to {process} when volume doubles? We built for that case."
4. Territory: "I counted {N} operations leaders at companies like {Acme}. Want the list and the method?"

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 region. A North American COO at a growth company often wants cycle time and a clear owner. In EMEA, lead with reliability and process. In APAC and LATAM, lead with cost per unit and a small pilot.

These are starting points from how the segments are shaped, not measured results. Do not claim a reply rate you have not measured. 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 includes it, and Agency exports 50k rows a file. The ceiling is 50,000 rows a request and 500,000 rows a day.

bash
curl -s -X POST https://api.leadocean.io/v1/exports \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "coo-list",
    "filters": {
      "title": ["Chief Operating Officer", "COO"],
      "jobLevel": ["C-Team"],
      "salesRegion": ["EMEA"],
      "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.

What you get

The count in step 1, run on 2026-10-21 with the two titles, jobLevel: ["C-Team"] and salesRegion: ["EMEA"], returned:

json
{
  "total": 33844,
  "totalIsExact": true,
  "totalAll": 130171,
  "distinctCompanies": 24744,
  "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.

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe", "profile_headline": "Chief Operating Officer at Acme" },
      "contact_data": {
        "has_email": true,
        "email_status": "verified",
        "email_type": "work",
        "contact_current_experiences": [
          { "job_title": "Chief Operating Officer", "company_name": "Acme", "company_domain": "acme.com" }
        ]
      },
      "meta": { "source_ids": { "person_id": "1234567890", "person_group_id": "1234567890" } }
    }
  ],
  "meta": { "count": 1, "nextCursor": "..." }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerCheck $LEADOCEAN_API_KEY is set in this shell and sent as x-api-key.
429Above the plan's rate limit (5 a second on Free, 200 on Agency)Honor Retry-After, or pace the loop.
402Out of recordsThe Free plan's 1,000 records are one-off. Move to Solo ($97 a month) or Agency ($497 a month).
Empty dataA filter value does not match an exact enum stringCheck values with leadocean_list_enum_values. salesRegion takes NORAM, LATAM, EMEA or APAC.
Export refusedOver 50,000 rows a request or 500,000 a daySplit the export by region or company size.
Export refused on FreeBulk CSV export is not on FreeUse search with limit up to 100, or move to Solo.

FAQ

Is a COO the same as a VP of Operations?

No. A COO is a C-level officer who owns how the company runs and often reports to the CEO. A VP of Operations usually reports to the COO and runs a function. Sell to the VP for the evaluation and give them the case to take upward.

Should I search for other operations titles too?

Yes. Title search matches job-title keywords. Count "Head of Operations", "VP Operations" and "Director of Operations" separately, then merge the lists on meta.source_ids.person_group_id, which marks one person across duplicate records.

How many COOs can I actually email?

On 2026-10-21 the mailable count worldwide was 335,376 for "COO" and "Chief Operating Officer" at C-Team level. The default count includes verified, catch_all_valid and catch_all addresses. Bounces are not refunded, so read email_status before you send.

How is this different from selling to a CFO or an engineering leader?

The method is the same: size, sample, read one profile, write one angle. Only the pain changes. See how to sell to a CFO and how to sell to a VP of Engineering.

What does this cost?

The counts are free. The recipe spends about 26 records, well inside the 1,000 on the Free plan. See pricing for Solo and Agency.

More role playbooks are in the blog.

Count your COO list before you write a word

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →