Hiring Manager Contacts - Who's Hiring Behind Any Job Posting
Pricing
from $50.00 / 1,000 results
Hiring Manager Contacts - Who's Hiring Behind Any Job Posting
Turn a job posting into the likely hiring managers and recruiters behind it: name, role and LinkedIn profile. About 3 in 4 postings return contacts, typically 5-10 each. Paste job IDs from any Hirebase job scraper. Pay only for contacts found. Business contacts only.
Pricing
from $50.00 / 1,000 results
Rating
0.0
(0)
Developer
Hirebase
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Hiring Manager Contacts for Hirebase Job Postings - Who's Hiring Behind the Role
Paste Hirebase job IDs in, get the likely hiring managers and recruiters behind those postings out: name, role and LinkedIn profile, researched posting by posting. Built on Hirebase, whose research agent reads the posting, the employer's career page and public professional profiles to work out who owns the role.
A job posting is a buying signal with no name on it. This actor puts the names on.
What to expect - measured on 100 real postings across 10 job categories:
- About 3 in 4 postings return contacts (75 of 100). The rest come back empty or fail on Hirebase's side, and are never charged.
- Ranked, with each person's relationship to the role - the hiring manager (the person the role reports to) first, then the leaders of its team, then recruiters and HR. Typically 3-10 contacts per posting, capped at 10.
- Filter to who you want - only hiring managers and team leaders, only legal or HR people, or skip people you already have. You pay only for the contacts returned.
- Every contact had a name, role and LinkedIn profile. Work email and phone number are optional add-ons (Reveal work emails / Reveal phone numbers), looked up per contact and charged only when found. Leave both off and this is a LinkedIn-first dataset.
- It takes time. Each posting is researched live in the background. Postings are researched in parallel and usually finish within 5-10 minutes (see How long does it take?).
These are likely contacts: people whose public role at the employer makes them the probable owner of the posting, not a confirmed named contact from the job ad. Business contact details only - name, job title, LinkedIn profile and, with the reveal options on, work email and direct phone number.
Why this actor?
- 🎯 Per posting, not per company - contacts are matched to the specific role, so an iOS engineering posting returns the iOS engineering managers, not a generic HR inbox.
- 🧑💼 Ranked by relationship - each row says how the person relates to the role (
hiring_manager,function_leader,recruiter,hr,executive,other) and what function they're in (legal,hr,recruiting,executive,other), so you can route recruiters to one sequence and hiring managers to another, or ask for only the ones you want. - 🚫 Skip people you already have - paste the LinkedIn URLs or emails already in your CRM and they are never returned, charged or revealed.
- 🔗 Chains from every Hirebase scraper - feed it the
idcolumn from Job Search, Fresh Jobs Feed, AI Job Search, any ATS scraper, Expired Jobs (postings that expired in the last 30 days), or the sample postings from Company Search. - 💸 Pay only for contacts found - postings that return nothing cost nothing, and a re-run never charges twice for the same posting.
- ⏱ Resumable - if a run stops before the research is done, run it again with the same IDs and it collects the results.
How to use it
- Run any Hirebase job scraper and copy the
idvalues of the postings you care about. - Paste them into Job IDs, one per line. Only Hirebase job IDs work - LinkedIn, Indeed and other job-board URLs don't. Entries that aren't a job ID are skipped with a warning.
- Set Max postings - start with 5-10 to see the results, then scale up.
- Optional: under Who to return, pick the Relationships and Functions you want, and paste the people you already have (LinkedIn URLs or emails) so they are skipped.
- Optional: turn on Reveal work emails and/or Reveal phone numbers to add contact details (extra cost per email / number found).
- Run. Rows appear in the dataset as each posting finishes.
Example input
{"jobIds": ["6ab12dde712f8e0e0ea07739","6ab130766a7163d04dca4d94"],"maxJobs": 10,"relationships": ["hiring_manager", "function_leader"],"excludeLinkedinUrls": ["https://www.linkedin.com/in/someone-you-know"],"maxWaitMinutes": 55}
Leave Relationships and Functions empty to get everyone Hirebase found. Each filter combination is its own request: running the same postings again with different filters researches them again for that combination (fast, because Hirebase keeps the research), and is charged for the contacts it returns.
Output
One row per likely contact, with the posting it was found for on every row. Real rows from an Engineering Manager posting at Brex, run with Relationships set to hiring manager, function leader and recruiter:
[{"name": "James Reggio","role": "Chief Technology Officer","relationship": "function_leader","function": "executive","contactType": "leadership","employer": null,"linkedinUrl": "https://www.linkedin.com/in/jamesreggio","email": null,"photoUrl": null,"rank": 1,"jobId": "6ac6e956ae5948e03e020a28","jobTitle": "Engineering Manager, Salesforce","companyName": "Brex","companySlug": "brex","applicationLink": "https://www.brex.com/careers/8857110002?gh_jid=8857110002","jobLocation": "San Francisco, California, United States","datePosted": "2026-10-07"},{"name": "Salehah Hassan","role": "Director, Technical Recruiting","relationship": "recruiter","function": "recruiting","contactType": "recruiter","linkedinUrl": "https://www.linkedin.com/in/salehah","rank": 4,"jobTitle": "Engineering Manager, Salesforce","companyName": "Brex"}]
Rows come ranked (rank 1 = first) by relationship:
relationship | Who |
|---|---|
hiring_manager | The person the role reports to. When the posting names a reporting line ("reports to the Director of Engineering"), it is whoever holds that title. |
function_leader | A leader of the team or function the role sits in (head, director, VP). |
recruiter | A recruiter or talent acquisition partner. |
hr | HR, people operations or an HR business partner. |
executive | A company executive outside the function (CEO, COO, founder), usually at smaller employers. |
other | Anyone else linked to the role. |
function is legal, hr, recruiting, executive or other, read from the role title. contactType is the older grouping (hiringManager, leadership, recruiter, hr, other), kept so existing pipelines keep working.
email, emailStatus and phone are filled only when the matching reveal option is on and a value was found; phone is E.164 (mobile preferred).
employer is the company named in the contact's own role line (e.g. "Talent Acquisition Lead at B&Q"). It is usually the same as companyName; when it differs, the research found the posting really belongs to another employer - a handful of postings in the Hirebase index are attributed to the wrong company, and the contacts follow the true one.
Export to JSON, CSV or Excel, or pipe into Clay, HubSpot, Salesforce, Make, n8n, Zapier or Google Sheets.
Great for
- Outbound sales - a company opening roles in your category is staffing up; now you know who to write to.
- Recruiting and staffing agencies - reach the hiring manager and the internal recruiter on a live requisition.
- Job seekers - find the people to message about a role instead of applying into the void.
- Account research - map who runs a function at a target account from the roles they are hiring for.
How long does it take?
Hirebase researches each posting individually, in parallel, and most postings finish within 5-10 minutes. Phone reveals add a minute or two per posting, and a large batch can take longer when many runs are queued at once.
The actor saves each posting's contacts as soon as they are ready, and keeps waiting up to Wait up to (minutes) - 55 by default, to fit Apify's standard 1-hour run timeout. For bigger batches, raise both the wait and the run timeout (under Run options). Postings still in progress at that point keep running on Hirebase. Run the actor again with the same job IDs and it collects them: nothing is queued or charged a second time, and postings already returned in the last 12 hours are skipped unless you turn on Include previously returned.
Pricing
$0.05 per contact ($50 per 1,000) - one charge for each contact row saved. A posting typically returns 5-10 contacts, so researching one posting usually costs $0.25-$0.50.
| Event | Price |
|---|---|
| Contact saved (Result) | $0.05 ($50 / 1,000) |
| Actor start | $0.00005 per run |
| Work email revealed | $0.04 ($40 / 1,000) - only with Reveal work emails on |
| Phone number revealed | $0.30 ($300 / 1,000) - only with Reveal phone numbers on |
You are not charged for:
- postings that return no contacts, or fail on Hirebase's side (about 1 in 4),
- IDs that aren't a Hirebase posting (live, or expired in the last 30 days),
- postings where your Relationships / Functions filters or "Already have" lists leave nobody,
- people on your "Already have" lists - they are dropped before any email or phone lookup,
- postings already returned by another run in the last 12 hours,
- postings still being researched when a run ends - you pay when they're collected.
Your spending limit is respected before research is queued: at about 8 contacts a posting, a run only queues as many new postings as the limit can cover - counting every contact's email and phone number when those reveals are on.
Email and phone reveals are extra: with Reveal work emails or Reveal phone numbers on, each email or phone number actually found is charged as its own event on top of the contact price. Contacts where nothing was found cost nothing extra, and with both options off (the default) you only ever pay for contacts.
Turning a reveal on for a posting that was already researched without it queues that posting again (the lookups only happen during research), so it is charged as new contacts plus the values found.
FAQ
Do I need an API key? No - API access is built into the actor.
Where do I get job IDs?
From the id column of any Hirebase job actor's dataset, or the samplePostings[].id field in Company Search. Every posting in the Hirebase index has one.
Why did a posting return no contacts? The run log says which of these it was, for every posting:
- the research could not find anyone publicly linked to that role at that employer - common for very small companies, agencies posting on behalf of clients, and postings with little public footprint (about 1 in 4 postings);
- your Relationships / Functions filters or "Already have" lists removed everyone found - widen the filters to see them;
- the posting expired more than 30 days ago and was never researched.
None of these are charged.
Can I use expired postings? Yes. A posting that expired in the last 30 days is researched like a live one; an older one returns contacts only if it was researched before.
How do I get emails and phone numbers? Turn on Reveal work emails and/or Reveal phone numbers. Hirebase looks each contact up in a B2B contact database (Apollo) by their LinkedIn profile and returns the work email (with a verification status) and a direct number, mobile preferred. You pay per value found. Phone lookups add a minute or two per posting. Personal emails are never returned.
Is this legal? Contacts are business profiles assembled from public professional sources (company pages and public profiles) for a business-contact purpose, with name, job title and profile link only. You are responsible for using the data in line with the laws that apply to your outreach, such as GDPR and CAN-SPAM.