Create Department Growth signal
Find decision-makers at companies where a specific department is rapidly growing or shrinking — immediately surface your ideal personas (Sales VPs, Engineering leads, etc.) as these organizational changes happen.
Input: a name for the signal (name), a department to track (department), your ICP filters (companySizeFilters, locations, industryFilters), a growth percentage range (growthMin and growthMax—use negative numbers to find shrinking departments), and target persona titles (targetPersonas, with enablePersonaLookup set to true). Optional: your webhook endpoint (webhookUrl — omit it to read leads with GET /api/v1/signals/{signalId}/leads or a connected CRM), email/phone enrichment (getEmails, getPhones), a daily lead cap (dailyLeadLimit), and an initial status (status—defaults to draft; set to active to start collecting).
Output: once active, the signal scans daily for companies that have newly entered your growth band. Each matching company is screened for your target personas; matching people are delivered to your webhookUrl, enriched with contact details if requested. Persona targeting is required: no leads are produced unless enablePersonaLookup is on with at least one persona specified in targetPersonas.
Use cases:
- Function-specific pitch — a growing sales team → GTM tools; a growing eng team → dev tools.
- Budget signal — department growth means budget is being allocated to that function.
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/department-growth
- Auth: HTTP bearer
Request body
Example request
{
"config": {
"companySizeFilters": [
"51-200",
"201-500"
],
"department": "Sales",
"enablePersonaLookup": true,
"getEmails": true,
"getPhones": false,
"growthMax": 100,
"growthMin": 20,
"industryFilters": [
"Software Development"
],
"locations": [
"France"
],
"personaExportMode": "top_ranked",
"targetPersonas": [
"Sales Director",
"Growth Director",
"Business Developer"
]
},
"dailyLeadLimit": 25,
"name": "Companies scaling their sales team",
"status": "active",
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Response
Successful Response
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.