취업 시장 정보
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 30개의 노드를 포함합니다.주로 If, Code, Wait, Telegram, HttpRequest 등의 노드를 사용하며. Gemini AI와 Telegram 알림을 사용하여 Indeed 직업 목록을 이력서에 매칭
사전 요구사항
- •Telegram Bot Token
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Gemini API Key
사용된 노드 (30)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "potYDGdhPXDUMhZj",
"meta": {
"instanceId": "e2a1d0ec98fd0994972a016020dcf90b56d31fa85f2abd02801701fb8fc45e3d",
"templateCredsSetupCompleted": true
},
"name": "Job Market Intelligence",
"tags": [],
"nodes": [
{
"id": "7ef43820-825a-4e94-a9f2-483376e79768",
"name": "워크플로 실행 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1376,
96
],
"parameters": {},
"typeVersion": 1
},
{
"id": "26c1fd7c-423c-4b36-984b-f4603ea4f1b9",
"name": "HTTP 요청",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-1152,
96
],
"parameters": {
"url": "https://api.browseract.com/v2/workflow/run-task",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "workflow_id",
"value": "52804638608646754"
}
]
},
"genericAuthType": "httpBearerAuth"
},
"credentials": {
"httpBearerAuth": {
"id": "x2SDklVkEIBFM56U",
"name": "BrowserACtaPi"
}
},
"retryOnFail": true,
"typeVersion": 4.2,
"alwaysOutputData": true
},
{
"id": "3d4b822a-435b-4894-8b39-ca10e4d0140d",
"name": "HTTP 요청1",
"type": "n8n-nodes-base.httpRequest",
"position": [
-672,
80
],
"parameters": {
"url": "https://api.browseract.com/v2/workflow/get-task",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"queryParameters": {
"parameters": [
{
"name": "=task_id",
"value": "={{ $json.id }}"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"id": "x2SDklVkEIBFM56U",
"name": "BrowserACtaPi"
}
},
"typeVersion": 4.2
},
{
"id": "5550b6de-13b4-4cde-841f-b346cde3f8fe",
"name": "대기",
"type": "n8n-nodes-base.wait",
"position": [
-416,
352
],
"webhookId": "bb2c5339-e061-499b-9b16-d48f649e6fb9",
"parameters": {
"unit": "minutes",
"amount": 2
},
"typeVersion": 1.1
},
{
"id": "70406173-a3d9-4db7-a370-c9bb997800c1",
"name": "대기1",
"type": "n8n-nodes-base.wait",
"position": [
-960,
352
],
"webhookId": "7593e4d6-e23f-482b-9f7b-d0a24461b3ea",
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "295fedba-bc49-451a-8b9c-b0dda75e5b51",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
-960,
96
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d48ae258-78a0-4b26-923d-2643b6b774c6",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
},
{
"id": "3967a169-8432-45bd-8f89-08795fd12679",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.id }}",
"rightValue": "null"
}
]
}
},
"retryOnFail": false,
"typeVersion": 2.2
},
{
"id": "da4a5db4-a2f2-40e7-ae6a-3f46e820fbf3",
"name": "조건문1",
"type": "n8n-nodes-base.if",
"position": [
-400,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0347a2a2-eb32-414d-9494-4e648078cf40",
"operator": {
"type": "object",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
},
{
"id": "99f31959-6f27-40dd-97c3-6ff611da1e0b",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "finished"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8fc50c6f-8501-49ce-b697-04fa9210ef2a",
"name": "문자 메시지 전송",
"type": "n8n-nodes-base.telegram",
"position": [
32,
432
],
"webhookId": "f60ccf5f-b6e2-4d06-8c99-9ae53bde267d",
"parameters": {
"text": "=Title: {{ $json.text.Title }}\nSummary :{{ $json.text.Summary }}\nNeeds: {{ $json.text.Needs }}\nEducarion: {{ $json.text.Education }}\n{{ $json.text.Link }}",
"chatId": "@Test",
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "34LCOs7mfDx5vkSV",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "7fa00942-1d87-44a9-8618-b0d7a4546bb2",
"name": "JavaScript 코드",
"type": "n8n-nodes-base.code",
"position": [
-144,
432
],
"parameters": {
"jsCode": "// Get the original list from the 'Request' key in the incoming data.\nconst originalList =$input.first().json.output.Request ;\n\n// Create a new array to store the formatted output.\nconst outputItems = [];\n\n// Loop through each item in the original list.\nfor (const item of originalList) {\n // For each item, create a new object in the desired format.\n outputItems.push({\n json: {\n \"text\": item\n }\n });\n}\n\n// Return the new list of formatted objects.\nreturn outputItems;"
},
"typeVersion": 2
},
{
"id": "5f67b9c3-845f-451b-a314-3ecfbe06d4ef",
"name": "AI 에이전트",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-144,
64
],
"parameters": {
"text": "=hello this is my resume \n\n\"\nAge: 30\nExperience: 15 years in programming\nSenior Software Engineer\nEducation: Bachlore in Front-end and Back-end Software engineering \nGender: male\nabilities :Product development, innovation in Human Risk Management.\nSeeking a programming job in financial advising can work remot.\n\"\n\nfrom the {{ $json.output.string }} add all the job offers which matches my resume to output the output structure is List of texts that looks like this\n\nformat_final_json_response = {\n \"Request\": [\n {\n \"Title\": \"Title\",\n \"Summary\": \"About\",\n \"Needs\": \"Needs\",\n \"Education\": \"degree\",\n \"Link\": \"Link\"\n }\n ]\n}\n\nRemove duplicated offers (if company name and job title is same)\n\n\nfollow the Output exacly and also if no job is avalble add this sned this to output\n\n{\n \"Request\": [\n {\n \"Title\": \"No job Found\",\n \"Summary\": \"No luck today\",\n \"Needs\": \"No luck today\",\n \"Education\": \"No luck today\",\n \"Link\": \"im so sry to say that no job is aviable for you\"\n }\n ]\n}",
"options": {},
"promptType": "define",
"needsFallback": true,
"hasOutputParser": true
},
"typeVersion": 2.2,
"alwaysOutputData": false
},
{
"id": "4aa9cc49-cc7b-46b0-aa75-04c21be931ac",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
144,
288
],
"parameters": {
"jsonSchemaExample": "{\n \"Request\": [\n {\n \"Title\": \"Title\",\n \"Summary\": \"About\",\n \"Needs\": \"Needs\",\n \"Education\": \"degree\",\n \"Link\": \"Link\"\n }\n ]\n}"
},
"typeVersion": 1.3
},
{
"id": "7996bea7-6736-4a77-8fb8-a4f7fdfa9618",
"name": "스티키 노트-소개",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2000,
-112
],
"parameters": {
"width": 592,
"height": 424,
"content": "## Try It Out!\n### This n8n template helps you stay on top of the job market by matching scraped job offers with your resume using an AI Agent.\n\n### How it works\n* The workflow is triggered manually You Can make it Automatic too.\n* An **HTTP Request** node starts a web scraping task with the **BrowserAct** API to collect job offers.\n* A series of **If** and **Wait** nodes monitor the scraping job until it's finished.\n* An **AI Agent** node, powered by **Google Gemini**, processes the job listings and filters them to find matches for your resume. It's configured to output the results in a specific format.\n* A **Code** node then transforms the AI's output into a clean format.\n* Finally, the filtered job offers are sent directly to you via **Telegram**.\n\n### Requirements\n* **BrowserAct** API account for web scraping\n* **Gemini** account for the AI Agent\n* **BrowserAct** **“Job Market Intelligence”** Template\n* **Telegram** credentials for sending messages\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/UpnCKd7GaU) or Visit Our [Blog](https://www.browseract.com/blog)!\n"
},
"typeVersion": 1
},
{
"id": "647dc8d1-a1f3-436c-bf7e-8d516d183f61",
"name": "스티키 노트-대기",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
-112
],
"parameters": {
"color": 5,
"width": 496,
"height": 180,
"content": "## 2. Wait for Scraping to Finish\n\nThese nodes check the status of the scraping task. The `If` node determines if the task is complete. If it's still running, the `Wait` node pauses the workflow for a set period before retrying to check the status."
},
"typeVersion": 1
},
{
"id": "42f4cafd-5070-4793-bca9-7e4590a88dd2",
"name": "스티키 노트-AI",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
-112
],
"parameters": {
"color": 4,
"width": 512,
"content": "## 3. Use an AI Agent to Find Matching Jobs\n\nThis node uses an AI Agent to find the best job offers for you. It takes the scraped data and your resume, then processes them to find matching jobs. It's configured with a **Structured Output Parser** to ensure the results are always in the correct format.\n\n### Don't forget to Connect your Gemini and Change your resume. "
},
"typeVersion": 1
},
{
"id": "6c541147-4d4c-464c-87c5-b55e1333ce06",
"name": "스티키 노트-알림",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
576
],
"parameters": {
"color": 3,
"width": 512,
"height": 164,
"content": "## 4. Send Notifications\n\nThe scraped data is sometimes hard to read. A **Code** node is used here to transform the AI's output into a more readable format. The **Telegram** node then sends the final, filtered job offers directly to you.\n\n### Don't forget to Connect your Telegram and add your Channel ID. "
},
"typeVersion": 1
},
{
"id": "f4331db0-9b93-416f-9137-0672798a4cc0",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
80
],
"parameters": {
"color": 5,
"width": 480,
"height": 480,
"content": ""
},
"typeVersion": 1
},
{
"id": "7eca99df-860c-409f-bdfb-50150543e302",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
80
],
"parameters": {
"color": 5,
"width": 496,
"height": 480,
"content": ""
},
"typeVersion": 1
},
{
"id": "0edbea28-d451-4a41-8adb-4fd2ea485749",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
64
],
"parameters": {
"color": 4,
"width": 512,
"height": 336,
"content": ""
},
"typeVersion": 1
},
{
"id": "b257da41-e8ba-44a0-9aed-bd7479f7019e",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
416
],
"parameters": {
"color": 3,
"width": 512,
"height": 144,
"content": ""
},
"typeVersion": 1
},
{
"id": "57e7a01d-500e-4a54-a32a-88dfdceafb80",
"name": "스티키 노트-사용 방법",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2000,
320
],
"parameters": {
"width": 592,
"height": 216,
"content": "## How to use\n\n1. **Set up Credentials:** Add your credentials for **BrowserAct**, **Google Gemini**, and **Telegram** to the workflow. They will be used by the relevant nodes.\n2. **Set up BrowserAct:** In your **BrowserAct** account, Use **Job Market Intelligence** Template and setup your own template.\n3. **Add WorkFlow ID:** change the **workflow_id** value inside the **Run WorkFlow** node.\n4. **Activate Workflow:** To enable the automated schedule, simply activate the workflow. You can also manually trigger it by clicking the 'Execute Workflow' button to test it."
},
"typeVersion": 1
},
{
"id": "d2e3a14c-401d-4abd-98c7-7eb4213c277e",
"name": "스티키 노트-사용 방법1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2000,
544
],
"parameters": {
"width": 592,
"height": 104,
"content": "## Need Help ?\n* [How to Find Your BrowseAct API Key & Workflow ID](https://www.youtube.com/watch?v=pDjoZWEsZlE)\n* [How to Connect n8n to Browseract](https://www.youtube.com/watch?v=RoYMdJaRdcQ)\n* [How to Use & Customize BrowserAct Templates](https://www.youtube.com/watch?v=CPZHFUASncY)\n\n"
},
"typeVersion": 1
},
{
"id": "adf794f6-842f-43d0-bc6f-fcaada21bd28",
"name": "스티키 노트-사용 방법2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1952,
-384
],
"parameters": {
"color": 7,
"width": 2208,
"height": 112,
"content": "\n### ******** \n## Create BrowserAct Workflow -> Add BrowserAct Token to \"Run Node\" -> Change BrowserAct workflow_id in \"Run Node\" -> Connect Gemini & Change you **resume** inside the prompt in \"Agent Node\" \n## -> Config Telegram Token & Channel ID in \"Send Node\""
},
"typeVersion": 1
},
{
"id": "8b7e2e56-cad5-47a2-9723-e4395e733332",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1104,
-208
],
"parameters": {
"color": 5,
"width": 182,
"height": 80,
"content": "## \n# Run Node"
},
"typeVersion": 1
},
{
"id": "ea4b3404-9c9e-4823-be35-272afd16c061",
"name": "스티키 노트-스크래핑",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1248,
-112
],
"parameters": {
"color": 5,
"width": 480,
"height": 180,
"content": "## 1. Trigger the Job Scraper\n\nThis workflow uses an HTTP Request to start a job scraping task via the BrowserAct API. This allows you to collect up-to-date job market data.\n\n### Don't forget to add your BrowserAct Workflow ID. "
},
"typeVersion": 1
},
{
"id": "1a24b054-be51-4a4d-9739-19d1f63acdc2",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
-208
],
"parameters": {
"color": 5,
"width": 182,
"height": 80,
"content": "## \n# Get Node"
},
"typeVersion": 1
},
{
"id": "537e59bb-3129-4bf6-9eaa-67d0ba38d118",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-208
],
"parameters": {
"color": 4,
"width": 230,
"height": 80,
"content": "## \n# Agent Node"
},
"typeVersion": 1
},
{
"id": "b83141c8-1966-4bd0-aa14-871f44a9e42d",
"name": "Gemini 백업",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-16,
288
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.0-flash"
},
"credentials": {
"googlePalmApi": {
"id": "G8YK0DTLFGi5n0WD",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "da5033b2-0eca-4411-8b79-01742fff27e0",
"name": "Gemini",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-144,
288
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"id": "G8YK0DTLFGi5n0WD",
"name": "Google Gemini(PaLM) Api account"
}
},
"typeVersion": 1
},
{
"id": "39563737-09ba-44bf-9ca5-1f072d96daf1",
"name": "스티키 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-48,
752
],
"parameters": {
"color": 3,
"width": 214,
"height": 80,
"content": "## \n# Send Node"
},
"typeVersion": 1
},
{
"id": "0bc096fe-fa91-4326-873c-d594cbe63b2e",
"name": "스티키 노트-사용 방법3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2000,
656
],
"parameters": {
"width": 592,
"height": 80,
"content": "## Watch Workflow Guidance and Showcase\n* #### [Never Manually Search for a Job Again (AI Automation Tutorial)](https://youtu.be/mRJw8Jyrizg)"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "b4d6b1aa-9052-4a52-8b0b-2d868cf88a37",
"connections": {
"295fedba-bc49-451a-8b9c-b0dda75e5b51": {
"main": [
[
{
"node": "3d4b822a-435b-4894-8b39-ca10e4d0140d",
"type": "main",
"index": 0
}
],
[
{
"node": "70406173-a3d9-4db7-a370-c9bb997800c1",
"type": "main",
"index": 0
}
]
]
},
"da4a5db4-a2f2-40e7-ae6a-3f46e820fbf3": {
"main": [
[
{
"node": "5f67b9c3-845f-451b-a314-3ecfbe06d4ef",
"type": "main",
"index": 0
}
],
[
{
"node": "5550b6de-13b4-4cde-841f-b346cde3f8fe",
"type": "main",
"index": 0
}
]
]
},
"5550b6de-13b4-4cde-841f-b346cde3f8fe": {
"main": [
[
{
"node": "3d4b822a-435b-4894-8b39-ca10e4d0140d",
"type": "main",
"index": 0
}
]
]
},
"70406173-a3d9-4db7-a370-c9bb997800c1": {
"main": [
[
{
"node": "26c1fd7c-423c-4b36-984b-f4603ea4f1b9",
"type": "main",
"index": 0
}
]
]
},
"da5033b2-0eca-4411-8b79-01742fff27e0": {
"ai_languageModel": [
[
{
"node": "5f67b9c3-845f-451b-a314-3ecfbe06d4ef",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5f67b9c3-845f-451b-a314-3ecfbe06d4ef": {
"main": [
[
{
"node": "7fa00942-1d87-44a9-8618-b0d7a4546bb2",
"type": "main",
"index": 0
}
]
]
},
"26c1fd7c-423c-4b36-984b-f4603ea4f1b9": {
"main": [
[
{
"node": "295fedba-bc49-451a-8b9c-b0dda75e5b51",
"type": "main",
"index": 0
}
]
]
},
"b83141c8-1966-4bd0-aa14-871f44a9e42d": {
"ai_languageModel": [
[
{
"node": "5f67b9c3-845f-451b-a314-3ecfbe06d4ef",
"type": "ai_languageModel",
"index": 1
}
]
]
},
"3d4b822a-435b-4894-8b39-ca10e4d0140d": {
"main": [
[
{
"node": "da4a5db4-a2f2-40e7-ae6a-3f46e820fbf3",
"type": "main",
"index": 0
}
]
]
},
"7fa00942-1d87-44a9-8618-b0d7a4546bb2": {
"main": [
[
{
"node": "8fc50c6f-8501-49ce-b697-04fa9210ef2a",
"type": "main",
"index": 0
}
]
]
},
"4aa9cc49-cc7b-46b0-aa75-04c21be931ac": {
"ai_outputParser": [
[
{
"node": "5f67b9c3-845f-451b-a314-3ecfbe06d4ef",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"7ef43820-825a-4e94-a9f2-483376e79768": {
"main": [
[
{
"node": "26c1fd7c-423c-4b36-984b-f4603ea4f1b9",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
소셜 미디어 콘텐츠를 Telegram 채널에 자동 집계
사용Google Gemini AI将Twitter/X콘텐츠聚合로Telegram频道
If
Code
Wait
+
If
Code
Wait
30 노드Madame AI Team | Kai
콘텐츠 제작
키워드를 사용하여 자동으로 AI 뉴스 필터링하고 Telegram에 전송
Gemini AI와 BrowserAct를 사용하여 실시간 뉴스를筛选하고 Telegram 채널로 전송합니다.
If
Code
Wait
+
If
Code
Wait
27 노드Madame AI Team | Kai
콘텐츠 제작
제품 리뷰 감정 분석
Gemini AI를 사용하여 제품 리뷰 분석 및 개선 제안 생성
If
Wait
Telegram
+
If
Wait
Telegram
21 노드Madame AI
콘텐츠 제작
LinkedIn 및 X 바이럴 콘텐츠 자동 엔진
사용AI생성및게시자동생성LinkedIn및X의病毒콘텐츠
If
Set
Wait
+
If
Set
Wait
156 노드Diptamoy Barman
콘텐츠 제작
AI驱动의이메일分诊与자동回复系统,통합OpenAI에이전트및Gmail
AI驱动의이메일分诊与자동回复系统,통합OpenAI에이전트및Gmail
If
Set
Gmail
+
If
Set
Gmail
68 노드Abdullahi Ahmed
콘텐츠 제작
Veo-3, Perplexity, FFmpeg를 사용한 1080p 짧은 비디오 자동 생성 및 게시
Veo-3, Perplexity, FFmpeg로 1080p 숏폼 비디오 자동 생성 및 게시
If
Set
Wait
+
If
Set
Wait
21 노드Sulieman Said
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수30
카테고리2
노드 유형10
저자
Madame AI Team | Kai
@madame-aiI’m a PhD in Physics turned AI enthusiast, passionate about uncovering how AI is transforming content creation, business, and daily life.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유