Webhooks
Receive matched jobs the moment they appear and trigger auto-apply on the fly.
UpHunt can POST to your server whenever a new job matches one of your feeds. Combine webhooks with the Apply API to build a fully automated pipeline.
How it works
Set up a job feed in your Dashboard with a webhook URL.
When a new job matches that feed, UpHunt POSTs the job payload to your URL.
Your server decides whether to apply and (optionally) generates a cover letter.
Call POST /api/auto-apply-v2/apply with the ciphertext from the payload as jobId.
Upwork payload
companyId is the Upwork client identifier — pass it to GET /api/clients/:companyId/jobs to pull that client's open jobs and work history. It's provided both at the top level (companyId) and nested under client.company.companyId.
LinkedIn payload
Full automation example
Apply automatically to any Upwork job scoring 7+ using a UpHunt-generated cover letter:
Delivery guarantees
Your webhook endpoint must respond with a 2xx status within 10 seconds. For longer processing, return 200 immediately and handle the apply call asynchronously (background queue, worker, etc.).
- Retries — we retry failed deliveries up to 3 times with exponential backoff (30s, 2m, 10m).
- Ordering — events are delivered in the order jobs are matched, but concurrent feeds are not strictly ordered.
- Deduplication — duplicate events for the same
(jobId, jobListenerId)are suppressed for 24 hours.
Testing locally
Use a tunnel (ngrok, cloudflared, localtunnel) to expose your local server, then paste the public URL into the feed's webhook field. UpHunt sends a test payload when you save the feed.