---
title: "Search"
description: "Browse by topic



AI Strategy
AI Governance
AI in Practice
Future of Work
Europe"
url: "https://hoeijmakers.net/search/"
date: 2026-05-23
updated: 2026-05-25
author: "Rob Hoeijmakers"
site: "hoeijmakers.net"
language: "en"
tags: []
---

# Search

, , nav and footer.
     This block provides only the search UI.
═══════════════════════════════════════════════════════════ -->

.hn-search-wrap {
  max-width: 720px;
  width: 100%; 
  margin: 0 auto;
  padding: 2rem 0 5rem;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 16px;
  line-height: 1.5;
}

/* Hard reset — Ghost's global.css resets font-size broadly */
.hn-search-wrap *, .hn-search-wrap *::before, .hn-search-wrap *::after {
  box-sizing: border-box;
}
.hn-search-wrap .ais-Hits-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 16px !important;
}
.hn-search-wrap .ais-Hits-item {
  font-size: 16px !important;
  margin: 0 !important;
  padding: 24px 0 !important;
  width: 100% !important;
  border: none !important;
  box-shadow: none !important;
  border-top: 1px solid #e5e7eb !important;
}
.hn-search-wrap .ais-Hits-item:last-child {
  border-bottom: 1px solid #e5e7eb !important;
}

/* ── Search box ── */
.hn-search-wrap .ais-SearchBox {
  margin-bottom: 32px;
}
.hn-search-wrap .ais-SearchBox-form {
  display: flex;
  width: 100%;  
  border: 1.5px solid #1a1a1a;
  border-radius: 0;
  overflow: hidden;
}
.hn-search-wrap .ais-SearchBox-input {
  flex: 1;
  padding: 12px 16px;
  font-size: 16px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  border: none !important;
  outline: none;
  background: transparent;
  color: #1a1a1a;
  box-shadow: none !important;
}
.hn-search-wrap .ais-SearchBox-input::placeholder {
  color: #9ca3af;
}
.hn-search-wrap .ais-SearchBox-submit {
  background: #1a1a1a;
  border: none;
  padding: 0 18px;
  cursor: pointer;
  color: #fff !important;
  font-size: 13px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  transition: opacity 0.15s;
}
.hn-search-wrap .ais-SearchBox-submit:hover { opacity: 0.75; }
.hn-search-wrap .ais-SearchBox-submit svg { display: none; }
.hn-search-wrap .ais-SearchBox-submit::before { content: 'Search'; }
.hn-search-wrap .ais-SearchBox-reset { display: none !important; }

/* ── Stats ── */
.hn-search-wrap .ais-Stats {
  font-size: 12px !important;
  color: #9ca3af;
  margin-bottom: 24px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  min-height: 18px;
}

/* ── Hit elements — all px, all explicit ── */
.hn-hit-title {
  font-family: Georgia, 'Times New Roman', serif !important;
  font-size: 18px !important;
  font-weight: normal !important;
  letter-spacing: -0.01em;
  margin: 0 0 6px !important;
  line-height: 1.3 !important;
}
.hn-hit-title a {
  color: #1a1a1a !important;
  text-decoration: none !important;
}
.hn-hit-title a:hover { text-decoration: underline !important; }

.hn-hit-meta {
  font-size: 12px !important;
  color: #9ca3af !important;
  margin: 0 0 8px !important;
  letter-spacing: 0.01em;
  line-height: 1.4 !important;
}
.hn-hit-excerpt {
  font-size: 14px !important;
  color: #4b5563 !important;
  line-height: 1.6 !important;
  margin: 0 !important;
}
.hn-hit-tags {
  margin: 12px 0 0 !important;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.hn-hit-tag {
  font-size: 11px !important;
  background: #f3f4f6;
  color: #374151 !important;
  padding: 2px 8px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.6 !important;
}

/* ── Highlight & Snippet ── */
.hn-search-wrap .ais-Highlight-highlighted,
.hn-search-wrap .ais-Snippet-highlighted {
  background: #fef08a;
  font-style: normal;
}

/* ── Empty state ── */
.hn-empty {
  font-size: 14px !important;
  color: #9ca3af;
  padding: 48px 0;
  border-top: 1px solid #e5e7eb;
}

/* ── Intro (no query) ── */
.hn-intro {
  padding: 24px 0 48px;
  border-top: 1px solid #e5e7eb;
}
.hn-intro p {
  font-size: 14px !important;
  color: #9ca3af !important;
  margin: 0 0 20px !important;
}
.hn-browse-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hn-browse-link {
  font-size: 12px !important;
  background: #f3f4f6;
  color: #374151 !important;
  padding: 4px 11px;
  text-decoration: none !important;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-weight: 500;
  transition: background 0.15s;
  line-height: 1.6 !important;
}
.hn-browse-link:hover { background: #e5e7eb; }

/* ── Pagination ── */
.hn-search-wrap .ais-Pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
.hn-search-wrap .ais-Pagination-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  gap: 4px;
  align-items: center;
}
.hn-search-wrap .ais-Pagination-item a,
.hn-search-wrap .ais-Pagination-item span {
  display: block;
  padding: 5px 11px;
  font-size: 13px !important;
  color: #4b5563;
  text-decoration: none !important;
  border: 1px solid transparent;
  line-height: 1.4 !important;
}
.hn-search-wrap .ais-Pagination-item a:hover {
  border-color: #e5e7eb;
  color: #1a1a1a;
}
.hn-search-wrap .ais-Pagination-item--selected span {
  border-color: #1a1a1a;
  color: #1a1a1a;
  font-weight: 600;
}
.hn-search-wrap .ais-Pagination-item--disabled a,
.hn-search-wrap .ais-Pagination-item--disabled span {
  color: #e5e7eb;
  cursor: default;
}

@media (max-width: 600px) {
  .hn-search-wrap { padding: 24px 0 64px; }
  .hn-hit-title { font-size: 16px !important; }
}

  
  
  
  
    Browse by topic

    
      [AI Strategy](https://hoeijmakers.net/tag/ai-strategy/)
      [AI Governance](https://hoeijmakers.net/tag/ai-governance/)
      [AI in Practice](https://hoeijmakers.net/tag/ai-in-practice/)
      [Future of Work](https://hoeijmakers.net/tag/future-of-work/)
      [Europe](https://hoeijmakers.net/tag/europe/)
    
  
  

(function () {
  var APP_ID  = '9O8KST4LPG';
  var API_KEY = 'bfd79e9f58be487286c12ad3e02ac156';
  var INDEX   = 'hoeijmakers';
  var intro   = document.getElementById('hn-intro');
  var client  = algoliasearch(APP_ID, API_KEY);
  var currentQuery = '';

  var search = instantsearch({
    indexName: INDEX,
    searchClient: client,
    future: { preserveSharedStateOnUnmount: true },
    searchParameters: {
      attributesToSnippet: ['content:50'],
    },
    onStateChange: function (ref) {
      currentQuery = (ref.uiState[INDEX] && ref.uiState[INDEX].query) || '';
      intro.style.display = currentQuery.trim() ? 'none' : 'block';
      ref.setUiState(ref.uiState);
    },
  });

  // Item template — used for search results
  function itemTemplate(hit, ref) {
    var html = ref.html;
    var components = ref.components;
    var rawDate = hit.published_at || hit.publishedAt;
    var date = rawDate
      ? new Date(typeof rawDate === 'number' ? rawDate * 1000 : rawDate).toLocaleDateString('en-GB', {
          year: 'numeric', month: 'long', day: 'numeric',
        })
      : '';
    var tags = Array.isArray(hit.tags)
      ? hit.tags.slice(0, 3).map(function (t) {
          return html`${t}`;
        })
      : [];
    return html`
      
        [${components.Highlight({ hit: hit, attribute: 'title' })}](${hit.url})
      
      ${date ? html`${date}` : ''}
      ${components.Snippet({ hit: hit, attribute: 'content' })}

      ${tags.length ? html`${tags}` : ''}
    `;
  }

  search.addWidgets([
    instantsearch.widgets.searchBox({
      container: '#hn-searchbox',
      placeholder: 'What are you looking for?',
      autofocus: true,
    }),

    instantsearch.widgets.stats({
      container: '#hn-stats',
      templates: {
        text: function (data) {
          if (!data.query) return '';
          return data.nbHits.toLocaleString() +
            ' result' + (data.nbHits !== 1 ? 's' : '') +
            ' for \u201c' + data.query + '\u201d';
        },
      },
    }),

    instantsearch.widgets.hits({
      container: '#hn-hits',
      templates: {
        item: itemTemplate,
        empty: function (results, ref) {
          var html = ref.html;
          if (!results.query) return html``;
          return html`No results for **\u201c${results.query}\u201d**. Try a broader term.

`;
        },
      },
    }),

    instantsearch.widgets.pagination({
      container: '#hn-pagination',
      padding: 2,
    }),
  ]);

  search.start();

  // Show 5 most recent posts on load (no query)
  var params = new URLSearchParams(window.location.search);
  var initialQuery = params.get('q') || '';

  if (initialQuery) {
    search.setUiState({ [INDEX]: { query: initialQuery } });
    intro.style.display = 'none';
  } else {
    fetch('https://9O8KST4LPG-dsn.algolia.net/1/indexes/' + INDEX + '/query', {
      method: 'POST',
      headers: {
        'X-Algolia-Application-Id': APP_ID,
        'X-Algolia-API-Key': API_KEY,
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        query: '',
        hitsPerPage: 5,
        attributesToRetrieve: ['title', 'url', 'excerpt', 'published_at', 'tags'],
        attributesToHighlight: [],
      }),
    })
    .then(function(r){ return r.json(); })
    .then(function(data){
      if (!data.hits || !data.hits.length) return;
      var list = document.createElement('ul');
      list.className = 'ais-Hits-list';
      data.hits.forEach(function(hit){
        var rawDate = hit.published_at || hit.publishedAt;
        var date = rawDate
          ? new Date(typeof rawDate === 'number' ? rawDate * 1000 : rawDate).toLocaleDateString('en-GB', {
              year: 'numeric', month: 'long', day: 'numeric',
            })
          : '';
        var tags = Array.isArray(hit.tags)
          ? hit.tags.slice(0,3).map(function(t){
              return '' + t + '';
            }).join('')
          : '';
        var li = document.createElement('li');
        li.className = 'ais-Hits-item';
        li.innerHTML =
          '[' + hit.title + '](' + hit.url + ')' +
          (date ? '' + date + '' : '') +
          '' + (hit.excerpt || '') + '

' +
          (tags ? '' + tags + '' : '');
        list.appendChild(li);
      });
      var hitsEl = document.getElementById('hn-hits');
      if (!currentQuery) {
        var wrapper = document.createElement('div');
        wrapper.className = 'ais-Hits';
        wrapper.id = 'hn-recent';
        wrapper.appendChild(list);
        hitsEl.appendChild(wrapper);
      }
    })
    .catch(function(){});
    intro.style.display = 'block';
  }

  // Remove recent posts as soon as user starts typing
  search.on('render', function(){
    if (currentQuery) {
      var recent = document.getElementById('hn-recent');
      if (recent) recent.remove();
    }
  });
})();