Blog/Sales and GTM
5 min read

How to Use a LinkedIn Scraper for Profile Lists

Build a reviewable table from LinkedIn profile URLs, with work-history counts, missing-field checks and a small paid test.

How to Use a LinkedIn Scraper for Profile Lists

Turn your existing LinkedIn profile list into a table you can review. Paste this into your agent:

Set up https://monid.ai/SKILL.md, and then use Monid to inspect the LinkedIn profile scraper from Apify. Start with one profile URL from my list. Return a private review table with source URL, role and company presence, experience count, education count, contact-field presence and missing fields. Do not infer missing values or treat a returned email as validated. Show the price before the paid call and wait for my approval before processing the rest.

1 min setup allowance · 1.7-3.3 hrs saved in the illustrative 50-profile scenario below.

Recruiters comparing 50 LinkedIn profiles need a consistent review sheet, not 50 browser tabs and a collection of copied paragraphs. A LinkedIn scraper helps with extraction, but the useful question is which fields reach your table and which still need a human decision.

Copying the visible headline leaves out work-history structure. Copying the whole page creates another document to read. Neither approach tells you whether a blank cell means missing information, an empty list or an extraction that never completed.

We'll use Monid, the tool layer for AI agents, to retrieve an existing profile URL and turn its response into a completeness table. It covers extracting supplied profiles; it does not discover your initial candidate list, validate contact deliverability or make recruiting decisions.

  • Start with one URL and read the billing shape.
  • Separate populated fields, nulls and empty arrays.
  • Export a private review sheet before widening the batch.

Here is the privacy-safe preview from our November 6 test. These counts describe one returned profile, not an accuracy benchmark.

Review dimensionObserved result
Input profiles1
Returned profile records1
Work-history entries3
Education entries2
Skill entries0
Updates0
Contact fields populatedEmail and mobile-number fields
Contact validation resultNo validation result returned

How to use a LinkedIn scraper with Monid

Use an existing list of individual profile URLs, test one URL, then ask your agent to produce the same columns for every returned record. Monid provides discovery, schema inspection and paid execution under one key and balance; the selected data provider is Apify.

An endpoint is one callable tool with its own input and billing rules. Here we use the Apify profile scraper, whose input is a required array called profileUrls.

Step 1. Install and add your key

For agents: get an API key at app.monid.ai and give it to your agent through your normal secret-handling mechanism; paste the setup instruction below. The agent quickstart explains the connection.

set up https://monid.ai/SKILL.md

For humans: install the CLI and store your key with a label. The CLI quickstart covers setup.

npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main

Find the Apify tools and inspect the profile scraper before submitting your list.
Find the Apify tools and inspect the profile scraper before submitting your list.

Step 2. Give your agent one profile URL

Supply an individual profile URL from your existing recruiting list, and say explicitly that the first batch contains one URL. This tool has no limit parameter: a small input array is the way to keep the test small.

Ask for a private table with source URL, role presence, company presence, experience count, education count and review notes. Keep contact values out of shared previews; presence flags answer the completeness question without circulating addresses or phone numbers.

Step 3. Retrieve the profile

Tell your agent to inspect the selected scraper's card, confirm the per-result price and submit the one-element array. Our test completed with HTTP 200, one returned record and one billed unit in 8.984 seconds from creation to completion.

The selected profile scraper is listed at $0.01 per result, Verified 2026-11-06.
The selected profile scraper is listed at $0.01 per result, Verified 2026-11-06.

Step 4. Read and export the table

Export one profile row per returned object, with separate sheets for work history and education if you need those details. The following table shows aggregate checks from the actual response; it contains no personal values.

CheckReturned value or countReview action
Profile objects1Reconcile against one submitted URL
experiencesCount3Compare with the nested array
experiences length3Preserve each role separately
educations length2Keep institution records separate
skills length0Leave skill evidence blank
updates length0Do not treat this as an activity feed
jobLocationnullFlag missing job-location detail
companyFoundedInnullLeave company founding year blank
email, mobileNumberBoth populatedSeparate contact review from extraction

Keep the raw response in restricted storage and share the smaller review sheet. A summary row is useful for triage; the original JSON preserves the detail behind each count.

How do you read the results?

Read the response as extracted information with different levels of completeness, not a finished candidate assessment. Our single result contained several work-history records and contact values alongside null fields and empty arrays.

Separate missing values from negative findings

A null jobLocation does not mean the person has no location. The same response included populated address fields, so the missing item was specifically the job-location field.

Likewise, an empty skills array means this result supplied no skill entries. It does not establish that the person lacks skills. Mark the cell as missing evidence rather than assigning a negative score.

Preserve multiple current roles

The test returned three experience entries with jobStillWorking set to true. A single headline or top-level job title does not describe that full structure.

For recruiting review, retain each experience entry before choosing a display role. Treat the display role as your editorial selection, not an extra fact returned by the scraper. This prevents a spreadsheet transformation from silently discarding concurrent work.

Keep contact discovery separate from validation

A populated email field is a discovered contact value; this response included no mailbox-validation result. Do not label that column “verified email” or start outreach merely because it is nonempty.

Contact discovery and contact validation are separate jobs. For this workflow, the business conclusion is narrower: the result supports profile review, while outreach readiness requires another decision and validation step.

How much does it cost?

The selected Apify scraper costs $0.01 per result, Verified 2026-11-06. Inspection describes one result per input query, so the number of submitted profile URLs determines the intended batch size.

Count inputs before buying the batch

Our one-URL test returned one result and billed $0.01 total, Verified 2026-11-06. The run had one billed unit; no additional flat fee appeared in inspection or the successful run record.

Deduplicate your URL list before submitting it. Repeated URLs add work without improving coverage, and a rerun is another paid execution. Keep an explicit approved batch size so an agent does not expand a test into the whole spreadsheet.

Separate free inspection from paid execution

Discovery and inspection are free; execution is the paid step. Monid exposes the billing shape before execution, and the tools catalog is the place to review current tool prices.

Review the profile scraper’s per-result price before increasing your batch, Verified 2026-11-06.
Review the profile scraper’s per-result price before increasing your batch, Verified 2026-11-06.

This successful test does not establish how failed or empty results are billed. Keep those cases separate in your operational records and read the actual charge on each run instead of assuming that an empty table means no charge.

How do you do this in your own code?

Keep the automation small: inspect the input, submit your prepared URL array, retrieve the completed response and transform only the fields your review needs. With Monid, the same CLI handles the discovery and execution steps.

Inspect the required input

These free commands locate and inspect the profile scraper. The required property is profileUrls; the schema does not offer a separate result limit.

monid discover -q "linkedin scraper" -l 10 --include-unavailable -j
monid inspect -p apify -e /dev_fusion/linkedin-profile-scraper

Create a local reader-profiles.json file containing an object with a profileUrls array and one of your own source URLs. Keep the file and its returned contact details out of public repositories.

monid run -p apify -e /dev_fusion/linkedin-profile-scraper \
  -f reader-profiles.json -w

Retrieve a completed response

The command below retrieves our completed test rather than buying another scrape. The CLI's JSON output can be redirected to a local file for processing.

monid runs get -r 01M6RSHDNQBJAER6HE63FJTCXA -j

In your own script, retain your own run ID, source reference, completion state and actual cost beside the exported rows. A completed execution and a complete profile are separate checks: the first is operational, while the second depends on the fields returned.

For repeated batches, reconcile input URLs against returned profile references before importing anything into a recruiting system. Add a review timestamp in your own export metadata, without presenting it as a provider-supplied freshness timestamp.

Which scraper fits each job?

Use the tested profile tool when you already have individual URLs and need structured profile records. Broader company research and activity collection are different jobs, so do not send those inputs to the same tool merely because every page is on LinkedIn.

Use caseBest endpointWhy?
Review existing individual profile URLsApify /dev_fusion/linkedin-profile-scraperTested with one URL; returns profile details and nested history; $0.01 per result, Verified 2026-11-06

For the contact-enrichment decision, the LinkedIn scraper email comparison separates discovered addresses from validated mailboxes.

For company profiles, employee lists and jobs, the broader LinkedIn data guide explains the separate workflow. This article's measured result belongs to individual-profile extraction only.

When should you use something else?

Use another route when the missing part is discovery, interpretation or activity collection. You are reading the Monid blog, and Monid resells access to the Apify tool used here; this guide is not a neutral comparison of every scraper.

Choose Apify directly when you want to work inside the provider's own workspace and manage the scraper there. Choose manual profile review when a hiring decision depends on interpreting overlapping roles or resolving contradictory descriptions.

For post text and engagement, choose a dedicated post-collection tool. Our profile response had an empty updates array, so this test supplies no post dataset.

The tested input also requires URLs you already possess. If you begin with “find recruiters in Austin,” source-list discovery comes first; this scraper alone does not turn that instruction into a candidate list. Browse the LinkedIn tools for the appropriate next job instead of filling an array with guessed profile addresses.

Conclusion

You now have a repeatable way to turn existing profile URLs into a review sheet while preserving missing values and nested work history. Start with one URL through Monid, inspect the charge, then widen only after the columns answer your recruiting question. The opening time allowance is illustrative: assuming two to four minutes of copying per profile, a 50-profile list represents 100 to 200 minutes, or 1.7 to 3.3 hours, before review; setup was not timed in this test. Keep extraction separate from judgment so your next candidate review starts with organized evidence.

FAQ

Is a LinkedIn scraper free?

Discovery and inspection are free through Monid; this profile scraper's execution is paid. The tested Apify tool is $0.01 per result, Verified 2026-11-06. Budget for returned records rather than treating access to the catalog as free extraction.

What do I need to install?

Install the Monid CLI for terminal use, or give your agent the setup instruction above. You need an API key and an existing list of profile URLs. The tested input required no browser cookies or LinkedIn password.

Can I use a LinkedIn scraper without coding?

Yes, an agent can inspect the tool, submit your URLs and format the output. Specify your columns and ask it to stop after one profile. You still decide which data belongs in your private review sheet.

How many profiles can I scrape at once?

The input accepts an array of profile URLs, but inspection declares no numeric batch ceiling. This guide tested one URL. Use a one-element array first and approve a larger batch explicitly rather than assuming an unlimited capacity.

Does a failed scrape cost money?

This guide's test establishes only the charge for one successful result. It does not establish failed-run billing. Read the execution record's status and actual cost separately, and do not infer a refund policy from a blank exported cell.

Can I schedule LinkedIn scraping?

Scheduling requires your own scheduler or automation outside this scraper's input. The inspected schema contains profile URLs and no scheduling field. Keep each scheduled batch small and reconcile its completed records before updating your sheet.

Are scraped email addresses verified?

A populated email field is not a mailbox-validation result. Our response returned contact fields without a validation outcome. Keep discovered contact information separate from any later deliverability check and from approval to contact someone.

Is LinkedIn scraping legal?

Rules vary by jurisdiction; check the rules that apply to your use. Decide what you collect, retain and share before expanding the batch. This tutorial provides an extraction workflow, not a legal conclusion.

Published November 2026.

linkedin scraperlinkedin profilesrecruiting