Oportunidades de trabajo de Upwork a Google Sheets
Este es unOtherflujo de automatización del dominio deautomatización que contiene 8 nodos.Utiliza principalmente nodos como Set, HttpRequest, GoogleSheets, ScheduleTrigger. Seguimiento automatizado del mercado laboral: Crawler de Upwork a un flujo de trabajo de Google Sheets
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (8)
Categoría
{
"id": "s1PkxgZZchk3npwR",
"meta": {
"instanceId": "84ad02d6104594179f43f1ce9cfe3a81637b2faedb57dafcb9e649b7542988db",
"templateCredsSetupCompleted": true
},
"name": "Upwork Jobs to google sheets",
"tags": [],
"nodes": [
{
"id": "e08c753e-7d88-4f0b-889e-100291f0a3c7",
"name": "Verificar trabajos de Upwork - Disparador",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
0,
0
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ffcc4ad0-7787-40a6-a78d-d3a03b1dc23b",
"name": "Obtener trabajos de Upwork usando Apify",
"type": "n8n-nodes-base.httpRequest",
"position": [
260,
0
],
"parameters": {
"url": "https://api.apify.com/v2/actor-tasks/<TASK_ID>/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>",
"method": "POST",
"options": {},
"sendBody": true,
"bodyParameters": {
"parameters": [
{}
]
}
},
"typeVersion": 4.2
},
{
"id": "4d0d8fb6-ad2e-4dff-8d04-b100721e33ee",
"name": "Formatear datos de rastreo",
"type": "n8n-nodes-base.set",
"position": [
660,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "404d06e0-d3a0-448d-98f5-35fe87405e87",
"name": "title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "1d0e9a1d-e5f9-413b-9ab4-f20ae7260b65",
"name": "description",
"type": "string",
"value": "={{ $json.description }}"
},
{
"id": "c8d60809-8747-4321-ac97-a44a12ae91d5",
"name": "postedDate",
"type": "string",
"value": "={{ $json.postedDate }}"
},
{
"id": "e55fbecc-a984-49b7-80a7-8c7a6d10b32a",
"name": "skills",
"type": "array",
"value": "={{ $json.skills }}"
},
{
"id": "45f77f6b-c436-490c-8970-c9cb8b9949ea",
"name": "link",
"type": "string",
"value": "={{ $json.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c1f6c43c-f962-48f7-818b-638105720cad",
"name": "Registrar trabajos en Hojas de Google",
"type": "n8n-nodes-base.googleSheets",
"position": [
960,
0
],
"parameters": {
"columns": {
"value": {
"link": "={{ $json.link }}",
"title": "={{ $json.title }}",
"skills": "={{ $json.skills }}",
"postedDate": "={{ $json.postedDate }}",
"description": "={{ $json.description }}"
},
"schema": [
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "description",
"type": "string",
"display": true,
"required": false,
"displayName": "description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postedDate",
"type": "string",
"display": true,
"required": false,
"displayName": "postedDate",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "skills",
"type": "string",
"display": true,
"required": false,
"displayName": "skills",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "link",
"type": "string",
"display": true,
"required": false,
"displayName": "link",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u9TeIArgJPwLn-MV77-lwDwNiZ8qZscZnkuK1xev6YA/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1u9TeIArgJPwLn-MV77-lwDwNiZ8qZscZnkuK1xev6YA",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1u9TeIArgJPwLn-MV77-lwDwNiZ8qZscZnkuK1xev6YA/edit?usp=drivesdk",
"cachedResultName": "Upwork job scraper"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "Rp7XiR3hxJfv03ZO",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "0e05d038-bb10-4cd2-847c-c38ecafe47f4",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-1420
],
"parameters": {
"color": 5,
"width": 480,
"height": 1620,
"content": "## 🌐 **Section 1: Data Scraping Automation**\n\n> 🧠 *“Tell me what’s trending!”*\n\n### 🔁 Nodes Combined:\n\n* 🕒 `Check Upwork Jobs - Trigger`\n* 🌐 `Fetch Upwork Jobs from Apify`\n\n---\n\n### ⚙️ What This Section Does:\n\nThis section automates the process of **scraping fresh job listings from Upwork** using Apify.\n\n### 🧩 Step-by-Step Breakdown:\n\n#### 🕒 1. `Check Upwork Jobs - Trigger`\n\n🕰 **Trigger Type**: Scheduled\nThis node automatically **starts the workflow at specific times** (e.g., every hour, daily, etc.).\n\n📌 **Why this matters**:\nYou don’t have to manually run anything! Just set it once, and n8n will check for new job listings on its own — like a robot assistant.\n\n---\n\n#### 🌐 2. `Fetch Upwork Jobs from Apify`\n\n📤 **HTTP Request** → **Apify API**\n\nThis node sends a `POST` request to [Apify](https://apify.com), where you've configured a **web scraping actor** to collect data from **Upwork job listings**.\n\n📥 **Response**: A JSON array of job data, including:\n\n* 📌 `title` – What the job is about\n* 📝 `description` – A short job overview\n* 🎯 `skills` – Required skills\n* 🗓 `postedDate` – When it was posted\n* 🔗 `link` – Direct link to the job\n\n✅ **Why Apify?**\nBecause Upwork’s API is **not public**, Apify acts as your friendly bot that **scrapes the job board safely and returns structured data**.\n\n💡 **Pro Tip**: You can customize your Apify actor to filter by keyword (e.g., `AI`, `Python`, `Design`, etc.).\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "d5ef38cd-796c-48bf-ac16-7180b22dea39",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
-1500
],
"parameters": {
"color": 6,
"width": 480,
"height": 1700,
"content": "## 📊 **Section 2: Data Transformation & Logging**\n\n> 🧠 *“Let’s clean this up and put it somewhere useful.”*\n\n### 🔁 Nodes Combined:\n\n* ✏️ `Format Job Data`\n* 📄 `Log Jobs to Google Sheets`\n\n---\n\n### 🧩 Step-by-Step Breakdown:\n\n#### ✏️ 3. `Format Job Data`\n\n🧹 **Field Cleaner / Formatter**\n\nThis node helps you:\n\n* Extract only **relevant fields** from the Apify response\n* Optionally **rename or restructure fields** (like mapping `postedDate` to `Date Posted`)\n* Prepare the data in a clean format so it's ready for Google Sheets\n\n📌 Example Output:\n\n```json\n{\n \"Job Title\": \"Build AI chatbot\",\n \"Skills\": \"LangChain, Python\",\n \"Posted Date\": \"2025-06-06\",\n \"Link\": \"https://upwork.com/jobs/...\"\n}\n```\n\n💡 **Why This Matters**: Raw data isn’t always useful. This node ensures that what goes into Google Sheets is **clean, consistent, and human-readable**.\n\n---\n\n#### 📄 4. `Log Jobs to Google Sheets`\n\n📑 **Append Data to Sheet**\n\nThis node takes the formatted job data and **adds it to a Google Sheet** row by row.\n\n📌 Each job becomes a row with columns:\n\n| Job Title | Skills | Posted Date | Link |\n| ------------ | ----------------- | ----------- | ------------------------------------------------------- |\n| Build AI Bot | Python, LangChain | 2025-06-06 | [https://upwork.com/jobs/](https://upwork.com/jobs/)... |\n\n✅ **Why Use Google Sheets?**\n\n* You can **analyze market trends** easily\n* Share with your team\n* Build charts, dashboards, or even connect to Looker Studio\n\n"
},
"typeVersion": 1
},
{
"id": "8af7a509-a4a9-480b-b687-49a3056e27e1",
"name": "Nota adhesiva9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1920,
-1400
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "773ea8c5-702e-4080-818b-12f0dc93579f",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1920,
-1060
],
"parameters": {
"color": 4,
"width": 1289,
"height": 3058,
"content": "## 🌐 **Section 1: Data Scraping Automation**\n\n> 🧠 *“Tell me what’s trending!”*\n\n### 🔁 Nodes Combined:\n\n* 🕒 `Check Upwork Jobs - Trigger`\n* 🌐 `Fetch Upwork Jobs from Apify`\n\n---\n\n### ⚙️ What This Section Does:\n\nThis section automates the process of **scraping fresh job listings from Upwork** using Apify.\n\n### 🧩 Step-by-Step Breakdown:\n\n#### 🕒 1. `Check Upwork Jobs - Trigger`\n\n🕰 **Trigger Type**: Scheduled\nThis node automatically **starts the workflow at specific times** (e.g., every hour, daily, etc.).\n\n📌 **Why this matters**:\nYou don’t have to manually run anything! Just set it once, and n8n will check for new job listings on its own — like a robot assistant.\n\n---\n\n#### 🌐 2. `Fetch Upwork Jobs from Apify`\n\n📤 **HTTP Request** → **Apify API**\n\nThis node sends a `POST` request to [Apify](https://apify.com), where you've configured a **web scraping actor** to collect data from **Upwork job listings**.\n\n📥 **Response**: A JSON array of job data, including:\n\n* 📌 `title` – What the job is about\n* 📝 `description` – A short job overview\n* 🎯 `skills` – Required skills\n* 🗓 `postedDate` – When it was posted\n* 🔗 `link` – Direct link to the job\n\n✅ **Why Apify?**\nBecause Upwork’s API is **not public**, Apify acts as your friendly bot that **scrapes the job board safely and returns structured data**.\n\n💡 **Pro Tip**: You can customize your Apify actor to filter by keyword (e.g., `AI`, `Python`, `Design`, etc.).\n\n---\n\n## 📊 **Section 2: Data Transformation & Logging**\n\n> 🧠 *“Let’s clean this up and put it somewhere useful.”*\n\n### 🔁 Nodes Combined:\n\n* ✏️ `Format Job Data`\n* 📄 `Log Jobs to Google Sheets`\n\n---\n\n### 🧩 Step-by-Step Breakdown:\n\n#### ✏️ 3. `Format Job Data`\n\n🧹 **Field Cleaner / Formatter**\n\nThis node helps you:\n\n* Extract only **relevant fields** from the Apify response\n* Optionally **rename or restructure fields** (like mapping `postedDate` to `Date Posted`)\n* Prepare the data in a clean format so it's ready for Google Sheets\n\n📌 Example Output:\n\n```json\n{\n \"Job Title\": \"Build AI chatbot\",\n \"Skills\": \"LangChain, Python\",\n \"Posted Date\": \"2025-06-06\",\n \"Link\": \"https://upwork.com/jobs/...\"\n}\n```\n\n💡 **Why This Matters**: Raw data isn’t always useful. This node ensures that what goes into Google Sheets is **clean, consistent, and human-readable**.\n\n---\n\n#### 📄 4. `Log Jobs to Google Sheets`\n\n📑 **Append Data to Sheet**\n\nThis node takes the formatted job data and **adds it to a Google Sheet** row by row.\n\n📌 Each job becomes a row with columns:\n\n| Job Title | Skills | Posted Date | Link |\n| ------------ | ----------------- | ----------- | ------------------------------------------------------- |\n| Build AI Bot | Python, LangChain | 2025-06-06 | [https://upwork.com/jobs/](https://upwork.com/jobs/)... |\n\n✅ **Why Use Google Sheets?**\n\n* You can **analyze market trends** easily\n* Share with your team\n* Build charts, dashboards, or even connect to Looker Studio\n\n💡 **Bonus Tip**: Add filters or conditional formatting to highlight certain keywords or top-paying jobs!\n\n---\n\n## 🎯 Why This Workflow is Powerful (Even for Beginners)\n\n✅ **No coding required** – You’re using no-code tools like n8n, Apify, and Google Sheets\n✅ **Automated** – Runs while you sleep 🌙\n✅ **Real-time market insights** – Know what clients are looking for (great for freelancers, agencies, product devs)\n✅ **Extendable** – Add Telegram alerts, Airtable dashboards, or link it with Notion or CRMs!\n\n---\n\n## 📌 What You Can Do Next:\n\n| Task | Tool | Outcome |\n| ------------------------- | --------------------------------- | ----------------------------------------- |\n| ✅ Add deduplication logic | Google Sheets or n8n `IF` node | Avoid storing duplicate jobs |\n| ✅ Filter by skill/keyword | Apify task input | Focus on niche markets |\n| ✅ Connect to Airtable | Replace Sheets with Airtable node | Richer dashboards and tagging |\n| ✅ Set alerts | Email/Telegram node | Be the first to apply or inform your team |\n\n---\n\n\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {
"Fetch Upwork Jobs using Apify": [
{
"json": {
"link": "https://www.upwork.com/jobs/~01a2b3c4d5e6f7g8h9",
"title": "Build AI-based chatbot with RAG",
"skills": [
"Python",
"LangChain",
"AI",
"RAG",
"LLM"
],
"postedDate": "2025-06-05T12:00:00Z",
"description": "Need a developer experienced in LangChain and vector DBs to build a chatbot..."
}
},
{
"json": {
"link": "https://www.upwork.com/jobs/~09h8g7f6e5d4c3b2a1",
"title": "Fine-tune Llama-3 for sentiment analysis",
"skills": [
"NLP",
"Llama",
"Fine-tuning",
"Transformers"
],
"postedDate": "2025-06-04T09:30:00Z",
"description": "Looking for someone to fine-tune Meta’s Llama-3 model on our custom dataset..."
}
}
]
},
"settings": {
"executionOrder": "v1"
},
"versionId": "ad7a638f-061a-4ab9-aa96-9d2b13f67c5c",
"connections": {
"4d0d8fb6-ad2e-4dff-8d04-b100721e33ee": {
"main": [
[
{
"node": "Registrar trabajos en Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"e08c753e-7d88-4f0b-889e-100291f0a3c7": {
"main": [
[
{
"node": "ffcc4ad0-7787-40a6-a78d-d3a03b1dc23b",
"type": "main",
"index": 0
}
]
]
},
"ffcc4ad0-7787-40a6-a78d-d3a03b1dc23b": {
"main": [
[
{
"node": "4d0d8fb6-ad2e-4dff-8d04-b100721e33ee",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Otros
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Yaron Been
@yaron-nofluffBuilding AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos
Compartir este flujo de trabajo