AI candidate screening pipeline: LinkedIn to Telegram with Gemini & Apify
LinkedIn URL → Scrape → Match → Screen → Decide, all automated This workflow automatically processes candidate LinkedIn profiles shared via Telegram, intelligently matches them to job descriptions, performs AI-powered...
Template notes
LinkedIn URL → Scrape → Match → Screen → Decide, all automated
This workflow automatically processes candidate LinkedIn profiles shared via Telegram, intelligently matches them to job descriptions, performs AI-powered screening analysis, and sends actionable summaries to your team in Telegram.
Good to know - Handles LinkedIn profile scraping via Apify API (extracts full profile data including experience, education, skills) - Built-in spam prevention: limits users to 3 LinkedIn profile submissions - Two-stage JD matching: prioritizes role mentioned in candidate's Telegram message, falls back to LinkedIn profile analysis if needed - Uses Google Gemini API for AI screening (generous free tier and rate limits, typically enough to avoid paying for API requests - check latest pricing at [Google AI Pricing](https://ai.google.dev/pricing) and [rate limits documentation](https://ai.google.dev/gemini-api/docs/rate-limits)) - Automatic polling mechanism checks Apify extraction status up to 10 times (15-second intervals) - Complete audit trail logged in Google Sheets with unique submission IDs
Who's it for Hiring teams and recruiters who want to streamline first-round screening for candidates who share LinkedIn profiles directly. Perfect for companies accepting applications via messaging platforms (Telegram, WhatsApp, etc.), especially useful fortech-savvy audiences and remote/global hiring.
How it works 1. Telegram bot receives message containing LinkedIn profile URL from candidate 2. Validates URL format and checks spam prevention (max 3 submissions per Telegram username) 3. Sends confirmation message to candidate and notifies internal talent team via Telegram group 4. Extracts clean LinkedIn URL and initiates Apify scraping job 5. Polls Apify API up to 10 times (15-second intervals) until profile extraction completes 6. AI agent matches candidate to best-fit job description by analyzing Telegram message context first (if candidate mentioned a role), or LinkedIn profile content as fallback (selects up to 3 potential JD matches) 7. If multiple JDs matched, second AI agent selects the single best fit based on detailed profile analysis 8. AI recruiter agent analyzes LinkedIn profile against selected JD and generates structured screening report (strengths, weaknesses, risk/reward factors, overall fit score 0-10 with justification) 9. Logs complete analysis to Google Sheets tracker with unique submission ID 10. Sends formatted summary to Telegram group with candidate details, matched JD, and overall fit score
Requirements - Telegram Bot Token ([Create bot via @BotFather](https://t.me/botfather)) - Apify account with API token ([Sign up for free tier](https://apify.com/)) - Google Drive account (OAuth2) - Google Sheets account (OAuth2) - Google Gemini API key ([Get free key here](https://makersuite.google.com/app/apikey)) - Google Drive folder for Job Descriptions (as PDFs or Google Docs) - Telegram group for internal talent team notifications
How to set up 1. Create Telegram bot and internal Telegram chat group with new bot: - Message [@BotFather](https://t.me/botfather) on Telegram - Send /newbot and follow instructions to create your bot - Save the API token provided - Create Telegram group chat and invite your new bot + invite the @GetIDs bot - Note down the group chat ID ([How to get group chat ID](https://docs.google.com/document/d/1fGM9sZMQcH8WU33mUYZeT5vyhjRq0S4WlsU0opcxTQ/edit?usp=sharing))
2. Setup Apify: - Sign up at [Apify](https://apify.com/) - Get your API token from Settings - Note: Free tier includes sufficient scraping credits for testing and production ($0.01 per successful LinkedIn profile enriched, a free monthly limit of $5.00) - [LinkedIn profile scraper "actor" details](https://apify.com/devfusion/linkedin-profile-scraper)