Rodz has no native Clay app: the link is a webhook. Create a webhook-fed table in Clay, copy its URL, paste it as the webhook of your Rodz Job Changes signal, then send a test lead. Every decision-maker who changes jobs arrives as a Clay row, with the new role, the previous employer and the contact. A lead costs 2 credits.
Key facts
A job change costs 2 credits per lead, plus 0.5 credit per email found (getEmails), charged on success only.
Delivery is at least once: a lead can arrive twice after a retry, so de-duplicate on contact.lead_id.
On the Clay side, a webhook source accepts 50,000 submissions at most (Clay documentation): plan a new table beyond that.
Rodz identifies 400,000+ signals a month (July to September 2026 average).
Cost : 2 credits per lead (+0.5 credit per email found) Setup time : 15 min Clay connects through a Rodz webhook or the API (no native Rodz app)
Before you start
A Rodz account with credits (the test account includes 100).
A Clay workspace where you can create a table.
A Rodz API key (Integrations → API) if you configure through the API.
Steps
Step 1.
Create a webhook-fed table in Clay
In a Clay workbook, click + Add, search for Webhooks and choose Monitor webhook. Copy the webhook URL. Clay also offers an optional authentication token sent in a header: Rodz does not send custom headers, so leave it off and keep the URL secret.
Step 2.
Create the Job Changes signal in Rodz
In My Signals, click Activate Signal and pick Job Changes and set the roles to follow, the size and industry of the new employer, and the person’s location. Keep the signal as a draft for now. Tick Get emails if you do not want to enrich emails in Clay.
Step 3.
Paste the Clay URL as the signal’s webhook
In the signal’s Integrations tab, set the webhook to the Clay URL and save. Through the API, it is the signal’s webhookUrl field, on creation (POST /api/v1/signals/job-changes) or later with a PATCH.
Send a sample lead with POST /api/v1/signals/{signal_id}/test-webhook. The response gives the HTTP status Clay returned and the payload sent, which carries signal.is_test: true. The test row appears in Clay: add a column for each nested field you need (contact.email, signal.new_company...), see the table below.
Send a test lead to the signal’s webhook
curl -X POST "https://api.rodz.io/api/v1/signals/$SIGNAL_ID/test-webhook" \ -H "Authorization: Bearer $RODZ_API_KEY"
Step 5.
Activate the signal and filter tests and duplicates
Set the signal to Active. In Clay, exclude rows where signal.is_test is true and de-duplicate on contact.lead_id: when Clay fails transiently, Rodz retries the delivery, so a lead can arrive twice. If your table was unavailable, POST /api/v1/signals/{signal_id}/replay-webhook resends every lead already produced (they carry signal.is_replay: true).
Example payload
What Clay receives for one lead: the JSON is posted as is to the webhook URL (same format as `GET /api/v1/signals/{signal_id}/leads`).
Clay is the workshop here: Rodz detects the change and delivers the contact, Clay runs your own steps.
Qualify: a scoring column on company.employee_range, company.industry and signal.change_type (a move to a new company is often worth more than an internal promotion).
Personalize: a first message built from signal.new_title and the start month.
Route: an export column to your CRM or sequencing tool.
If your final destination is HubSpot or lemlist, the native recipe is simpler: see job changes to HubSpot.
Troubleshooting
The test fails: the test-webhook response gives statusCode, error and the start of Clay’s response. Check the copied URL.
signed: false in the test response: no API key is linked to the signal, so deliveries go out unsigned. No effect for Clay, which does not verify.
Nothing arrives after weeks: the table may have reached Clay’s 50,000-submission limit.
Frequently asked questions
Does Rodz have a native Clay integration?
No. Rodz pushes natively to HubSpot, Pipedrive, Google Sheets, lemlist and other sequencing tools; Clay connects through the signal’s webhook. It is reliable and no-code, but you create the columns and handle de-duplication.
Can Clay verify the Rodz webhook signature?
No. Rodz signs every delivery (X-Webhook-Signature and X-Webhook-Timestamp headers, HMAC-SHA256), but a Clay table does not verify signatures. Keep the Clay URL secret. If verification is mandatory for you, put a small receiver in between that verifies, then forwards to Clay.
Why duplicate rows?
Delivery is at least once: after a timeout or a 5xx from Clay, Rodz retries. The same lead keeps the same contact.lead_id: use it as the unique key.
What happens beyond 50,000 rows?
The 50,000-submission cap per webhook source is a Clay limit. Create a new webhook table and update webhookUrl on the signal with a PATCH.
Can I read leads without a webhook?
Yes: GET /api/v1/signals/{signal_id}/leads returns the signal’s leads, newest first, in the same format. Reading leads is free.