Quick Overview
This workflow scrapes job listings from multiple company career sites, stores and updates them in Google Sheets, cleans and extracts job text from each job page, then uses Google Gemini and Groq (via LangChain) to generate LinkedIn-ready job posts that can be published through LinkedIn and reported via Telegram.
How it works
- Triggers from a Telegram bot command or on a scheduled cron timetable.
- Scrapes job listings from multiple career sites (including TruGreen, SavATree, Perennial Services Group, Senske/UKG, Paylocity job boards, Breezy HR, and SilkRoad) and appends or updates new jobs in Google Sheets using Req ID as the key.
- Loads unprocessed jobs from Google Sheets, validates each record has an Original URL, and routes it to the correct brand-specific scraper based on the URL pattern.
- Fetches each job detail page, sanitizes the HTML into clean plain text, and writes the result back to Google Sheets with “Text created” and “Date Text Created” fields.
- For ad-hoc or scheduled posting, loads a job with cleaned text, validates the “Job Text” field is present, and prompts a LangChain agent using Google Gemini and Groq to draft a compliance-focused LinkedIn post.
- Publishes approved posts to a LinkedIn organization and logs the LinkedIn post URL, published status, post text, and publish date back into Google Sheets.
- Sends Telegram updates for process status and generates total, daily, and weekly posting reports from Google Sheets metrics.
Setup
- Connect credentials for Google Sheets OAuth2, LinkedIn OAuth2 (with permission to post as your target organization), Telegram bot API, Groq API, and Google Gemini (PaLM) API.
- Create or select the Google Sheets spreadsheet and worksheet with the expected columns (for example: Req ID, Job title, Brand Name, City, State, Zip code, Address, Original URL, Job Text, Text created, Date Text Created, Published?, Post Link, Post text, Publish Date).
- Update the Google Sheets document ID, sheet/tab name, and any matching columns (Req ID and/or Original URL) to align with your spreadsheet.
- Set your Telegram chat IDs and configure the Telegram bot in BotFather, then start the bot and use the inline menu options to run scraping, cleaning, posting, or reporting.
- Confirm the LinkedIn organization ID used for posting matches your organization and that the workflow’s schedule times match your desired timezone and cadence.