ScrapeField
People change jobs, and a contact who moved is two things at once: a record in your CRM that is now wrong, and a warm introduction at a new company. This guide checks a list of contacts once a month and names the ones who moved.
What a profile says
GET /v1/linkedin/profile takes a profile’s url. Two fields matter here: current_company, the employer shown at the top of the profile, and experience, the positions, most recent first, each with its title. A profile costs 11 credits. One that is private or gone comes back as profile_not_found, and is refunded.
The monthly check
// your contacts, each with the company you last knew
const contacts = [
{ url: 'https://www.linkedin.com/in/example-person/', company: 'Blue Door Coffee' },
];
const headers = { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` };
for (const contact of contacts) {
const res = await fetch(`https://api.scrapefield.com/v1/linkedin/profile?url=${encodeURIComponent(contact.url)}`, { headers });
const body = await res.json();
if (!res.ok) continue; // private or gone: refunded
const now = body.data.current_company?.name ?? null;
if (now !== contact.company) {
const title = body.data.experience[0]?.title ?? 'no title shown';
console.log(`${body.data.full_name}: ${contact.company} → ${now} (${title})`);
}
}Save the new company for each contact, and next month compares against it.
What it costs, and how long it takes
11 credits a contact: 1,000 contacts once a month are 11000 credits, $8.58 on the smallest pack and $4.84 on the largest. Each contact is one call, so a list of a thousand takes a while in one loop. To finish sooner, run several calls side by side, up to your limit of calls at once. Once a month is enough for most lists: people rarely move twice in a month, and a profile is cached for 12 hours, so a check more often than that reads the same answer.