Find LinkedIn URL
Search for a LinkedIn profile URL using various identifying parameters.
Method
services . person . linkedin . findUrl ( params );
Parameters
Current or past company name
Additional keywords to refine search
Email address associated with the profile
Returns
Returns a Promise<string | undefined> containing the LinkedIn profile URL if found.
Example
// Find LinkedIn profile for a prospect in your spreadsheet
const name = ctx . thisRow . get ( "Name" );
const company = ctx . thisRow . get ( "Company" );
const title = ctx . thisRow . get ( "Title" );
const linkedinUrl = await services . person . linkedin . findUrl ({
name ,
title ,
company ,
});
ctx . thisRow . set ({ "LinkedIn URL" : linkedinUrl });
Enrich LinkedIn Profile
Get comprehensive information from a LinkedIn profile including work experience, education, skills, and more.
Method
services . person . linkedin . enrich ( params );
Parameters
The LinkedIn profile URL to enrich
Returns
Returns a Promise with a comprehensive profile object containing:
Complete name of the person
Professional headline from LinkedIn
Profile summary/about section
Number of LinkedIn followers
Number of LinkedIn connections
Array of skills listed on the profile
Array of work experience entries Show Experience Object Properties
End date (null if current)
Duration in human-readable format
Management level (e.g., “Senior”, “Manager”)
Array of education entries Show Education Object Properties
Extracurricular activities
Professional certifications
Languages and proficiency levels
LinkedIn recommendations received
Example
// Enrich a prospect's LinkedIn profile
const linkedinUrl = ctx . thisRow . get ( "LinkedIn URL" );
const profile = await services . person . linkedin . enrich ({
url: linkedinUrl ,
});
// Store key information for sales context
ctx . thisRow . set ({
"Full Name" : profile . full_name ,
Headline: profile . headline ,
Location: ` ${ profile . location_city } , ${ profile . location_country } ` ,
"Current Title" : profile . job_title ,
Skills: profile . skills ?. slice ( 0 , 5 ). join ( ", " ),
Connections: profile . connections_count ,
});
// Find current role for personalization
const currentJob = profile . experience ?. find (( job ) => job . date_to === null );
if ( currentJob ) {
ctx . thisRow . set ({
"Current Company" : currentJob . company_name ,
"Time in Role" : currentJob . duration ,
});
}
Best Practices
Optimize Your Searches : When using findUrl, provide as many parameters as possible to increase accuracy and
reduce ambiguous results.
Data Freshness : The last_updated field indicates when the profile was last refreshed. Consider re-enriching
profiles that are older than 30 days for critical use cases.
Common Patterns
Complete Prospect Enrichment Flow
// Find and enrich a prospect's LinkedIn profile in one workflow
const name = ctx . thisRow . get ( "Name" );
const company = ctx . thisRow . get ( "Company" );
// Step 1: Find LinkedIn URL
const url = await services . person . linkedin . findUrl ({
name ,
company ,
});
if ( ! url ) {
ctx . thisRow . set ({ Status: "LinkedIn Not Found" });
return ;
}
// Step 2: Enrich the profile
const profile = await services . person . linkedin . enrich ({ url });
// Step 3: Store enriched data for sales outreach
ctx . thisRow . set ({
"LinkedIn URL" : url ,
"Full Name" : profile . full_name ,
Title: profile . job_title ,
Location: profile . location_city ,
Headline: profile . headline ,
"Years of Experience" : Math . floor (( profile . total_experience_duration_months || 0 ) / 12 ),
Status: "Enriched" ,
});
const linkedinUrl = ctx . thisRow . get ( "LinkedIn URL" );
const profile = await services . person . linkedin . enrich ({ url: linkedinUrl });
// Find current position (where date_to is null)
const currentJob = profile . experience ?. find (( job ) => job . date_to === null );
if ( currentJob ) {
ctx . thisRow . set ({
"Current Role" : currentJob . title ,
"Current Company" : currentJob . company_name ,
"Started Role" : currentJob . date_from ,
"Time in Role" : currentJob . duration ,
"Seniority Level" : currentJob . management_level ,
});
// Calculate if they're new in role (good timing for outreach)
const isNewInRole = currentJob . duration_months && currentJob . duration_months < 6 ;
ctx . thisRow . set ({ "New in Role" : isNewInRole });
}
Qualify Prospects by Experience Level
const linkedinUrl = ctx . thisRow . get ( "LinkedIn URL" );
const profile = await services . person . linkedin . enrich ({ url: linkedinUrl });
// Calculate experience metrics for qualification
const totalYears = Math . floor (( profile . total_experience_duration_months || 0 ) / 12 );
const currentJob = profile . experience ?. find (( job ) => job . date_to === null );
const seniorityLevel = currentJob ?. management_level || "Individual Contributor" ;
// Qualify based on experience
let qualification = "Not Qualified" ;
if ( totalYears >= 10 && seniorityLevel . includes ( "Director" )) {
qualification = "High Priority" ;
} else if ( totalYears >= 5 && seniorityLevel . includes ( "Manager" )) {
qualification = "Medium Priority" ;
}
ctx . thisRow . set ({
"Years of Experience" : totalYears ,
Seniority: seniorityLevel ,
Qualification: qualification ,
});