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

Role playbook

How to Sell to a Procurement Manager (and Count the List by Region)

What a procurement manager protects, who else is in the room, how many are mailable by 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 procurement manager protects the company from a bad purchase. Sell them a clean comparison and a low-risk path, not urgency.
  • Count first, send second. On 2026-10-21 LeadOcean showed 39,322 mailable people titled Procurement Manager worldwide, 13,742 of them in EMEA and 13,315 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 procurement manager actually cares about

A procurement manager is judged on price, risk and process. They rarely pick the product. They make sure the choice survives an audit.

They care about four things, in this order.

  1. Risk. A vendor that fails costs more than a vendor that is dear. They look at contract terms, data handling and exit paths.
  2. Total cost. They compare the full bill, not the list price. Ask what the buyer pays at their volume, and state it plainly.
  3. Process. They run a set procedure: quotes, comparison, approval. Anything that skips it gets sent back.
  4. Alternatives. They are paid to ask for a second quote. Expect it, and give them the comparison yourself.

They do not respond to urgency. They respond to a clear sentence they can paste into a form.

What kills the deal

Procurement says no for process reasons. Answer them in the first email.

  • "Send it through the portal." Fine. Ask for the portal name and the category code, and ask who owns the request.
  • "We have a preferred vendor." Do not argue. Ask when that contract renews.
  • "Who is your reference customer?" Do not invent one. Offer the free plan, so they can test before they commit.
  • "We need a security questionnaire." Say you will answer it. Do not claim certifications you cannot show.

Where a procurement manager sits in the buying committee

A procurement manager is a gatekeeper, not a champion. On most deals they sit between the user who wants the tool and the executive who signs. They shape price and terms late in the cycle.

Win the champion, then give procurement a one-page comparison before they ask for it.

Step 1: Count procurement managers by 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. This filters on the title phrase, so it also catches titles that contain it.

json
{
  "tool": "leadocean_count_leads",
  "arguments": {
    "title": ["Procurement Manager"],
    "salesRegion": ["EMEA"],
    "facets": false
  }
}

Repeat with NORAM, APAC and LATAM, or leave out salesRegion for the worldwide figure. Enum values are exact strings, so check them with leadocean_list_enum_values if a count comes back empty.

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 title: ["Procurement Manager"] and the default mailable email statuses.

RegionMailableEmployers coveredAll matches (any email status)
Worldwide39,32216,439137,015
NORAM13,3156,31034,899
EMEA13,7426,45255,938
APAC7,6303,75029,954
LATAM1,7588595,038

Read three things from this. EMEA and North America are nearly equal, at 35% and 34% of the worldwide mailable list. APAC is a real market at 7,630. And the last column shows how much you would mail blind: worldwide, 137,015 match but only 39,322 are mailable.

The four regions add up to 36,445, not 39,322. The remaining 2,877 mailable people have no region on file, so they appear only in the worldwide row.

The employer column counts one company once. It shows how many separate buying committees you can reach, not how many people.

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": ["Procurement Manager"],
    "salesRegion": ["EMEA"],
    "emailStatus": ["verified"],
    "limit": 25
  }' | jq '{rows: (.data | length), next: .meta.nextCursor}'

Add employeeRange next if you sell to one segment, for example ["1001-5000"]. Large companies run formal procurement, so start there. Page by sending meta.nextCursor back as cursor. 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. Each search row carries its id 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": "1234567890", "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 at the path. Someone who moved from finance or operations into purchasing thinks in cost. Someone with a supply chain certification thinks in process and supplier risk.

Step 5: Write the first line

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

text
1. Comparison: "I wrote a one-page comparison of us against two alternatives, with the full cost at your volume. Want it before you ask?"
2. Risk: "You can test us on the free plan before any contract. Who owns vendor intake at your company?"
3. Process: "Tell me the portal and category code, and I will submit the request myself."
4. Territory: "I counted {N} mailable procurement managers in your region on {date}. Want the list?"

Send lines 1 and 2 only if they are true for your product. The comparison line works because it does the buyer's job for them. The territory line works because it is checkable: you ran a free count, so the number is real.

Match the angle to the region. In EMEA and North America the pool is large, so lead on comparison and risk. In LATAM the count is small, so write each email by hand.

These are starting points, 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 ($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.

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": "Procurement managers EMEA",
    "filters": {
      "title": ["Procurement Manager"],
      "salesRegion": ["EMEA"],
      "emailStatus": ["verified"]
    },
    "limit": 5000,
    "preset": "full"
  }'

The body takes filters (any people-search filter set), limit (rows) and a column preset. Poll GET /v1/exports/{id} until it returns a downloadUrl.

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 title: ["Procurement Manager"] and salesRegion: ["EMEA"], returned:

json
{
  "total": 13742,
  "totalIsExact": true,
  "totalAll": 55938,
  "distinctCompanies": 6452,
  "credits": 0
}

total is the mailable count. totalAll is everyone matching without the email filter. The call cost no records.

A search row, response shape from the API reference, with placeholder values:

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe" },
      "contact_data": {
        "has_email": true,
        "email_status": "verified",
        "contact_current_experiences": [
          { "job_title": "Procurement Manager", "company_name": "Acme", "company_domain": "acme.com" }
        ]
      },
      "meta": { "source_ids": { "person_id": "1234567890" } }
    }
  ],
  "meta": { "count": 1, "credits": 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, EMEA, APAC or LATAM.
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 procurement manager the same as a purchasing manager?

Often the work is the same, but the titles differ and the count only matches the phrase you send. Run the count again with "Purchasing Manager" or "Sourcing Manager" and compare totals. You can also add jobFunction: ["Purchasing"] to catch the department.

Does the count include only people titled "Procurement Manager"?

It counts people whose title matches that phrase. Heads of procurement and category managers with other titles are not in it. Add those titles to the title array if you sell to them.

How many procurement managers can I actually email?

On 2026-10-21 the mailable count worldwide was 39,322 for the title phrase "Procurement Manager". The default count includes verified, catch_all_valid and catch_all addresses. Bounces are not refunded, so read email_status before you send.

Should I email procurement first or the user?

The user first. Procurement joins late and rarely starts a purchase. Email procurement early only when you already know a contract is up for renewal.

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 procurement manager 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 →