Create Republished Job Offers signal
Capture hiring desperation — companies republishing the same roles repeatedly signal serious talent shortages, high hiring urgency, and concentrated opportunity.
Input: job title keywords (jobTitleInclude, jobTitleExclude), target locations (locations — optional, empty means worldwide) and excluded locations, companySizeFilters, a job recency window (publishedDate — only jobs posted within the last "24h", "7d", or "30d"), email enrichment toggle (getEmails), and optionally hiring decision-makers (enablePersonaTargeting with targetPersonas, customPersonaTitles, and maxLeadsPerCompany — 1-50 contacts per company, 1 when omitted — plus companyOnlyWhenContactsRefused, default false, to still get the company, with no contact, when every candidate found there was filtered out instead of nothing, and requireContact, default false, to receive only leads with a contact: a company where nobody matching your personas is found is then neither delivered nor charged, whatever companyOnlyWhenContactsRefused says).
Output: every matching republished job is delivered to your webhookUrl as it is detected, filtered by your config. Leads include hiring decision-maker contact details only when enablePersonaTargeting is enabled; otherwise the contact field is empty. Note on locations: it is optional — omit it or send an empty list to search worldwide. Multiple locations are combined with OR, so each one you add widens the search. Pass names ("France"), not ids; an unrecognised name returns 400 INVALID_LOCATION. Worldwide signals can match a lot more, so size dailyLeadLimit accordingly.
Use cases:
- Pain-point pitch — a re-posted role signals a hard-to-fill need; recruiting + automation vendors pitch relief.
- Urgency timing — reach them while the hiring pain is acute.
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/republished-job-offers
- Auth: HTTP bearer
Request body
Example request
{
"config": {
"companySizeFilters": [
"201-500",
"501-1000"
],
"customPersonaTitles": [
"VP of Engineering"
],
"detectTechnologies": false,
"enablePersonaTargeting": true,
"excludedWebsites": [
"acme.com"
],
"getEmails": true,
"getHomepageContent": false,
"getPhones": false,
"getSireneData": false,
"jobDescriptionExclude": [],
"jobDescriptionInclude": [],
"jobDescriptionIncludeAll": false,
"jobTitleExclude": [],
"jobTitleInclude": [
"Engineer",
"Developer"
],
"jobTitleIncludeAll": false,
"locations": [
"France"
],
"personaExportMode": "top_ranked",
"personaLocations": [
"France"
],
"publishedDate": "30d",
"targetPersonas": [
"CTO",
"HR Director"
]
},
"dailyLeadLimit": 50,
"name": "Hard-to-fill engineering roles",
"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.