{"id":303,"date":"2025-08-26T11:13:27","date_gmt":"2025-08-26T18:13:27","guid":{"rendered":"https:\/\/simpkins.social\/cliff\/?p=303"},"modified":"2025-10-24T14:09:12","modified_gmt":"2025-10-24T21:09:12","slug":"adding-google-search-to-my-n8n-driven-job-search-agent","status":"publish","type":"post","link":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/","title":{"rendered":"Adding Google Search to my n8n-driven Job Search Agent"},"content":{"rendered":"\n<p>This week, I improved my <a href=\"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/21\/building-an-ai-job-search-agent-with-n8n\/\">AI Job Search Agent (implemented in n8n)<\/a> to also include a Google Search for each of the job boards I&#8217;m querying &#8211; which allows me to sort by posting date and limit the time period.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"492\" height=\"136\" src=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?resize=492%2C136&#038;ssl=1\" alt=\"Workflow screenshot of using a Google Search API call\" class=\"wp-image-304\" srcset=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?w=492&amp;ssl=1 492w, https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?resize=300%2C83&amp;ssl=1 300w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><\/figure>\n<\/div>\n\n\n<p>To do this, I called the Google Custom Search API. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Calling the Google Search API<\/h2>\n\n\n\n<p>You can set up a free account that allows for 100 daily searches.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the <a href=\"https:\/\/console.cloud.google.com\/apis\/dashboard\">Google Cloud Console<\/a>, add the <a href=\"https:\/\/console.cloud.google.com\/apis\/library\/customsearch.googleapis.com\">Google Custom Search API<\/a> and <a href=\"https:\/\/console.cloud.google.com\/apis\/credentials\">create an API Key<\/a> for it (your &#8216;key&#8217;)<\/li>\n\n\n\n<li>Create an a &#8216;custom search engine&#8217; (CSE) on <a href=\"https:\/\/programmablesearchengine.google.com\/\">Google&#8217;s Programmable Search Engine<\/a> &#8211; which gives you a Search Engine ID number (your &#8216;cx&#8217;)<\/li>\n\n\n\n<li>Build your Google Custom Search Engine API call using the <a href=\"https:\/\/developers.google.com\/custom-search\/v1\/reference\/rest\/v1\/cse\/list\">Google&#8217;s cse.list REST API<\/a>\n<ul class=\"wp-block-list\">\n<li><code>key<\/code> &#8211; use your API key<\/li>\n\n\n\n<li><code>cx<\/code> &#8211; use your Search Engine ID number<\/li>\n\n\n\n<li><code>siteSearch<\/code> &#8211; the job board you want to limit your results to (e.g., <code>greenhouse.io<\/code>)<\/li>\n\n\n\n<li><code>siteSearchFilter<\/code> &#8211; use <code>i<\/code> to mark that you want to include the site listed in your <code>siteSearch<\/code> value<\/li>\n\n\n\n<li><code>sort<\/code> &#8211; I set the value of <code>date<\/code> to return the newest postings first; mitigating the issue of high-ranked prior results crowding out new results<\/li>\n\n\n\n<li><code>dateRestrict<\/code> &#8211; can be used to restrict the URLs returned based on date. I initially used this, but found that I lost a lot of valid search results and so removed it from my query filter.<\/li>\n\n\n\n<li><code>q<\/code> -and add your query<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Additional information can be found on Google&#8217;s <a href=\"https:\/\/developers.google.com\/custom-search\/v1\/introduction\">Introduction to the Custom Search JSON API page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Adding the Google Search Call to n8n<\/h2>\n\n\n\n<p>With the API call crafted and tested in the API Explorer &#8211; let&#8217;s add it to our n8n workflow.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Add an <code>HTTP Request<\/code> node to the workflow<\/li>\n\n\n\n<li>Rename and configure the properties of the node\n<ul class=\"wp-block-list\">\n<li>Set <code>Method<\/code> to <code>GET<\/code><\/li>\n\n\n\n<li>Set <code>URL<\/code> to <code>https:\/\/www.googleapis.com\/customsearch\/v1<\/code><\/li>\n\n\n\n<li>Toggle Send <code>Query Parameters<\/code> to true\/on<\/li>\n\n\n\n<li>Add your Query Parameters (as discussed\/tested above)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Wire your node input and output flows and test it out.<\/li>\n<\/ol>\n\n\n\n<p>Note that I also added a <code>Split Out<\/code> node following each Google API call. But that&#8217;s it &#8211; it worked out pretty beautifully for me. <\/p>\n\n\n\n<p>In the near future, I&#8217;m looking at doing the following tasks with the Google Search API call: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><s>Parse multiple pages<\/s><\/strong>. I implemented a do\/while loop to retrieve all of the search results (rather than the first 10). For more information on this topic, see <a href=\"https:\/\/simpkins.social\/cliff\/blog\/2025\/10\/24\/tip-retrieving-all-google-search-results-in-n8n\/\">my tip on retrieving all google search results in n8n<\/a>. <\/li>\n\n\n\n<li><strong>Language filter<\/strong>. I&#8217;m occasionally seeing results for non-English roles, which I don&#8217;t need. However, the results are few and far between. I may play with the <code>lr<\/code> parameter in the future, if this becomes an issue.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Note &#8211; Mixing Google and Brave API Calls in a Single Workflow<\/h2>\n\n\n\n<p>One flag to call out is that the Google and Brave use different JSON schemas, which complicated my workflow at first. This created a bunch of spaghetti flows that annoyed me, until I added logic to check the JSON schema values. This is how I dealt with that:<\/p>\n\n\n\n<p>First, I merged all of the Search Results together so that we can use a single loop to process all of the search results. I know that it looks ugly, but I&#8217;ll clean it up later. \ud83d\ude00<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"655\" height=\"403\" src=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-10.png?resize=655%2C403&#038;ssl=1\" alt=\"Workflow screenshot - merging Google API results and Brave API results\" class=\"wp-image-305\" style=\"width:377px;height:auto\" srcset=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-10.png?w=655&amp;ssl=1 655w, https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-10.png?resize=300%2C185&amp;ssl=1 300w\" sizes=\"auto, (max-width: 655px) 100vw, 655px\" \/><\/figure>\n<\/div>\n\n\n<p>Second, I feed the results into a loop that calls a sub-workflow to process each result. This workflow contains the AI analysis and Airtable checks that I detailed in last week&#8217;s blog post.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"905\" height=\"378\" src=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-11.png?resize=905%2C378&#038;ssl=1\" alt=\"Workflow screenshot - Looping over mixed JSON results\" class=\"wp-image-306\" style=\"width:526px;height:auto\" srcset=\"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-11.png?w=905&amp;ssl=1 905w, https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-11.png?resize=300%2C125&amp;ssl=1 300w, https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-11.png?resize=768%2C321&amp;ssl=1 768w\" sizes=\"auto, (max-width: 905px) 100vw, 905px\" \/><\/figure>\n<\/div>\n\n\n<p>And having the call out to a sub-workflow has been great for abstracting the JSON differences out. And this workflow call is where I handle the JSON schema differences. I do this using the <code>.hasfield('value')<\/code> method on the JSON item. The call looks like the following:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><code>{{ $input.item.json.hasField('link') ? $json.link : $input.item.json.hasField('url') ? $json.url : \"unknown\" }}<\/code><\/p>\n\n\n\n<p>The call itself uses an inline if statement, checking for the presence of the JSON field, and then using it if it is present. In the above, I check for the &#8216;link&#8217; value (present in the Google API JSON) and then check for &#8216;url&#8217; value (used in the Brave API JSON) if &#8216;link&#8217; isn&#8217;t present. If neither are present, I pass &#8216;unknown.&#8217;<\/p>\n\n\n\n<p>Third, I handle the results of the sub-workflow for reporting purposes and send out my status email with the various results.<\/p>\n\n\n\n<p>For additional information on the larger workflow, check out <a href=\"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/21\/building-an-ai-job-search-agent-with-n8n\/\">the parent post on building an AI Job Search Agent with n8n<\/a>.<\/p>\n\n\n\n<p>I hope you found this useful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week, I improved my AI Job Search Agent (implemented in n8n) to also include a Google Search for each of the job boards I&#8217;m querying &#8211; which allows me&hellip;<\/p>\n","protected":false},"author":1,"featured_media":304,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12,29],"tags":[25],"class_list":["post-303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-funemployment","category-n8n","tag-tips-tricks"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins<\/title>\n<meta name=\"description\" content=\"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins\" \/>\n<meta property=\"og:description\" content=\"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/\" \/>\n<meta property=\"og:site_name\" content=\"Cliff Simpkins\" \/>\n<meta property=\"article:published_time\" content=\"2025-08-26T18:13:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-24T21:09:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png\" \/>\n\t<meta property=\"og:image:width\" content=\"492\" \/>\n\t<meta property=\"og:image:height\" content=\"136\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"cliff.simpkins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"cliff.simpkins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/\"},\"author\":{\"name\":\"cliff.simpkins\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/#\\\/schema\\\/person\\\/bba546ac4d77da1fb51bc4030238e864\"},\"headline\":\"Adding Google Search to my n8n-driven Job Search Agent\",\"datePublished\":\"2025-08-26T18:13:27+00:00\",\"dateModified\":\"2025-10-24T21:09:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/\"},\"wordCount\":734,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/simpkins.social\\\/cliff\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/image-9.png?fit=492%2C136&ssl=1\",\"keywords\":[\"Tips &amp; Tricks\"],\"articleSection\":[\"Funemployment\",\"N8n\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/\",\"url\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/\",\"name\":\"Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/simpkins.social\\\/cliff\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/image-9.png?fit=492%2C136&ssl=1\",\"datePublished\":\"2025-08-26T18:13:27+00:00\",\"dateModified\":\"2025-10-24T21:09:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/#\\\/schema\\\/person\\\/bba546ac4d77da1fb51bc4030238e864\"},\"description\":\"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/simpkins.social\\\/cliff\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/image-9.png?fit=492%2C136&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/simpkins.social\\\/cliff\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/image-9.png?fit=492%2C136&ssl=1\",\"width\":492,\"height\":136},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/2025\\\/08\\\/26\\\/adding-google-search-to-my-n8n-driven-job-search-agent\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adding Google Search to my n8n-driven Job Search Agent\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/#website\",\"url\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/\",\"name\":\"Cliff Simpkins\",\"description\":\"Personal site + blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/#\\\/schema\\\/person\\\/bba546ac4d77da1fb51bc4030238e864\",\"name\":\"cliff.simpkins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g\",\"caption\":\"cliff.simpkins\"},\"url\":\"https:\\\/\\\/simpkins.social\\\/cliff\\\/blog\\\/author\\\/cliff-simpkins\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins","description":"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/","og_locale":"en_US","og_type":"article","og_title":"Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins","og_description":"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.","og_url":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/","og_site_name":"Cliff Simpkins","article_published_time":"2025-08-26T18:13:27+00:00","article_modified_time":"2025-10-24T21:09:12+00:00","og_image":[{"width":492,"height":136,"url":"https:\/\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png","type":"image\/png"}],"author":"cliff.simpkins","twitter_card":"summary_large_image","twitter_misc":{"Written by":"cliff.simpkins","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#article","isPartOf":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/"},"author":{"name":"cliff.simpkins","@id":"https:\/\/simpkins.social\/cliff\/#\/schema\/person\/bba546ac4d77da1fb51bc4030238e864"},"headline":"Adding Google Search to my n8n-driven Job Search Agent","datePublished":"2025-08-26T18:13:27+00:00","dateModified":"2025-10-24T21:09:12+00:00","mainEntityOfPage":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/"},"wordCount":734,"commentCount":1,"image":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?fit=492%2C136&ssl=1","keywords":["Tips &amp; Tricks"],"articleSection":["Funemployment","N8n"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/","url":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/","name":"Adding Google Search to my n8n-driven Job Search Agent - Cliff Simpkins","isPartOf":{"@id":"https:\/\/simpkins.social\/cliff\/#website"},"primaryImageOfPage":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#primaryimage"},"image":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?fit=492%2C136&ssl=1","datePublished":"2025-08-26T18:13:27+00:00","dateModified":"2025-10-24T21:09:12+00:00","author":{"@id":"https:\/\/simpkins.social\/cliff\/#\/schema\/person\/bba546ac4d77da1fb51bc4030238e864"},"description":"How to call the Google Custom Search API in your n8n workflow - getting started and handling a merged list of Google and Brave API JSONs.","breadcrumb":{"@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#primaryimage","url":"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?fit=492%2C136&ssl=1","contentUrl":"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?fit=492%2C136&ssl=1","width":492,"height":136},{"@type":"BreadcrumbList","@id":"https:\/\/simpkins.social\/cliff\/blog\/2025\/08\/26\/adding-google-search-to-my-n8n-driven-job-search-agent\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/simpkins.social\/cliff\/"},{"@type":"ListItem","position":2,"name":"Adding Google Search to my n8n-driven Job Search Agent"}]},{"@type":"WebSite","@id":"https:\/\/simpkins.social\/cliff\/#website","url":"https:\/\/simpkins.social\/cliff\/","name":"Cliff Simpkins","description":"Personal site + blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/simpkins.social\/cliff\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/simpkins.social\/cliff\/#\/schema\/person\/bba546ac4d77da1fb51bc4030238e864","name":"cliff.simpkins","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/07b113647e819a448cfc8545b476db50a641b9d43808a2c399af84e724d078d2?s=96&d=mm&r=g","caption":"cliff.simpkins"},"url":"https:\/\/simpkins.social\/cliff\/blog\/author\/cliff-simpkins\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/simpkins.social\/cliff\/wp-content\/uploads\/2025\/08\/image-9.png?fit=492%2C136&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/posts\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":3,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/posts\/303\/revisions"}],"predecessor-version":[{"id":495,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/posts\/303\/revisions\/495"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/media\/304"}],"wp:attachment":[{"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/media?parent=303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/categories?post=303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/simpkins.social\/cliff\/wp-json\/wp\/v2\/tags?post=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}