See llms.txt for all machine-readable content.

Back to Templates

Generate hiring-signal outreach lines from career pages with Apify, GPT-4 and Slack

Quick overview

This workflow runs on a schedule (or manually) to scrape target companies’ career pages via Apify, identify roles matching your keywords, generate a compliant outreach first line with OpenAI, then store results in Google Sheets and post a Slack digest when new matching roles appear.

How it works

  1. Runs every Monday at 8am (or when started manually) and loads your target company URLs, role keywords, and offer context.
  2. Validates the inputs and reads prior results from a Google Sheets tab to detect previously seen roles.
  3. Uses an Apify actor to find each company’s careers/ATS page and collect job listings that match the configured keywords.
  4. Groups jobs by company, compares them to the saved role IDs, and skips AI generation when nothing has changed.
  5. For companies with matches, calls an OpenAI chat model to decide whether the roles are relevant and to draft a single outreach first line citing specific job posts.
  6. Rejects drafts that include unsupported claims, numbers, links, or missing citations, then writes one upserted row per company back to Google Sheets.
  7. Builds a Slack digest for companies with a usable first line and at least one newly detected matching role, and posts it to the configured channel.

Setup

  1. Add credentials for Apify, OpenAI, Google Sheets OAuth2, and Slack.
  2. Create a Google Sheet with a tab named “Hiring leads”, then set the spreadsheet in both Google Sheets steps and ensure updates match on the companyDomain column.
  3. Update the target Slack channel in the Slack step (for example, #hiring-signals) and ensure the bot/app can post there.
  4. In the targets configuration, set your company URL list, roleKeywords, whatYouOffer, and any optional filters like location, postedWithinDays, maxJobsPerCompany, and maxChargeUsd.