Upwork lead generation: Extract client emails with LinkedIn scraping and AI
Needs changesWhat this workflow does
This AI workflow has 15 nodes and runs on a schedule (every hour). Along the way it connects OpenAI Chat Model and Google Sheets. It also calls api.apify.com and api.phantombuster.com over HTTP.
How it runs
Trigger: On a schedule (every hour).
- Fetch Latest Upwork Jobs (Apify) (HTTP Request): calls api.apify.com
- Extract Company or Person Name from Job (AI Agent): runs an AI agent, with model: OpenAI Chat Model
- Name is Found? (If): checks a condition and branches into true / false
- Is It a Person or Company? (AI Agent): runs an AI agent, with model: OpenAI Chat Model
- Person or Company? (If): checks a condition and branches into true / false
- Search LinkedIn for Company (Phantombuster) (HTTP Request): calls api.phantombuster.com (POST)
- Search LinkedIn for Person (Phantombuster) (HTTP Request): calls api.phantombuster.com (POST)
- Scrape LinkedIn Company Profile (HTTP Request): calls api.phantombuster.com (POST)
- Scrape LinkedIn Person Profile (HTTP Request): calls api.phantombuster.com (POST)
- Find Company Email (Hunter.io) (HTTP Request): calls an HTTP API
…plus 2 more steps. See the full node list below.
Services it uses
HTTP calls to: api.apify.com, api.phantombuster.com
Before you upgrade to n8n 3.0
1 thing in this workflow is removed in n8n 3.0. Fix it before you upgrade:
- AI Agent v1 (old agent modes) in Extract Company or Person Name from Job (v1.9), Is It a Person or Company? (v1.9): replace with Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent.
Rather not rewrite it? Many of these flows can be rebuilt in Make (free plan).
| Removed in 3.0 | Replace with |
|---|---|
| AI Agent v1 (old agent modes) Extract Company or Person Name from Job (v1.9), Is It a Person or Company? (v1.9) | Latest AI Agent node (Tools Agent). For SQL Agent, use a Postgres or MySQL tool with a recent AI Agent. |
Nodes used (7)
- OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Schedule Trigger
n8n-nodes-base.scheduleTrigger - HTTP Request
n8n-nodes-base.httpRequest - AI Agent
@n8n/n8n-nodes-langchain.agent - If
n8n-nodes-base.if - No Operation, do nothing
n8n-nodes-base.noOp - Google Sheets
n8n-nodes-base.googleSheets
From the author
Automated solution to extract and organize contact information from Upwork job postings, enabling direct outreach to potential clients who post jobs matching your expertise. 🚀 What It Does - Scrapes job postings for contact information - Extracts email…