ドイツのアパート検索ツールと自動申請(ノート付き)

上級

これはPersonal Productivity, Multimodal AI分野の自動化ワークフローで、22個のノードを含みます。主にSet, Cron, Function, EmailSend, GoogleDriveなどのノードを使用。 自動ドイツ語アパート検索と申請:Immobilienscout24とGoogleサービスを統合

前提条件
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "name": "Germany Apartment Finder & Auto-Apply (with Sticky Notes)",
  "tags": [
    "apartments",
    "automation",
    "germany",
    "immobilienscout24"
  ],
  "nodes": [
    {
      "id": "1",
      "name": "Cronトリガー",
      "type": "n8n-nodes-base.cron",
      "position": [
        250,
        300
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2",
      "name": "設定をセット",
      "type": "n8n-nodes-base.set",
      "position": [
        450,
        300
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "CITY",
              "value": "Berlin"
            },
            {
              "name": "MAX_RENT",
              "value": "1200"
            },
            {
              "name": "ROOMS",
              "value": "2"
            },
            {
              "name": "MY_EMAIL",
              "value": "your.email@example.com"
            },
            {
              "name": "MY_NAME",
              "value": "Max Mustermann"
            },
            {
              "name": "GDRIVE_SCHUFA_FILE_ID",
              "value": "your-schufa-file-id"
            },
            {
              "name": "GDRIVE_SALARY_FILE_ID",
              "value": "your-salary-file-id"
            },
            {
              "name": "GOOGLE_SHEET_ID",
              "value": "your-google-sheet-id"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3",
      "name": "GeoID検索",
      "type": "n8n-nodes-base.function",
      "position": [
        650,
        300
      ],
      "parameters": {
        "functionCode": "const geoidMap = { Berlin: 12770000 };\nconst city = $json[\"CITY\"] || \"Berlin\";\nreturn [{ json: { city, geoid: geoidMap[city] || geoidMap[\"Berlin\"] } }];"
      },
      "typeVersion": 1
    },
    {
      "id": "4",
      "name": "immobilienscout24から物件を取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        850,
        300
      ],
      "parameters": {
        "url": "=https://www.immobilienscout24.de/Suche/S-T/Wohnung-Miete/Berlin/umkreis- {{$json[\"geoid\"]}} ?numberofroomsfrom={{$json[\"ROOMS\"]}}&price=-{{ $json[\"MAX_RENT\"] }}&sorting=2",
        "options": {
          "headers": {
            "Accept": "application/json"
          }
        },
        "responseFormat": "json"
      },
      "typeVersion": 1
    },
    {
      "id": "5",
      "name": "結果をフィルタリング",
      "type": "n8n-nodes-base.function",
      "position": [
        1050,
        300
      ],
      "parameters": {
        "functionCode": "return items.filter(item => item.json.type === 'apartment' &&\n  parseFloat(item.json.price) <= parseFloat($json[\"MAX_RENT\"]) &&\n  parseInt(item.json.rooms) >= parseInt($json[\"ROOMS\"]));"
      },
      "typeVersion": 1
    },
    {
      "id": "6",
      "name": "アパートを1件ずつ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1250,
        300
      ],
      "parameters": {
        "batchSize": 1
      },
      "typeVersion": 1
    },
    {
      "id": "7",
      "name": "Schufaを取得(Google Drive)",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1450,
        100
      ],
      "parameters": {
        "fileId": "={{$json[\"GDRIVE_SCHUFA_FILE_ID\"]}}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "8",
      "name": "給与明細を取得(Google Drive)",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1450,
        500
      ],
      "parameters": {
        "fileId": "={{$json[\"GDRIVE_SALARY_FILE_ID\"]}}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "9",
      "name": "カバーレターを生成",
      "type": "n8n-nodes-base.function",
      "position": [
        1650,
        300
      ],
      "parameters": {
        "functionCode": "return [{ json: { coverLetter: `Sehr geehrte Damen und Herren,\\n\\n Ich interessiere mich sehr für die Wohnung mit Exposé-ID ${$json[\"exposeId\"]}  (${ $json[\"price\"] } EUR, ${ $json[\"rooms\"] } Zimmer).\\n\\n Im Anhang finden Sie meine Schufa-Auskunft und aktuelle Gehaltsabrechnungen.\\n\\n Vielen Dank für Ihre Zeit und ich freue mich auf Ihre Rückmeldung.\\n\\n Mit freundlichen Grüßen,\\n${$json[\"MY_NAME\"]}` } }];"
      },
      "typeVersion": 1
    },
    {
      "id": "10",
      "name": "応募メールを送信",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        1850,
        300
      ],
      "parameters": {
        "content": "={{$json[\"coverLetter\"]}}",
        "subject": "Wohnungsbewerbung – Interesse an Exposé-ID {{$json[\"exposeId\"]}}",
        "toEmail": "={{$json[\"contactEmail\"]}}",
        "fromEmail": "={{$json[\"MY_EMAIL\"]}}",
        "attachments": [
          {
            "binaryPropertyName": "schufa"
          },
          {
            "binaryPropertyName": "salary"
          }
        ]
      },
      "typeVersion": 1
    },
    {
      "id": "11",
      "name": "Googleシートに記録",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2050,
        300
      ],
      "parameters": {
        "range": "A:E",
        "values": [
          [
            "={{$json[\"title\"]}}",
            "={{$json[\"address\"]}}",
            "={{$json[\"price\"]}}",
            "={{new Date().toISOString()}}",
            "={{$json[\"exposeId\"]}}"
          ]
        ],
        "sheetId": "={{$json[\"GOOGLE_SHEET_ID\"]}}",
        "authentication": "oAuth2",
        "valueInputMode": "USER_ENTERED"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky1",
      "name": "付箋: Cronトリガー",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        250,
        230
      ],
      "parameters": {
        "content": "Triggers the workflow every day at 8 AM Berlin time."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky2",
      "name": "付箋: 設定をセット",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        450,
        230
      ],
      "parameters": {
        "content": "Set your configuration: city, max rent, rooms, email, file IDs etc."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky3",
      "name": "付箋: GeoID検索",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        650,
        230
      ],
      "parameters": {
        "content": "Convert city name to GeoID needed by ImmobilienScout24 API."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky4",
      "name": "付箋: immobilienscout24から物件を取得",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        850,
        230
      ],
      "parameters": {
        "content": "Fetch apartment listings from ImmobilienScout24 with filters applied."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky5",
      "name": "付箋: 結果をフィルタリング",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1050,
        230
      ],
      "parameters": {
        "content": "Filter listings to only include apartments matching rent and rooms criteria."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky6",
      "name": "付箋: アパートを1件ずつ処理",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1250,
        230
      ],
      "parameters": {
        "content": "Process apartments one by one to send applications."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky7",
      "name": "付箋: Schufaを取得",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1450,
        30
      ],
      "parameters": {
        "content": "Fetch Schufa report from Google Drive to attach in application."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky8",
      "name": "付箋: 給与明細を取得",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1450,
        430
      ],
      "parameters": {
        "content": "Fetch latest salary slips from Google Drive for application."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky9",
      "name": "付箋: カバーレターを生成",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1650,
        230
      ],
      "parameters": {
        "content": "Generate a personalized cover letter with expose ID and applicant name."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky10",
      "name": "付箋: 応募メールを送信",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1850,
        230
      ],
      "parameters": {
        "content": "Send the apartment application email with attachments."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky11",
      "name": "付箋: Googleシートに記録",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2050,
        230
      ],
      "parameters": {
        "content": "Log applied apartments in Google Sheets for tracking."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "timezone": "Europe/Berlin",
    "executionOrder": "regular",
    "saveDataOnSuccess": "allExecutions"
  },
  "connections": {
    "1": {
      "main": [
        [
          {
            "node": "2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2": {
      "main": [
        [
          {
            "node": "3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3": {
      "main": [
        [
          {
            "node": "Fetch Listings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5": {
      "main": [
        [
          {
            "node": "6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6": {
      "main": [
        [
          {
            "node": "7",
            "type": "main",
            "index": 0
          },
          {
            "node": "8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7": {
      "main": [
        [
          {
            "node": "9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8": {
      "main": [
        [
          {
            "node": "9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9": {
      "main": [
        [
          {
            "node": "10",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10": {
      "main": [
        [
          {
            "node": "11",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Listings": {
      "main": [
        [
          {
            "node": "5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - 個人の生産性, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数22
カテゴリー2
ノードタイプ9
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Abbas Ali

Abbas Ali

@abbas12142

Automation Engineer passionate about building smart, scalable workflows with n8n. I specialize in API integrations, webhook handling, and streamlining business tasks using low-code tools. From AI-powered bots to real-time data pipelines, I love solving problems with automation. Let’s turn manual processes into efficient systems!

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34