To scrape a LinkedIn profile with an AI agent, give the agent a complete LinkedIn profile URL and ask it to use SalesTouch's linkedin_lookup_profile tool. The result is structured profile data that the agent can verify, summarize, compare, or format for your next workflow.
This approach is best for researching one person at the moment you need the data. You do not have to build a Python scraper, maintain selectors, run a browser extension, or copy every field by hand.
The fastest way to scrape one LinkedIn profile
Once SalesTouch is connected, the actual workflow is one prompt:
The agent calls SalesTouch, receives the available profile data, and formats the answer. Asking the agent to check the identity, mark missing fields, or prepare an export is part of the prompt, not a separate product step.
Use the complete linkedin.com/in/ URL whenever possible. A full URL is less ambiguous than a name and more reliable than a search result, screenshot, or shortened redirect.
What is SalesTouch, and why do you need it?
An AI agent can reason about text, but pasting a LinkedIn URL into a chat does not give it live access to the profile. It needs a tool that can perform the lookup.
SalesTouch is a hosted LinkedIn MCP for AI agents. MCP is the connection that lets Claude, Codex, and other compatible agents discover and call external tools. In this workflow:
- Your AI agent understands your request and decides what to do with the result.
- SalesTouch supplies the authenticated LinkedIn tools and returns structured data.
- Your connected LinkedIn account determines what profile information is available.
This separation is useful because you do not paste your LinkedIn password or session cookies into a prompt. You connect LinkedIn inside SalesTouch, then authorize your agent to use the SalesTouch MCP.
What LinkedIn profile data can you extract?
The linkedin_lookup_profile call returns normalized profile data, not a screenshot or raw page HTML. Depending on the profile and what your connected LinkedIn account can access, the result can include:
- full name and headline
- current role and company
- location
- canonical LinkedIn profile URL
- LinkedIn profile identifiers
- other available public profile fields
The exact fields can vary. Your prompt should tell the agent to mark an absent value as unavailable instead of guessing it.
This call is not a contact enrichment service. It does not promise an email address, phone number, private profile data, or any field that is unavailable to the connected account.
Add company, post, or conversation context
A profile lookup should stay focused on the person. If you need a richer research pack, ask the agent to combine it with another SalesTouch call:
Core profile
linkedin_lookup_profile
Resolve one member and return the available identity, headline, role, company, location, URL, and profile fields.
Company context
linkedin_lookup_company
Look up one company or school from its LinkedIn URL, handle, or identifier and return the available organization fields.
Recent content
linkedin_lookup_profile_posts
Fetch the latest available posts for one member, newest first. Use the optional limit to request up to 100 posts.
Relationship context
linkedin_conversations_search
Search existing LinkedIn conversations when prior exchanges are relevant and available to the connected account.
These are separate tool calls, not hidden options on linkedin_lookup_profile. That makes the workflow more precise: request only the context you need, and keep every source visible in the result.
Set up SalesTouch once
If you have never used SalesTouch, complete this one-time setup before running the prompts in this guide:
- Create a SalesTouch account.
- Connect the LinkedIn account that should perform the lookups inside SalesTouch.
- Add the SalesTouch remote MCP to your AI client. Use the Claude setup guide or Codex setup guide.
The hosted MCP endpoint is https://www.salestouch.io/api/mcp. Your AI client authorizes the connection and discovers the available SalesTouch tools.
To check the setup, ask the agent to list your connected LinkedIn accounts or the SalesTouch tools it can use. You should see linkedin_lookup_profile. If the tool is missing, refresh the MCP connection or start a new conversation after connecting it.
How the profile lookup call works
The profile lookup is deliberately small. It has one required input and one optional input.
Required input
identifier
Accepts a LinkedIn profile URL, member handle, public identifier, or account identifier. Prefer the full profile URL for a first lookup.
Optional input
account_id
Selects a specific connected LinkedIn account. Omit it when SalesTouch can resolve the correct account automatically.
The call is read-only. It returns MCP text content containing formatted JSON with the available profile data. The agent can then transform that response into the output you requested.
The profile lookup does not accept:
- a
limitfor posts - a flag that automatically adds company or post data
- a cron expression or
scheduled_forvalue - a native CSV or JSONL export option
For posts, use linkedin_lookup_profile_posts with the same profile identifier and an optional limit from 1 to 100. For company details, use linkedin_lookup_company with a company URL, handle, or identifier. For recurrence, your AI client or automation host reruns the prompt on schedule.
LinkedIn profile scraping use cases and prompts
Choose a prompt based on the decision or deliverable you need. Each example below uses the same profile lookup in a different real workflow.
Qualify one profile quickly
Use this before accepting a lead, preparing a call, or deciding whether a person matches your target profile.
Use SalesTouch to look up this LinkedIn profile:
https://www.linkedin.com/in/example/
Call linkedin_lookup_profile before answering.
Return a concise qualification brief with:
1. Full name and headline.
2. Current role and company.
3. Location.
4. Two facts that are relevant to understanding the person's professional context.
5. A separate "Missing data" line.
First confirm that the returned profile URL and identity match my input.
Separate retrieved facts from your analysis. Do not infer missing information
or perform any write action on LinkedIn.Build a profile, company, and content research pack
Use this when a basic profile is not enough. The prompt explicitly adds company context and recent posts through separate calls.
Research this person with SalesTouch:
https://www.linkedin.com/in/example/
1. Call linkedin_lookup_profile for the person.
2. Call linkedin_lookup_profile_posts for the same profile with limit 10.
3. If the profile result contains a resolvable current-company LinkedIn URL,
handle, or identifier, call linkedin_lookup_company for that company.
4. If no resolvable company identifier is available, state that limitation
and do not guess one.
Return four sections:
- Verified profile
- Current company
- Recent themes from the person's posts
- Missing or unavailable data
Name the SalesTouch source used for every section. Distinguish retrieved facts
from your analysis. Do not send a message or perform any LinkedIn write action.This workflow can reveal professional context that a single profile call cannot provide. It also keeps the provenance clear because each section maps to a dedicated tool.
Create a CRM-ready CSV row
Use this when you want to paste or save one verified record in a spreadsheet or CRM. The agent creates the CSV from the profile result.
Use SalesTouch to call linkedin_lookup_profile for:
https://www.linkedin.com/in/example/
Verify that the returned identity matches the input URL. Then return exactly
two lines of valid CSV using this header:
full_name,headline,current_role,current_company,location,linkedin_url,linkedin_id
Rules:
- Quote every value with double quotes.
- Escape double quotes according to CSV rules.
- Leave an unavailable field empty.
- Do not infer or enrich missing data.
- Return only the header and one data row, with no Markdown fence or commentary.If your agent can create files, add: Save the result as linkedin-profile.csv and give me the file. The file is still generated by the agent, not exported natively by linkedin_lookup_profile.
Return strict JSON for another agent or API
Use JSON when another system will process the record and a stable schema matters more than readability.
Use SalesTouch to call linkedin_lookup_profile for:
https://www.linkedin.com/in/example/
Return one valid JSON object with exactly these keys:
full_name
headline
current_role
current_company
location
linkedin_url
linkedin_identifiers
unavailable_fields
source_tool
Use null for an unavailable scalar and an empty array for an unavailable list.
Set source_tool to "linkedin_lookup_profile". Do not infer missing data.
Return JSON only, without Markdown fences or commentary.Monitor a profile every week
Use this when your AI client supports recurring tasks. The client owns the schedule and asks SalesTouch to perform a fresh lookup on every run.
Create a recurring task named "Weekly LinkedIn profile check".
Schedule: every Monday at 09:00 Europe/Paris.
On each run:
1. Call SalesTouch's linkedin_lookup_profile for:
https://www.linkedin.com/in/example/
2. Verify the returned identity and normalize the full name, headline,
current role, current company, location, and canonical LinkedIn URL.
3. Compare the result with the previous successful run.
4. Report only confirmed changes with the old and new values.
5. On the first run, save the result as the baseline.
6. If history cannot be persisted or retrieved, report that limitation
instead of claiming that nothing changed.
Use only SalesTouch data. Do not infer missing facts, send a message,
or perform any LinkedIn write action.Do not add scheduling parameters to the SalesTouch lookup. Recurrence is a capability of the AI client or automation host, which replays the prompt and triggers a new SalesTouch call.
Choose the right output or export format
The right format depends on what happens after the lookup.
Human review
Short Markdown brief
Best for qualification, meeting preparation, and reading the result directly in the agent conversation. Created by the agent.
Another agent or API
Strict JSON object
Best when the next system needs stable keys, explicit null values, and a machine-readable record. Created by the agent.
Spreadsheet or CRM
One CSV row
Best for one record with a known header that you can paste or save as a file. Created by the agent.
Bulk extraction
CSV or JSONL export
Best for a stored multi-record dataset. Export links are created natively by SalesTouch bulk scrape tools.
For one profile, linkedin_lookup_profile returns a structured response through MCP. It does not create an export link. Ask the agent to convert that response into JSON, CSV, or a saved file.
For bulk use cases, SalesTouch's scrape_* tools use a different result flow. They persist a dataset, return a limited inline preview and a result_id, and provide signed CSV and JSONL export links. Use scrape_result_page with the result_id to read additional pages without forcing the complete dataset into the agent's context.
What a verified result should look like
A successful answer should make both the source and any uncertainty visible. Before reusing the data, check that:
- The tool call completed successfully.
- The returned name and canonical URL match the intended person.
- Role, company, and location came from the tool response.
- Missing fields are explicitly marked unavailable.
- Analysis is separated from retrieved facts.
- No unsupported contact details were added.
When you combine calls, also verify that the company belongs to the current role and that the posts belong to the resolved member. A partial result is still useful if the agent clearly says which call or field was unavailable.
One profile or a bulk scrape?
Use linkedin_lookup_profile when you already know the person and need fresh context for research, qualification, personalization, or monitoring.
Use a bulk scrape tool when the source is a people search, Sales Navigator search, group, list of connections, post engagement audience, or another multi-record source. Bulk tools are designed around persisted results, pagination, and downloadable exports.
Known person
Single profile lookup
One identifier in, one normalized profile out. Best for targeted and explainable research.
Audience or search
Bulk scrape workflow
Multiple records, a result ID, paginated inspection, and signed CSV or JSONL exports.
Do not turn a one-person task into a bulk extraction by default. The smaller call is faster to review, easier to verify, and keeps the workflow aligned with the immediate decision.
Why SalesTouch is the best way to do this
SalesTouch gives an AI agent a controlled tool interface instead of asking you to paste credentials into a prompt, run an unknown scraping script, or expose browser cookies to an extension.
The practical safeguards are:
- your LinkedIn password and session cookies stay out of the agent prompt
- the MCP connection is authorized separately
linkedin_lookup_profileis a typed, read-only call- write actions use separate tools and should require explicit intent
- the connected account limits what the tools can access
- prompts can prohibit inference and LinkedIn write actions
No LinkedIn automation method is risk-free. LinkedIn's User Agreement and prohibited software guidance restrict unauthorized scraping and automation. SalesTouch does not override those rules or imply LinkedIn endorsement.
Use profile data for a legitimate, proportionate purpose. Avoid collecting sensitive information, do not infer protected characteristics, minimize retention, and review the laws and platform terms that apply to your workflow.
Common errors and how to fix them
The agent cannot see SalesTouch tools
The MCP connection is missing or stale. Reconnect SalesTouch in the AI client, start a fresh conversation, and ask the agent to list its available SalesTouch tools.
No LinkedIn account is available
Connect LinkedIn inside SalesTouch first. The MCP connection lets the agent reach SalesTouch, while the LinkedIn connection gives SalesTouch an account for the lookup.
The wrong person is returned
Retry with the full canonical linkedin.com/in/ URL. Avoid a plain name when several people may share it. Ask the agent to compare the returned canonical URL before continuing.
Some fields are empty
Availability varies by profile and connected account. Treat missing data as unavailable. Do not ask the agent to fill gaps from assumptions.
The agent claims it exported a native CSV
For a single profile lookup, CSV is an agent transformation. Native CSV and JSONL links belong to bulk scrape_* results. Ask the agent to state which mechanism created the file.
Frequently asked questions
Can ChatGPT, Claude, or Codex scrape a LinkedIn profile by itself?
Not from a URL alone. The agent needs a connected tool that can access LinkedIn. SalesTouch provides that tool through its hosted MCP, while the agent handles reasoning and output.
Does the profile lookup return email addresses or phone numbers?
No contact detail is guaranteed. linkedin_lookup_profile returns the profile information available through the connected account. Treat contact enrichment as a separate workflow with its own source and rules.
Can I retrieve a person's LinkedIn posts too?
Yes. Ask the agent to call linkedin_lookup_profile_posts separately. Supply the member identifier and, optionally, a limit from 1 to 100. The results are returned newest first and can include posts older than 30 days when available.
Can I retrieve details about the person's company?
Yes. Use linkedin_lookup_company with a resolvable LinkedIn company URL, handle, or identifier. Do not infer a company identifier from a company name when the profile result does not provide enough information.
Can SalesTouch monitor the profile every week?
SalesTouch performs the fresh lookup on each run. The recurring schedule belongs to the AI client or automation host. Save a first baseline and define what should happen when previous history is unavailable.
Is the lookup read-only?
Yes. linkedin_lookup_profile, linkedin_lookup_profile_posts, and linkedin_lookup_company are read operations. They do not send invitations or messages.
Can I export the result to CSV?
For one profile, ask the agent to format or save a CSV row. For a bulk scrape_* result, use the native signed CSV or JSONL export links returned with the stored dataset.
Scrape your first LinkedIn profile
The simplest reliable workflow is: connect SalesTouch once, give your agent a complete profile URL, request the output that matches your use case, and make source verification part of the prompt.
Start with the qualification prompt. Add company data, recent posts, an export format, or a recurring schedule only when the next decision requires it.