PR Newswire Personnel Scraper — Executive Moves
Pricing
$4.00 / 1,000 per announcement returneds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
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 ownSOURCEline - 🌐
companyDomain— the company's website domain, so the row joins to your CRM - 📅
datePublished— exact publication timestamp - 🏷️
signalType—appointment·promotion·board-appointment·departure·transition - 👤
person— the executive, validated (see below) · 💼title— the role text as the release words it.personis validated;titleis 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. - 🧭
parsedFrom—release-textorheadline, so you know how the name was obtained - 📰
headline,releaseUrl,listedAt,dateline - 📝
releaseSummary— the first 400 characters of the release, currently prefixed with a strayrelease-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.
| Field | Fill | Note |
|---|---|---|
headline, releaseUrl, listedAt | 100% | straight from the list page |
datePublished | 100% | from the release page — see note |
company | 94% | from the release's SOURCE line; names containing periods ("The J. M. Smucker Company") can truncate |
signalType | 92% | classified from the announcement wording |
companyDomain | 71-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 + title | 30-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;
signalTypeis 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
personempty. Dedupe onheadlineor on the person if you only want unique moves. companyis the issuing organisation, which for an agency-issued release is occasionally the agency rather than the employer.
Pricing
| What | Price |
|---|---|
| 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.