<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>Hacks/Hackers | Technology + Journalism</title>
        <link rel="stylesheet" href="https://www.hackshackers.com/assets/built/screen.css?v=8a300acd9b">
    
    
    <style type="text/css">@font-face {font-family:Chakra Petch;font-style:normal;font-weight:300;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin/300/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:300;src:url(/cf-fonts/s/chakra-petch/5.0.18/vietnamese/300/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:300;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin-ext/300/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:300;src:url(/cf-fonts/s/chakra-petch/5.0.18/thai/300/normal.woff2);unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:500;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin-ext/500/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:500;src:url(/cf-fonts/s/chakra-petch/5.0.18/vietnamese/500/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:500;src:url(/cf-fonts/s/chakra-petch/5.0.18/thai/500/normal.woff2);unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:500;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin/500/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:700;src:url(/cf-fonts/s/chakra-petch/5.0.18/thai/700/normal.woff2);unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:700;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin-ext/700/normal.woff2);unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:700;src:url(/cf-fonts/s/chakra-petch/5.0.18/vietnamese/700/normal.woff2);unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-display:swap;}@font-face {font-family:Chakra Petch;font-style:normal;font-weight:700;src:url(/cf-fonts/s/chakra-petch/5.0.18/latin/700/normal.woff2);unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;font-display:swap;}</style>
    <meta name="description" content="Where journalists and technologists build together to strengthen public information, through events, hands-on AI programs and open-source tools">
    <link rel="icon" href="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w256h256/2024/05/hackshackers_logomark.png" type="image/png">
    <link rel="canonical" href="https://www.hackshackers.com/">
    <meta name="referrer" content="no-referrer-when-downgrade">
    <link rel="next" href="https://www.hackshackers.com/page/2/">
    
    <meta property="og:site_name" content="Hacks/Hackers">
    <meta property="og:type" content="website">
    <meta property="og:title" content="Hacks/Hackers">
    <meta property="og:description" content="Advancing media innovation to foster public trust">
    <meta property="og:url" content="https://www.hackshackers.com/">
    <meta property="og:image" content="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/2024/09/hackshackers_logomark.jpg">
    <meta property="article:publisher" content="https://www.facebook.com/hackshackers">
    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:title" content="Hacks/Hackers">
    <meta name="twitter:description" content="Where journalists and technologists build together to strengthen public information, through events, hands-on AI programs and open-source tools">
    <meta name="twitter:url" content="https://www.hackshackers.com/">
    <meta name="twitter:image" content="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2024/08/IMG_1580.jpg">
    <meta property="og:image:width" content="240">
    <meta property="og:image:height" content="225">
    
    <script type="application/ld+json">
{
    "@context": "https://schema.org",
    "@type": "WebSite",
    "publisher": {
        "@type": "Organization",
        "name": "Hacks/Hackers",
        "url": "https://www.hackshackers.com/",
        "logo": {
            "@type": "ImageObject",
            "url": "https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/2024/05/hackshackers_logotype-horizontal.png"
        }
    },
    "url": "https://www.hackshackers.com/",
    "name": "Hacks/Hackers",
    "image": {
        "@type": "ImageObject",
        "url": "https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2024/08/IMG_1580.jpg",
        "width": 1200,
        "height": 900
    },
    "mainEntityOfPage": "https://www.hackshackers.com/",
    "description": "Where journalists and technologists build together to strengthen public information, through events, hands-on AI programs and open-source tools"
}
    </script>

    <meta name="generator" content="Ghost 6.42">
    <link rel="alternate" type="application/rss+xml" title="Hacks/Hackers" href="https://www.hackshackers.com/rss/">
    <script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.68/umd/portal.min.js" data-i18n="true" data-ghost="https://www.hackshackers.com/" data-key="3d4f533c5b64ef61c44067313d" data-api="https://hacks-hackers.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content,
.gh-post-upgrade-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    text-align: center;
    width: 100%;
    color: #ffffff;
    font-size: 16px;
}

.gh-post-upgrade-cta-content {
    border-radius: 8px;
    padding: 40px 4vw;
}

.gh-post-upgrade-cta h2 {
    color: #ffffff;
    font-size: 28px;
    letter-spacing: -0.2px;
    margin: 0;
    padding: 0;
}

.gh-post-upgrade-cta p {
    margin: 20px 0 0;
    padding: 0;
}

.gh-post-upgrade-cta small {
    font-size: 16px;
    letter-spacing: -0.2px;
}

.gh-post-upgrade-cta a {
    color: #ffffff;
    cursor: pointer;
    font-weight: 500;
    box-shadow: none;
    text-decoration: underline;
}

.gh-post-upgrade-cta a:hover {
    color: #ffffff;
    opacity: 0.8;
    box-shadow: none;
    text-decoration: underline;
}

.gh-post-upgrade-cta a.gh-btn {
    display: block;
    background: #ffffff;
    text-decoration: none;
    margin: 28px 0 0;
    padding: 8px 18px;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
}

.gh-post-upgrade-cta a.gh-btn:hover {
    opacity: 0.92;
}</style><script async src="https://js.stripe.com/v3/"></script>
    <script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="3d4f533c5b64ef61c44067313d" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://hacks-hackers.ghost.io/" data-locale="en" crossorigin="anonymous"></script>
    
    <link href="https://www.hackshackers.com/webmentions/receive/" rel="webmention">
    <script defer src="/public/cards.min.js?v=8a300acd9b"></script>
    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=8a300acd9b">
    <script defer src="/public/member-attribution.min.js?v=8a300acd9b"></script>
    <script defer src="/public/ghost-stats.min.js?v=8a300acd9b" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://www.hackshackers.com/.ghost/analytics/api/v1/page_hit"  tb_site_uuid="a4e737ce-0487-4330-bd5a-4bb2cffab98a" tb_post_uuid="undefined" tb_post_type="null" tb_member_uuid="undefined" tb_member_status="undefined"></script><style>:root {--ghost-accent-color: #000000;}</style>
    <link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Fraunces:ital,opsz,wght@0,9..144,100..900;1,9..144,100..900&display=swap" rel="stylesheet">

<style>
/* Blue callout = editorial preface (italic intro note) */
.post-template .gh-content > .kg-callout-card-blue {
  background: var(--color-lighter-gray, #f6f6f6);
  border: none;
  border-left: 3px solid var(--color-mid-gray, #ccc);
  border-radius: 0;
  padding: 1rem 1.4rem;
  margin: 0 0 2.4rem 0;
}
.post-template .gh-content > .kg-callout-card-blue .kg-callout-emoji {
  display: none;
}
.post-template .gh-content > .kg-callout-card-blue .kg-callout-text {
  font-size: 1.7rem;
  color: var(--color-primary-text, #333);
  line-height: 1.6;
}

/* Paper card for AI Papers Explained metadata — uses <dl>/<dt>/<dd> + CSS Grid */
.post-template .gh-content > .paper-card,
.post-template .gh-content > .kg-card.paper-card,
.post-template .gh-content .kg-card.kg-html-card .paper-card {
  border-top: 1px solid var(--color-light-gray, #e6e6e6);
  border-bottom: 1px solid var(--color-light-gray, #e6e6e6);
  padding: 1.2rem 0;
  margin: 0 0 2.4rem 0;
  font-family: var(--font-sans);
  font-size: 1.5rem;
  line-height: 1.8;
  color: var(--color-primary-text, #333);
  display: grid;
  grid-template-columns: 8rem 1fr;
  column-gap: 0.6rem;
  row-gap: 0;
}
.paper-card dt {
  font-family: 'Chakra Petch', sans-serif;
  font-weight: 600;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--color-darker-gray, #15171a);
  text-align: right;
  align-self: baseline;
  white-space: nowrap;
}
.paper-card dd {
  margin: 0;
  align-self: baseline;
}

/* Drop cap on first paragraph of post body — excludes newsletters and opt-out tag */
.post-template:not(.tag-newsletter):not(.tag-no-dropcap):not(.tag-hash-no-dropcap) .gh-content > p:first-of-type::first-letter {
  font-family: 'Chakra Petch', sans-serif;
  font-weight: 700;
  font-size: 4.8em;
  line-height: 0.9;
  float: left;
  margin: 0.08em 0.14em 0 -0.05em;
  color: var(--color-darker-gray, #15171a);
}
@media (max-width: 600px) {
  .post-template:not(.tag-newsletter):not(.tag-no-dropcap):not(.tag-hash-no-dropcap) .gh-content > p:first-of-type::first-letter {
    font-size: 3.6em;
  }
}

/* Wrap code blocks to body text width instead of horizontal scroll */
.gh-content pre {
  white-space: pre-wrap;
  overflow-wrap: break-word;
  word-wrap: break-word;
  overflow-x: auto;
}
</style>
</head>

<body class="home-template is-head-stacked has-serif-body">

<div id="loadAnimation">
    <img id="loadImage1" src="https://hacks-hackers.ghost.io/content/images/2024/08/Hacks.png" >
    <img id="loadImage2" src="https://hacks-hackers.ghost.io/content/images/2024/08/Slash.png" >
    <img id="loadImage3" src="https://hacks-hackers.ghost.io/content/images/2024/08/Hackers.png" >
</div>

<div class="gh-site">
    <header id="gh-head" class="gh-head gh-outer">
        <div class="gh-head-inner gh-inner">
            <div class="gh-head-brand">
                <div class="gh-head-brand-wrapper">
                    <a class="gh-head-logo" href="https://www.hackshackers.com" aria-label="Hacks/Hackers — home">
                            <img src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/2024/05/hackshackers_logotype-horizontal.png" alt="Hacks/Hackers">
                    </a>
                </div>
                <button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>
                <button class="gh-burger"></button>
            </div>

            <nav class="gh-head-menu">
                <ul class="nav">
    <li class="nav-about"><a href="https://www.hackshackers.com/about/">About</a></li>
    <li class="nav-events"><a href="https://www.hackshackers.com/Events/">Events</a></li>
    <li class="nav-programs"><a href="https://www.hackshackers.com/Programs/">Programs</a></li>
    <li class="nav-fiscal-sponsorship"><a href="https://www.hackshackers.com/fiscal-sponsorship/">Fiscal sponsorship</a></li>
    <li class="nav-support-us"><a href="https://www.hackshackers.com/donate/">Support us</a></li>
    <li class="nav-latest-updates"><a href="https://www.hackshackers.com/posts/">Latest updates</a></li>
    <li class="nav-contact"><a href="https://www.hackshackers.com/contact/">Contact</a></li>
</ul>

            </nav>

            <div class="gh-head-actions">
                    <button class="gh-search gh-icon-btn" aria-label="Search this site" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>
                    <div class="gh-head-members">
                                <a class="gh-head-link" href="#/portal/signin" data-portal="signin">Sign in</a>
                                <a class="gh-head-btn gh-btn gh-primary-btn" href="#/portal/signup" data-portal="signup">Sign Up</a>
                    </div>
            </div>
        </div>
    </header>

    
<main class="gh-main gh-outer">
    <div class="gh-inner">
        <section class="hero">
            <h1 class="hero-heading">
                Advancing media innovation & fostering public trust 
            </h1>
            <svg id="hero-dash" width="310" height="515" viewBox="0 0 310 515" fill="none" xmlns="http://www.w3.org/2000/svg">
                <g style="mix-blend-mode:exclusion">
                <path d="M309.123 0.213379H206.071L0.87793 514.604H103.886L309.123 0.213379Z" fill="white"/>
                </g>
            </svg>
        </section>

        <section class="about-us">
            <div class="text-section">
                <h6>
                    ABOUT US
                </h6>
                <h4>
                    Since 2009, Hacks/Hackers has united diverse communities to advance media innovation and foster public trust in the information ecosystem.
                </h4>
            </div>
            <div class="p-hero-buttons">
                <button data-portal="signup">Sign Up</button>
                <a href="/about/">Learn more &rarr;</a>
            </div>
        </section>

        <section class="image">
            <img src="https://hacks-hackers.ghost.io/content/images/2026/05/hh-hero-new.jpg" alt="Attendees gather in silhouette before a screen showing the Hacks/Hackers AI × Journalism Summit 2026 title slide.">
        </section>

        <section class="features-container">
            <h4>We do this by:</h4>
            <div class="features-row">
                <div class="feature">
                    <span class="feature-num" aria-hidden="true">1/</span>
                    <p>
                        <span class="bold">Convening hackathons, ideathons, and workshops </span>
                        that bring together talent from diverse backgrounds, including journalism, technology and academia to ideate and innovate.
                    </p>
                </div>
                    <div class="feature">
                    <span class="feature-num" aria-hidden="true">2/</span>
                    <p>
                        <span class="bold">Incubating innovation in media,</span>
                        and by providing resources, mentorship and networking opportunities.
                    </p>
                </div>
                    <div class="feature">
                    <span class="feature-num" aria-hidden="true">3/</span>
                    <p>
                        <span class="bold">Scaling the adoption of effective media </span>
                        solutions through comprehensive implementation guides and strategic consulting.
                    </p>
                </div>

            </div>

        </section>

        <section class="gh-topic gh-topic-grid">
            <h2 class="gh-topic-name">
                    <a href="https://www.hackshackers.com/posts/">Latest</a>
            </h2>

            <div class="gh-topic-content">
                    <article class="gh-card post tag-ai tag-mcp tag-agents large">
    <a class="gh-card-link" href="/how-we-made-our-site-more-readable-for-ai-agents-and-how-you-can-too/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/hi-ai-feature.png 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/hi-ai-feature.png 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/hi-ai-feature.png 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/hi-ai-feature.png 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/hi-ai-feature.png 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/hi-ai-feature.png"
                    alt="&quot;Hi, AI.&quot; in large Chakra Petch type, with the period in Hacks/Hackers green"
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">How we made our site more readable for AI agents and how you can too</h3>
            </header>

                        <div class="gh-card-excerpt">Features for humans using AI agents and the AI agents themselves, including &quot;ask&quot; AI buttons and an MCP server</div>

            <footer class="gh-card-footer">
                <span class="gh-card-author">Burt Herman</span>
                <time class="gh-card-date" datetime="2026-05-27">May 27, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-ai-papers-explained">
    <a class="gh-card-link" href="/ai-chatbots-news-intermediaries-stanford-study/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/aichatbotnewsimage.png 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/aichatbotnewsimage.png 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/aichatbotnewsimage.png 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/aichatbotnewsimage.png 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/aichatbotnewsimage.png 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/aichatbotnewsimage.png"
                    alt="AI chatbots right about daily news nearly all the time, but fail badly when users slip wrong details into chats"
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">AI chatbots right about daily news nearly all the time, but fail badly when users slip wrong details into chats</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Hacks/Hackers AI</span>
                <time class="gh-card-date" datetime="2026-05-22">May 22, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-newsletter">
    <a class="gh-card-link" href="/ai-x-journalism-summit-takeaways-the-room-wasnt-sad-it-was-ready/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/BD8B00B3-2035-42F2-BCDE-19F76D5B1395_1_105_c.jpeg"
                    alt="AI x Journalism Summit takeaways: The room wasn&#x27;t sad. It was ready"
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">AI x Journalism Summit takeaways: The room wasn&#x27;t sad. It was ready</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Burt Herman</span>
                <time class="gh-card-date" datetime="2026-05-20">May 20, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-ai-x-journalism-summit tag-hash-no-dropcap">
    <a class="gh-card-link" href="/the-room-wasnt-sad-it-was-ready/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/5W9A0940.jpg 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/5W9A0940.jpg 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/5W9A0940.jpg 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/5W9A0940.jpg 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/5W9A0940.jpg 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/5W9A0940.jpg"
                    alt="The Room Wasn&#x27;t Sad. It Was Ready."
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">The Room Wasn&#x27;t Sad. It Was Ready.</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Paul Cheung</span>
                <time class="gh-card-date" datetime="2026-05-19">May 19, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-ai-x-journalism-summit tag-hash-no-dropcap featured">
    <a class="gh-card-link" href="/computers-finally-work-the-way-i-dreamed-they-would-but-theyre-keeping-me-up-at-night/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/Sleep.png 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/Sleep.png 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/Sleep.png 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/Sleep.png 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/Sleep.png 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/Sleep.png"
                    alt="Computers finally work the way I dreamed they would. But they&#x27;re keeping me up at night."
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">Computers finally work the way I dreamed they would. But they&#x27;re keeping me up at night.</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Burt Herman</span>
                <time class="gh-card-date" datetime="2026-05-19">May 19, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-newsroom-ai-lab">
    <a class="gh-card-link" href="/every-organization-has-a-process-yours-just-isnt-written-down/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/2026/05/cohort2-feature.png 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/cohort2-feature.png 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/2026/05/cohort2-feature.png 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/2026/05/cohort2-feature.png 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/2026/05/cohort2-feature.png 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/2026/05/cohort2-feature.png"
                    alt="Every organization has a process, yours just isn&#x27;t written down"
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">Every organization has a process, yours just isn&#x27;t written down</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Paige Moody, Jake Kara</span>
                <time class="gh-card-date" datetime="2026-05-07">May 7, 2026</time>
            </footer>
        </div>
    </a>
</article>                    <article class="gh-card post tag-newsletter tag-hash-no-dropcap">
    <a class="gh-card-link" href="/the-ai-x-journalism-summit-is-two-weeks-away/">
            <figure class="gh-card-image">
                <img
                    srcset="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w300/size/w2000/2026/03/hh-newsletter-header-1.png 300w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/size/w2000/2026/03/hh-newsletter-header-1.png 720w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w960/size/w2000/2026/03/hh-newsletter-header-1.png 960w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w1200/size/w2000/2026/03/hh-newsletter-header-1.png 1200w,
                            https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w2000/size/w2000/2026/03/hh-newsletter-header-1.png 2000w"
                    sizes="(max-width: 1200px) 100vw, 1200px"
                    src="https://storage.ghost.io/c/a4/e7/a4e737ce-0487-4330-bd5a-4bb2cffab98a/content/images/size/w720/size/w2000/2026/03/hh-newsletter-header-1.png"
                    alt="The AI x Journalism Summit is two weeks away"
                >
            </figure>

        <div class="gh-card-wrapper">
            <header class="gh-card-header">
                <h3 class="gh-card-title">The AI x Journalism Summit is two weeks away</h3>
            </header>


            <footer class="gh-card-footer">
                <span class="gh-card-author">Burt Herman</span>
                <time class="gh-card-date" datetime="2026-04-29">Apr 29, 2026</time>
            </footer>
        </div>
    </a>
</article>            </div>

            <footer class="gh-topic-footer">
                    <a class="gh-topic-link" href="https://www.hackshackers.com/posts/">Show more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a>
            </footer>
        </section>


    </div>
</main>


    <footer class="gh-foot gh-outer">
        <div class="gh-foot-inner gh-inner">
                <section class="gh-subscribe">
                    <h3 class="gh-subscribe-title">Subscribe to Hacks/Hackers</h3>
                        <div class="gh-subscribe-description">Don&#x27;t miss out on the latest news. Sign up now to get access to the library of members-only articles.</div>
                    <button class="gh-subscribe-btn gh-btn" data-portal="signup"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
    <path d="M3.33332 3.33334H16.6667C17.5833 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666 4.08334 2.41666 3.33334 3.33332 3.33334Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
    <path d="M18.3333 5L9.99999 10.8333L1.66666 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg> Subscribe now</button>
                </section>

            <nav class="gh-foot-menu">
                <ul class="nav">
    <li class="nav-subscribe nav-current"><a href="#/portal/">Subscribe</a></li>
    <li class="nav-contact"><a href="https://www.hackshackers.com/contact/">Contact</a></li>
</ul>

            </nav>

            <div class="gh-copyright">
                    Hacks/Hackers © 2026. Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a>
            </div>
        </div>
    </footer>

</div>


<script src="https://www.hackshackers.com/assets/built/main.min.js?v=8a300acd9b"></script>

<!-- WebMCP — exposes Hacks/Hackers archive tools to in-browser AI agents.
     Experimental: uses navigator.modelContext (Chrome Early Preview). Feature-
     detected, so it is a no-op in browsers without support. The data tools
     proxy through the hh-mcp Worker (/mcp/web/*) so in-page agent usage is
     tracked in the same Analytics Engine dataset as the MCP server.
     Source of truth: github.com/burtherman/hh-mcp -> web/webmcp.html
     Installed via Ghost Settings -> Code injection -> Site Footer. -->
<script>
(function () {
  var mc = navigator.modelContext;
  if (!mc) return; // not supported in this browser — harmless no-op

  function jsonResult(data) {
    return { content: [{ type: "text", text: JSON.stringify(data) }] };
  }
  function textResult(text) {
    return { content: [{ type: "text", text: text }] };
  }
  function api(path) {
    return fetch(path, { headers: { accept: "application/json" } }).then(function (r) {
      if (!r.ok) throw new Error("hh-mcp " + r.status);
      return r.json();
    });
  }

  // Compact HTML -> Markdown for the current post body. Handles the elements
  // Ghost actually emits; anything unknown falls through to its text content.
  function toMarkdown(node, depth) {
    depth = depth || 0;
    if (node.nodeType === 3) return node.textContent.replace(/\s+/g, " ");
    if (node.nodeType !== 1) return "";
    var tag = node.tagName.toLowerCase();
    var inner = "";
    var kids = node.childNodes;
    for (var i = 0; i < kids.length; i++) inner += toMarkdown(kids[i], depth);
    switch (tag) {
      case "h1": return "\n\n# " + inner.trim() + "\n";
      case "h2": return "\n\n## " + inner.trim() + "\n";
      case "h3": return "\n\n### " + inner.trim() + "\n";
      case "h4": return "\n\n#### " + inner.trim() + "\n";
      case "h5": return "\n\n##### " + inner.trim() + "\n";
      case "h6": return "\n\n###### " + inner.trim() + "\n";
      case "p": return "\n\n" + inner.trim() + "\n";
      case "br": return "  \n";
      case "hr": return "\n\n---\n";
      case "strong": case "b": return "**" + inner.trim() + "**";
      case "em": case "i": return "*" + inner.trim() + "*";
      case "code":
        return node.parentNode && node.parentNode.tagName === "PRE"
          ? inner
          : "`" + inner.trim() + "`";
      case "pre": return "\n\n```\n" + node.textContent.replace(/\n+$/, "") + "\n```\n";
      case "a": return "[" + inner.trim() + "](" + (node.getAttribute("href") || "") + ")";
      case "img": return "![" + (node.getAttribute("alt") || "") + "](" + (node.getAttribute("src") || "") + ")";
      case "blockquote": return "\n\n> " + inner.trim().replace(/\n+/g, "\n> ") + "\n";
      case "ul": case "ol": {
        var items = "";
        var lis = node.children;
        var n = 0;
        for (var j = 0; j < lis.length; j++) {
          if (lis[j].tagName !== "LI") continue;
          n++;
          var li = "";
          for (var k = 0; k < lis[j].childNodes.length; k++) {
            li += toMarkdown(lis[j].childNodes[k], depth + 1);
          }
          var marker = tag === "ol" ? n + ". " : "- ";
          items += "\n" + "  ".repeat(depth) + marker + li.trim();
        }
        return "\n" + items + "\n";
      }
      default: return inner;
    }
  }

  var tools = [
    {
      name: "search_hh_posts",
      title: "Search Hacks/Hackers posts",
      description:
        "Search the Hacks/Hackers article archive by keyword. Returns matching post titles, excerpts and canonical URLs.",
      inputSchema: {
        type: "object",
        properties: {
          query: { type: "string", description: "Search keywords" },
          limit: { type: "integer", description: "Max results (1-20)", default: 5 }
        },
        required: ["query"]
      },
      annotations: { readOnlyHint: true },
      execute: function (input) {
        var q = encodeURIComponent((input && input.query) || "");
        var limit = (input && input.limit) || 5;
        return api("/mcp/web/search?q=" + q + "&limit=" + limit + "&v=1").then(jsonResult);
      }
    },
    {
      name: "list_recent_hh_posts",
      title: "List recent Hacks/Hackers posts",
      description:
        "List the most recent Hacks/Hackers posts, newest first. Optionally filter by tag slug (e.g. 'newsletter'). Returns titles, excerpts and canonical URLs.",
      inputSchema: {
        type: "object",
        properties: {
          limit: { type: "integer", description: "Max results (1-50)", default: 10 },
          tag: { type: "string", description: "Optional tag slug filter" }
        }
      },
      annotations: { readOnlyHint: true },
      execute: function (input) {
        var limit = (input && input.limit) || 10;
        var tag = input && input.tag ? "&tag=" + encodeURIComponent(input.tag) : "";
        return api("/mcp/web/recent?limit=" + limit + tag + "&v=1").then(jsonResult);
      }
    },
    {
      name: "get_page_markdown",
      title: "Get this page as Markdown",
      description:
        "Return the main article content of the current Hacks/Hackers page as clean Markdown.",
      inputSchema: { type: "object", properties: {} },
      annotations: { readOnlyHint: true },
      execute: function () {
        var el = document.querySelector(".gh-content");
        var title = document.querySelector(".gh-article-title");
        var md =
          (title ? "# " + title.textContent.trim() + "\n\n" : "") +
          (el
            ? toMarkdown(el).replace(/\n{3,}/g, "\n\n").trim()
            : "No article content found on this page.");
        try {
          navigator.sendBeacon(
            "/mcp/web/event",
            JSON.stringify({ tool: "get_page_markdown", query: location.pathname })
          );
        } catch (e) {}
        return Promise.resolve(textResult(md));
      }
    }
  ];

  // The API surface is still settling: the W3C spec uses registerTool(), while
  // some Chrome Early Preview builds expose provideContext(). Support whichever
  // the browser actually provides.
  if (typeof mc.registerTool === "function") {
    tools.forEach(function (t) {
      mc.registerTool(t);
    });
  } else if (typeof mc.provideContext === "function") {
    mc.provideContext({ tools: tools });
  }
})();
</script>

<script>
/* HH footer blinking cursor: replace period after year with a cursor span */
(function(){
  function addCursor(){
    var root = document.querySelector('.gh-copyright');
    if (!root || root.dataset.cursorApplied) return;
    var walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
    var textNode;
    while ((textNode = walker.nextNode())) {
      var idx = textNode.nodeValue.search(/\d{4}\./);
      if (idx === -1) continue;
      var rest = textNode.splitText(idx + 4);
      rest.nodeValue = rest.nodeValue.replace(/^\./, '');
      var cursor = document.createElement('span');
      cursor.className = 'hh-cursor';
      cursor.setAttribute('aria-hidden', 'true');
      cursor.textContent = '_';
      textNode.parentNode.insertBefore(cursor, rest);
      root.dataset.cursorApplied = '1';
      return;
    }
  }
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', addCursor);
  } else {
    addCursor();
  }
})();
</script>

</body>

</html>
