ETB2B Key People Refresh avatar

ETB2B Key People Refresh

Under maintenance

Pricing

Pay per usage

Go to Apify Store
ETB2B Key People Refresh

ETB2B Key People Refresh

Under maintenance

Single company → verified current key people (leadership + sales/marketing), live-verified from LinkedIn current position (no stale/namesake), seniority-ranked. Powers the ETB2B portal Refresh Key People button. By RS Niraj, ETB2B (Times Internet).

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Dheeraj Singh Yadav

Dheeraj Singh Yadav

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

Share

Lightweight single-company key people actor for the ETB2B portal's "🔄 Refresh Key People" button.

Runs ONLY the key-people cascade (no full company/event enrichment): company_name → SERP discovery → harvestapi live verification → verified key_people JSON.

What it returns (per company)

Only verified current employees matching the target-designation dictionary:

  • Leadership: CEO, CTO, CFO, COO, CIO, CISO, CHRO, President, MD, Country Head/Manager
  • Sales & Marketing: CMO, CRO, CGO, Head of Sales/Marketing/Digital/Demand-Gen/Brand/Partnerships, VP/GM/Director/Associate-Director (Sales/Marketing), Regional/Zonal Sales Head, National Sales Manager, Brand/Product-Marketing/Growth/Performance/Marketing Manager

Guarantees (mirrors the fixed bulk SponsorScope logic):

  • is_current_employee is strictly True — company + role from the person's live LinkedIn current position; end-dated roles rejected → no stale / no namesake (e.g. someone who moved to another company is dropped).
  • Bare "Director"/"Manager"/"Head"/"VP" with no function-anchor → rejected.
  • Sorted seniority-primary (Founder > CEO > CXO > VP/Director > Head > Manager); India-location is a tiebreaker only.
  • No hard cap — returns all who pass.

Input

{ "company_name": "Zoho", "apifyToken": "<full-permission token>" }

The runtime token has limited permissions and cannot start the SERP/LinkedIn child actors, so the caller passes apifyToken. Falls back to env APIFY_TOKEN for local runs.

Output (dataset item[0])

{
"company_name": "Zoho",
"count": 6,
"key_people": [
{ "name": "...", "designation": "...", "company": "...",
"linkedin": "...", "image": "...", "location": "...",
"is_current_employee": true, "seniority_score": 90 }
],
"_kp_source": "serp"
}

How the portal should call it (reliable — avoids HTTP-0)

Do not use run-sync (long-held connection → HTTP-0 under load). Use async run + poll + fetch:

  1. POST /v2/acts/etb2b-keypeople-refresh/runs?token=<TOKEN> body {"company_name":"X","apifyToken":"<TOKEN>"}run.id, defaultDatasetId
  2. GET /v2/actor-runs/<run.id>?token=... — poll every 3–5s until status ∈ SUCCEEDED/FAILED/ABORTED/TIMED-OUT
  3. GET /v2/datasets/<defaultDatasetId>/items?token=...&clean=true[ { company_name, key_people[] } ]
  4. Retry 2–3× on HTTP 0 / 5xx / timeout at each step.

Notes

  • Key-people logic (sponsor_enrichment.py, speaker_enrich.py) is copied from the bulk SponsorScope actor. Any future key-people fix must be synced to both.
  • Cascade-ready: when the Mongo → B2B/Solar → SERP source-cascade is added inside _fetch_key_people_one, this actor picks it up automatically.

By RS Niraj, ETB2B (Times Internet).