Create Competitor Connections signal
Identify every new 1st-degree connection to your competitors' sales and business teams — typically the prospects and customers your competitors are actively engaging, and often the highest-intent leads in your market. Reach them the moment they enter your competitors' network within your target market.
Input: one or more competitor LinkedIn company URLs (linkedinCompanyUrls), optional LinkedIn profile URLs to track directly (linkedinProfileUrls, up to 500 — each named person produces leads only once they have accepted our connection request; a PATCH with a new list starts watching added people and stops watching removed ones); optional enrichment toggles (getEmails, getPhones, getSireneData, detectTechnologies, getHomepageContent); optional persona targeting (targetPersonas, customPersonaTitles); optional ICP filters (companySizeFilters, locations, industryFilters, excludedLocations, excludedTitles, excludedCompanyUrls).
Output: every new 1st-degree connection detected at a tracked competitor, if it matches your filters (persona + ICP), is pushed to your webhookUrl as an enriched person lead; non-matching connections are filtered out. Each webhook payload includes the contact (name, email if enriched, phone if enriched, title, location, LinkedIn profile URL, matched persona), their employer (company name, website, LinkedIn URL, plus detected tech stack and homepage content when those enrichments are enabled), the competitor company URL where the 1st-degree connection was detected (signal.tracked_company, empty when you only watch individual profiles), and the LinkedIn URL of the watched person the lead connected with (signal.tracked_contact) — so a signal watching several people tells you which one produced each lead.
Use cases:
- Competitor displacement — these people are already evaluating solutions in your category; trigger a differentiation-led outbound sequence the day they connect, while intent is highest.
- CRM enrichment & routing — push the enriched contact + firmographics (size, industry, tech stack) into your CRM to auto-score and route to the right rep.
- Account-based triggers — when several people at one target account connect with a competitor, fire an ABM play (ads + SDR + exec outreach) on that account.
- Win-back watch — cross-reference against your own customer list to spot accounts drifting toward a competitor.
Request
- Base URL: https://api.rodz.io (the document declares no server; this is the origin it was published from)
- URL: https://api.rodz.io/api/v1/signals/competitor-connections
- Auth: HTTP bearer
Request body
Example request
{
"config": {
"companySizeFilters": [
"51-200",
"201-500",
"501-1000"
],
"customPersonaTitles": [
"VP of Growth",
"Chief Revenue Officer"
],
"detectTechnologies": false,
"excludedCompanySizeFilters": [
"Self-employed",
"1-10"
],
"excludedCompanyUrls": [],
"excludedIndustryFilters": [
"Financial Services"
],
"excludedLocations": [
"Paris"
],
"excludedTitles": [
"Intern",
"Junior"
],
"getEmails": true,
"getHomepageContent": false,
"getPhones": false,
"getSireneData": false,
"industryFilters": [
"Technology, Information and Internet",
"Software Development"
],
"linkedinCompanyUrls": [
"https://www.linkedin.com/company/lemlist",
"https://www.linkedin.com/company/la-growth-machine"
],
"locations": [
"France"
],
"targetPersonas": [
"Sales Director",
"Marketing Director"
]
},
"dailyLeadLimit": 50,
"name": "Tech competitors in France",
"status": "active",
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Response
Signal created
Example response
{
"applied": {
"allowUnknownCompanySize": false,
"maxJobAgeDays": 180
},
"config": {
"companySizeFilters": [
"201-500",
"501-1000"
],
"getEmails": true,
"jobTitles": [
"CTO"
],
"locations": [
"France"
],
"maxJobAgeDays": 90
},
"createdAt": "2026-01-15T10:30:00Z",
"dailyLeadLimit": 50,
"duplicateHandling": "refuse",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lastLeadAt": "2026-03-15T14:22:00Z",
"leadsToday": 3,
"leadsTotal": 127,
"name": "CTOs changing jobs in France",
"signalTypeId": "job_changes",
"status": "active",
"updatedAt": "2026-03-16T08:00:00Z",
"warnings": [
{
"code": "VALUE_BELOW_MINIMUM",
"field": "maxJobAgeDays",
"message": "`maxJobAgeDays` is 90; this signal applies 180. Job changes are delivered up to 180 days after the start date, and a shorter window is raised to that minimum.",
"severity": "info",
"values": [
"90"
]
}
],
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Changes
No recorded changes to this operation across all 1 revision of this API.