How I Got 500 LinkedIn Emails Without Sales Navigator
How I built a 500-contact list from LinkedIn profiles and verified work emails, pay-per-call, without a Sales Navigator seat.

I built a list of 500 targeted LinkedIn contacts with verified work emails in one afternoon, and I never paid for a Sales Navigator seat. I wired LinkedIn profile scraping into an email-enrichment call through a single pay-per-call wallet, and the whole thing cost me single-digit dollars.
This is the story of that afternoon: what I was avoiding, how I actually did it, and the two things I would not repeat. If you have ever stared at a LinkedIn search result and thought "I just need the emails behind these names," this is for you.
TL;DR
- Sales Navigator is a monthly seat you rent whether or not you use it that week. I did not want another subscription for a one-off list.
- I scraped public LinkedIn profiles with Apify, then resolved work emails with People Data Labs, all billed per result through one Monid wallet.
- Cost was magnitude single-digit dollars for a few hundred rows, not a recurring seat. Live pricing per endpoint lives at monid.ai/tools.
- What worked: keeping limits small and letting one wallet cover both providers. What I would not repeat: skipping the verification step and treating scraping like it has no rate limits.
The subscription I did not want
Here is the thing about Sales Navigator. It is genuinely good if you live in it every day. I did not. I needed one list, once, for a specific outreach batch. Renting a seat for a week of work felt like buying a car to move a couch.
The manual alternative was worse. Open a profile, copy the name, guess the email pattern, paste into a sheet, repeat 500 times. I have done that before. It eats an entire day and the emails you guess bounce more often than you would like to admit.
What I actually wanted was boring: take a list of people and companies, get back their public profile data, then get back a verified work email for each one. Two steps. No seat. Pay only for what I pull.
The afternoon, wired together
I already work through an agent, so I did the whole thing in a chat window. Monid is a pay-per-call data API marketplace: one interface and one wallet to discover and run hundreds of external data endpoints without a separate signup per vendor. That last part is the whole trick here, because my flow touched two different providers and I did not want two invoices.
Copy this line to your agent to turn a list of LinkedIn targets into verified work emails.
set up https://monid.ai/SKILL.md and use apify/harvestapi-linkedin-profile-search to pull profiles, then peopledatalabs/person-enrich to resolve their work emails
The shape of the flow was simple once I stopped overthinking it.

Getting set up
For agents. Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:
set up https://monid.ai/SKILL.md
It learns the whole discover, inspect, run workflow itself. More details in the agent quickstart.
For humans. If you would rather stay on the command line:
npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>
More details in the CLI quickstart.
Step one: profiles from LinkedIn
I started with a rough seed: titles and companies I cared about. Apify runs a LinkedIn profile search actor (the harvestapi one), and it returns the public profile fields I needed: name, headline, current company, location, profile URL. No login, no seat, just the public layer.
I checked the schema and price before spending anything. Discover and inspect are free, so there is no reason to guess:
monid discover -q "linkedin profile search"
monid inspect -p apify -e harvestapi-linkedin-profile-search
Then I ran it with a small limit first, because I wanted to see the shape of the output before I pulled hundreds:
monid run -p apify -e harvestapi-linkedin-profile-search -i '{"searchQuery":"growth lead fintech","maxResults":25}' -w
The -w waits inline so I could eyeball 25 rows. They looked right, so I bumped the limit and let it fill out the list.
Step two: names into verified emails
Profiles are not emails. This is where People Data Labs earned its keep. Their /v5/person/enrich endpoint takes what I already had (name, company, profile URL) and resolves a work email, with a confidence signal attached. That confidence field matters, and I will come back to it.
monid inspect -p peopledatalabs -e person-enrich
monid run -p peopledatalabs -e person-enrich -i '{"profile":"https://www.linkedin.com/in/example","company":"Acme"}' -w
For the full batch I ran it per row and saved the output, then merged it back against my profile list on the profile URL. If you prefer async for a big pull, kick off the run and poll it:
monid runs get -r <RunID> -o out.json
One detail I liked: both the Apify pull and the People Data Labs enrich billed against the same wallet. I discovered TikHub also carries LinkedIn endpoints, a profile lookup at /api/v1/linkedin/web/get_user_profile and a contact lookup at /api/v1/linkedin/web/get_user_contact, so if you want a second source to cross-check a stubborn record, it is right there under the same interface. I did not need it this time, but it is nice to know the fallback exists without another signup.
What worked, and what I would not do again
What worked. Small limits, run early, look at the output. I never got surprised by a bill because I inspected the price first every time, and I never wasted a call on a query that returned junk. One wallet covering two providers meant I was reconciling one number, not chasing receipts across vendors.
What I would not do again. Two things.
First, I almost skipped the verification pass. People Data Labs hands back a confidence signal on each email for a reason. On my first tiny run I ignored it and nearly sent to a couple of addresses that were low-confidence guesses. Now I filter: high confidence goes straight to the sheet, everything else gets a second look or gets dropped. Bounces hurt your sender reputation, and no list is worth that.
Second, respect the limits. Scraping public data is not a license to hammer an endpoint. I spaced my runs, kept batches reasonable, and pulled only the fields I actually needed. It is slower by minutes and saner by a mile.
FAQ
Do I need a LinkedIn or Sales Navigator subscription for this? No. The Apify actor works on public profile data and People Data Labs resolves emails from identity fields. There is no LinkedIn seat in the loop.
How much does 500 contacts actually cost? Magnitude, single-digit dollars for a few hundred enriched rows, billed per result rather than as a monthly seat. Exact per-endpoint pricing is shown before you run and listed at monid.ai/tools.
Are the emails actually verified? People Data Labs attaches a confidence signal to each result. I only send to the high-confidence ones and review or drop the rest. Verify before you send, always.
Is scraping public LinkedIn profiles allowed? You are responsible for your own compliance and for respecting rate limits and applicable terms. Keep batches small, pull only what you need, and treat the data with the same care you would want for your own.
If you want to try the same flow, grab a key at app.monid.ai and point your agent at monid.ai. One afternoon, one wallet, no seat.