Enriching your contact data from LinkedIn with Claude, photo included, and the five minute setup behind it
Claude can drive your own Chrome, find a person on LinkedIn, and bring back their headline, company, location and photo ready to drop into your database. Here is the setup, the prompt, and the one detail that makes it work.
Every contact list I keep is half finished. A name and an email address from a form or a meeting, and then blanks where the job title, company and photo should be. Filling those in means opening LinkedIn, finding the person, copying their headline, saving their photo, renaming it, and pasting it all into the right row. Two minutes a contact, and it never gets done for the whole list.
Last week I showed a few people a five minute recording of Claude doing that job on its own, in my own Chrome, while I watched. That was at AI-First Live, the monthly session I run for the businesses we are building AI-first operations with. Several asked for the setup steps. This is the written version, and it covers more than the recording did: what to install, what to type, and the one thing that will quietly go wrong if you do it the obvious way.
What it does
You type something like "enrich Jane Smith at Acme Training from LinkedIn". Claude opens a tab in your Chrome, searches LinkedIn, opens the right profile, and comes back with their current headline, company and location as text, plus their profile photo saved as a proper image file. Point it at your spreadsheet or database and it writes the row for you, photo attached. If two people match, it shows you both and asks. If LinkedIn wants you to sign in or prove you are human, it stops and hands back to you.
The whole thing runs inside Claude Code on the desktop app. There is no code to write. What you need is the right browser connection, and a clear brief.
Two browsers, pick the right one
This is the part that catches people. Claude Code can use a browser in two different ways, and they are not the same.
The first is the Browser pane built into the desktop app. It needs no setup at all, but it runs in a clean, isolated profile with none of your saved logins or history. It is great for testing your own apps and reading documentation. Point it at LinkedIn and it hits a login wall, because as far as LinkedIn is concerned it is a stranger. It is the wrong tool for this job.
The second is the Claude in Chrome extension. It lives inside your normal Chrome, the one you are already signed in to LinkedIn on, and Claude Code drives it from the desktop app. Claude sees what you see, signed in as you. That is what the recording used, and it is what I recommend.
The five minute setup
- Use Google Chrome. Edge works too, but Chrome is the well-trodden path. Firefox and Safari do not work.
- Install the Claude in Chrome extension from the Chrome Web Store, in the Chrome profile you use for LinkedIn. It is available on every paid Claude plan (Pro, Max, Team, Enterprise).
- Sign in to the extension with the same Claude account you use in the desktop app.
- Sign in to LinkedIn in that same Chrome profile, if you are not already.
- Connect the extension to your account. Click the extension icon in Chrome and switch its Claude Code connection on. This pairs that Chrome with your Claude account, so the desktop app can see it. It is per session, so if you restart Chrome, switch it on again.
- Open Claude Code on the desktop and ask it to open LinkedIn in your Chrome. It lists the browsers connected to your account and asks which one to use. Pick the one on this computer. If the list is empty, the extension is signed in to a different account or the connection in step 5 is off. Fix that and start a fresh session.
The first time Claude tries to act on linkedin.com the extension asks you to allow it, once or always. Say always, or you will be clicking that every run.
That is it. No API keys, nothing to configure in a settings file.
What to type
I turned mine into a skill so I can say "enrich this contact" and it just runs, but you do not need that to start. A clear brief in the chat is enough, and once it has worked a couple of times you can ask Claude to turn what you just did into a skill. The brief I would give it looks like this:
Use Chrome to find [name] from [company] on LinkedIn. Open their profile and give me their full name, headline, current company and location as text. Save their profile photo as a file named [name]-linkedin.jpg. Then add all of it to the [name of your spreadsheet or database], as a new row or against the existing row for that person, with the photo attached. If more than one person matches, show me the names and headlines and ask me which one before opening anything. If you hit a login page or a verification check, stop and tell me. When you are done, tell me which row you updated and the image size in pixels.
Four things in that brief are doing real work.
Name and company, not just name. A name alone returns fifty people. Name plus company almost always returns one.
Ask, never guess. The photo is going into a record with someone's name against it. A confident wrong guess is worse than a question.
Say where the data goes. "Give me the details" leaves Claude reading them out in the chat and you pasting them in by hand, which is the job you were trying to get rid of. Name the spreadsheet, the Airtable base, the CRM. Claude Code can write to most of them, and the write is the point.
Report the row and the image size. This forces Claude to check the record really changed and the file really exists before it tells you it is done. Without it, you get a cheerful "all updated" and a row that has not moved.
The detail that makes it work
The obvious approach is to copy the image address. Right-click the photo, copy image link, paste it into your spreadsheet as the photo column. It works today. In a few days it returns an error.
LinkedIn image links carry a signed token that expires. The link is not a permanent address, it is a temporary pass. Anything that stores the link rather than the picture rots silently, and you find out when your team page or your proposal has a row of broken images down the side.
So the rule is: store the file, never the link. The brief above says "save the photo as a file" and "with the photo attached" for exactly that reason. Claude fetches the actual image data while the page is open and writes it to disk, then attaches that file to the record. From then on it is yours.
A smaller version of the same problem: Chrome always downloads to its Downloads folder first, whatever you asked for. Claude then picks the file up from there to attach it. If you ever find a photo did not make it onto the record, look in Downloads before you assume the run failed.
What happens when LinkedIn pushes back
Claude in Chrome has a short list of things it will not do no matter what you ask, and two of them matter here. It will not solve a CAPTCHA, and it will not sign in to an account for you. If LinkedIn throws a "prove you are human" puzzle or a login page mid-run, Claude stops and tells you. Clear it yourself in the same Chrome window, then tell Claude to carry on. It has not broken, it is doing what it is meant to.
The other guardrail worth knowing is that the extension sees whatever is on screen, including anything else open in that Chrome profile. Run it in your work profile, not the one with your online banking in another tab.
And keep it to one person at a time. LinkedIn scores sessions for automated behaviour in the background. A person looking up a new contact before a call is normal. A script pulling two hundred profiles at speed is not, and that is what gets accounts restricted. This is a tool for the lookup you were going to do anyway, done faster and filed properly.
This is not really about photos
The specific job here is small. The pattern underneath it is not.
Once Claude can drive the browser you are already signed in to, anything you can do on LinkedIn by hand, Claude can do the same way. Check who from a company has viewed your profile. Pull the attendee list from an event you are speaking at into a spreadsheet. Read the last five posts from a prospect before a call and summarise them. Draft a comment on a client's announcement in your own voice and hold it for your approval. Find every second-degree connection at a target company and list who could introduce you. None of those need an API, a paid data tool, or a developer. They need the same three things: the right browser connection, a brief that says what good looks like and what to do when unsure, and a check at the end that proves the result.
And it is not limited to LinkedIn. Any repetitive job that lives in a web page you are logged in to is fair game: a supplier portal, an order status page, the same form on the same site every week.
When it works twice, say "turn what we just did into a skill". Then you never brief it again.