Quick Overview
This workflow runs weekly (or manually) to pull HubSpot companies, search Coresignal job ads via Elasticsearch for customer support roles by company domain, maintain job snapshot and job tables in n8n Data Tables, and update HubSpot company properties with job-signal metrics.
How it works
- Runs on a Monday 9am schedule (or manual start) and generates a unique run ID for the execution.
- Fetches all companies from HubSpot, removes duplicates, and keeps only companies that have a website domain.
- Batches company domains and queries Coresignal’s Elasticsearch job index for active customer-support-related job ads matching those domains.
- Stores the found job IDs as a “current snapshot” in an n8n Data Table and compares it to the previous snapshot to identify new and disappeared job ads.
- For newly found job IDs, fetches full job details from Coresignal and upserts them into a “job_data_table” Data Table, while updating the “previous snapshot” with the active IDs.
- For job IDs no longer present, deletes them from the snapshot and removes the corresponding rows from the job table.
- Aggregates active jobs per company domain (counts, recent-posting metrics, and a “top job” pick) into a “company_data” Data Table and compares it with the prior company list.
- Updates matching HubSpot company records to reflect new/updated/ended job-signal fields such as active listings, jobs in the last 7/30 days, and top job details.
Setup
- Add HubSpot OAuth2 credentials and ensure your HubSpot companies have a populated website/domain property and the custom properties used for updates (for example job_active_listings_total, jobs_last_7_days, and top_job_url).
- Add Coresignal credentials and confirm your account supports the job Elasticsearch DSL search and job detail lookups.
- Create (or relink) the n8n Data Tables used by the workflow: previous snapshot, current snapshot, job_data_table, and company_data.
- Review and adjust the Coresignal Elasticsearch query terms (job titles and filters) to match the roles you want to track.
- Set the schedule trigger to your preferred cadence or use the manual trigger for ad-hoc runs.