PR Newswire Personnel Scraper — Executive Moves avatar

PR Newswire Personnel Scraper — Executive Moves

Pricing

$4.00 / 1,000 per announcement returneds

Go to Apify Store
PR Newswire Personnel Scraper — Executive Moves

PR Newswire Personnel Scraper — Executive Moves

Scrape PR Newswire's personnel-announcement feed into executive-move rows: company, publication date, signal type (appointment, promotion, board, departure) and, where the release text states it plainly, the executive's name and new title. No login.

Pricing

$4.00 / 1,000 per announcement returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

📣 PR Newswire Personnel Scraper — executive moves as structured rows

Turn PR Newswire's personnel-announcements feed into a job-change signal. One row per announcement: company, publication date, signal type (appointment, promotion, board seat, departure), the headline, the release URL, the company's own domain — and, where the release text states it plainly, the executive's name and new title.

A newly appointed CxO changes vendors in their first 90 days. This is the open version of that signal.

What does this actor do?

It walks PR Newswire's personnel subject list, 100 releases per page. The list advertises ~13,700 releases but PR Newswire stops paginating at 10,000 results, which is as deep as any scraper can go — roughly the last 9 months. It opens each release and returns:

  • 🏢 company — the issuing company, taken from the release's own SOURCE line
  • 🌐 companyDomain — the company's website domain, so the row joins to your CRM
  • 📅 datePublished — exact publication timestamp
  • 🏷️ signalTypeappointment · promotion · board-appointment · departure · transition
  • 👤 person — the executive, validated (see below) · 💼 title — the role text as the release words it. person is validated; title is not, so about 1 in 5 titles carries a trailing clause ("…, effective September 14") or is cut mid-phrase. Treat it as a hint, not a clean field.
  • 🧭 parsedFromrelease-text or headline, so you know how the name was obtained
  • 📰 headline, releaseUrl, listedAt, dateline
  • 📝 releaseSummary — the first 400 characters of the release, currently prefixed with a stray release-body container "> marker

Read this before you buy: what actually parses

Being straight about this, because it decides whether the actor is useful to you.

FieldFillNote
headline, releaseUrl, listedAt100%straight from the list page
datePublished100%from the release page — see note
company94%from the release's SOURCE line; names containing periods ("The J. M. Smucker Company") can truncate
signalType92%classified from the announcement wording
companyDomain71-78%the company's own site, not a wire domain; taken from the first non-wire URL in the release, so occasionally it is a partner's domain
dateline~50%city/state where the release was issued
person + title30-45%varies with the week's release mix — see below

Everything below listedAt comes from opening the release. Leave the fetchReleaseText input on (the default); if a release page cannot be read, the row still ships and is still charged with those fields empty.

The executive name parses on a minority of releases, and that is deliberate. Release text states a move in a regular way ("…today announced the appointment of Travis Hendren as Chief Executive Officer") and that parses cleanly. Headlines do not: a naive headline parser turned "UT Health San Antonio names NIH expert inaugural director of…" into the person "NIH expert inaugural". So this actor parses the release body first, uses only strict headline patterns as a fallback, and rejects any candidate containing a lowercase word.

It emits null for person rather than a guess. Every candidate name must pass a validator that rejects any phrase containing a lowercase word, which is what stops "NIH expert inaugural" becoming a person. A wrong executive name is worse than a missing one. Note the same validation is not applied to title.

If you only want rows with a confirmed person, set requirePerson — you will get the 30-45% of the feed that parses, and you are not charged for the rows that are dropped.

What you still get on the rest of the rows: company, domain, date, signal type and the headline — which usually names the person in plain English for a human or an LLM to read.

Example input

{
"feed": "personnel",
"keywords": ["CEO", "Chief Executive", "CFO"],
"requirePerson": true,
"maxItems": 500
}

Who is this for?

Executive-search firms, GTM teams who sell to newly appointed leaders, vendors tracking buying- committee change, and anyone building a job-change signal without paying per-contact for one.

Honest limits

  • No media-contact emails. PR Newswire does not publish contact blocks on the public web release — we checked releases across four subject lists and found none. If you need journalist contacts, this source cannot give them to you and neither can any other actor reading it.
  • The personnel list is not purely personnel. Some releases in it are funding or expansion news; signalType is null on those and they are easy to filter out.
  • One release can announce several people. Only the first parsed executive is returned.
  • The same move can appear as several rows. PR Newswire re-posts releases as French/German/ Spanish translations and sometimes twice in English, each under its own URL — so each is a separate row and a separate charge. Roughly 3-7% of the feed. The person/title parser is English-only, so those rows come back with person empty. Dedupe on headline or on the person if you only want unique moves.
  • company is the issuing organisation, which for an agency-issued release is occasionally the agency rather than the employer.

Pricing

WhatPrice
Per announcement returned$0.004

You are charged only for rows delivered — filtered rows cost nothing.

FAQ

How far back does the feed go? About 10,000 releases — roughly the last 9 months. The list advertises ~13,700 but PR Newswire refuses to paginate past the 10,000th result, so that is the hard ceiling regardless of maxItems.

Can I run it daily for new moves only? Yes — sort order is newest-first, so a small maxItems each day gives you the latest.

Why is person empty on some rows? The release text did not state the move in a form that could be parsed with confidence. The actor returns null rather than risk a wrong name. The headline is still there.

Can I filter to CEOs only? Put CEO and Chief Executive in keywords — the filter runs on the headline.

Do I need a proxy? No. The site is plain server-rendered HTML with no anti-bot.

Can I use another PR Newswire section? Yes — feed also accepts all releases, financial services, health and science/technology.

What is parsedFrom for? It tells you whether the name came from the release text (most reliable) or a strict headline pattern, so you can trust-rank rows.

Is this legal? These are press releases — published specifically to be read and redistributed. Only public pages are read, and no login or paywall is involved.

Data source and fair use

Data comes from PR Newswire's public news-release pages. Factual fields are extracted (who, what role, which company, when); release prose is not reproduced beyond a short summary field.