Library / Reports, Analytics & Dashboards
Reports, Analytics & Dashboards
Track weekly competitor hiring from Job Opportunities API to Google Sheets and Slack
On a schedule, it builds reports using Google Sheets, Slack.
What it does
## Competitor hiring tracker, week over week ### Who's it for Sales teams watching for expansion signals, recruiters watching a competitor's reqs, investors watching a portfolio, and analysts tracking a sector. ### What makes it different Most job data can only tell you what was posted to a board. Job Opportunities API reads employers' own career sites and applicant-tracking systems, and records where each field came from. This workflow turns that into a week over week delta per employer, which is the signal that actually matters: not "who has jobs", but who is hiring more than last week and who has stopped. ### How it works 1. Runs every Monday at 07:00. 2. Reads your watchlist from a Google Sheet, including last week's open count. 3. Calls /v1/jobs once per employer with the employer filter, to read their complete open set. 4. Scores each employer: open now, how many are new this week, whether a salary was published, and how many are remote or hybrid. 5. Writes this week's count back to the sheet, so next week has a real baseline. 6. If any employer moved by more than your threshold, builds one grouped Slack digest. Otherwise it stays quiet. ### How to set up 1. Get a free key (no card): https://jobopportunitiesapi.org/login?ref=n8n-template 2. Create a Google Sheet with these columns: slug, name, open_last_week. Leave open_last_week empty on the first run. Click "Share new template" is not needed, just select it in the two Sheets nodes. 3. In Fetch open roles per employer, create a Header Auth credential: name Authorization, value Bearer YOUR_KEY. 4. Pick your Slack credential and channel in Post the digest to Slack. 5. Run once by hand to fill in the baseline, then activate. ### Requirements A free Job Opportunities API key, a Slack workspace, and a Google Sheet with at least one employer slug. ### How to customize Thresholds live at the top of Score each employer: CHANGE_THRESHOLD (default 3) and MIN_NEW_ROLES (default 3). Employers are added in the sheet, never in the workflow, and a slug is the part after /companies/ in the API. An employer whose lookup fails is reported as "lookup failed" in the digest instead of stopping the run.
The steps
- Every Monday at 07:00
- Read the watchlist sheet
- Fetch open roles per employer
- Score each employer
- Save this week as the baseline
- Aggregate the week
- Anything worth reporting?
- Build the digest
- Post the digest to Slack
- Nothing moved this week
- Skip rows without an employer
Similar automations
Web Scraping & ResearchScrape Hacker News Who Is Hiring Posts with OpenAI15 stepsWeb Scraping & ResearchScrape Hacker News Who Is Hiring Posts into Airtable15 stepsWeb Scraping & ResearchScrape Hacker News Who Is Hiring Posts into Airtable44 stepsWeb Scraping & ResearchScrape Hacker News Who Is Hiring Posts into Airtable44 steps