URL: /code/integrations/hacker-news · Id: `page:/code/integrations/hacker-news`

# Hacker News

> Your agents find stories on your problem, post your Show HN at the hour you pick, and brief you on each comment as it lands.

Your agents find stories on your problem, post your Show HN at the hour you pick, and brief you on each comment as it lands.

```text title="Run it · Ask"
Draft my Show HN for Tuesday at 8:00 Pacific and show me how it will read.
```

```ts title="Run it · SDK"
import { $ } from 'startup-builder'

const result = await $.try.Post.publish({ handle: 'hacker-news:dana', format: 'show', title: 'Show HN: Leaseline – rent and renewal tracking for 20 to 400 units', link: 'https://leaseline.app/try', publishAt: '2026-11-03T16:00:00Z' })
```

```json title="Run it · Response"
{
  "$type": "Post",
  "mode": "try",
  "stored": false,
  "venue": "hacker-news",
  "status": "scheduled",
  "title": "Show HN: Leaseline – rent and renewal tracking for 20 to 400 units",
  "titleLength": 66,
  "link": "https://leaseline.app/try",
  "checks": {
    "startsWithShowHn": true,
    "triesWithoutSignup": true
  },
  "publishAt": "2026-11-03T16:00:00Z",
  "runsBy": "browser",
  "steps": 7
}
```

- **Connect:** Sign in once, 1 grant
- **Runs through:** [A browser agent](/code/integrations#three-ways)
- **First run:** Find this year’s stories on your problem, about 0.03¢
- **Sites:** [Hacker News](/venues#hacker-news)

## Connect once
1. Call `Integration.connect` with `system: 'social'` and `venue: 'hacker-news'`; a browser window opens on news.ycombinator.com.
2. Sign in with your own Hacker News account. The session is saved to your browser profile.
3. Call `Handle.connect` to bind the account as your account.

| Grant | What it unlocks | Scope |
| --- | --- | --- |
| Your saved session | Your Show HN and your replies, posted as you in Hacker News’s own forms | `browser session: news.ycombinator.com` |

| To | Do this |
| --- | --- |
| Pause | `Integration.pause` holds every run that needs your Hacker News session; the session stays saved. |
| Reconnect | `Integration.reconnect` opens a browser window where you sign in to Hacker News once more; the saved session replaces the old one. |
| Disconnect | `Integration.revoke` deletes the saved Hacker News session; every Post and reply it made stays in your records. |

## What your agents do
| Ask | Verb | Runs through | Price |
| --- | --- | --- | --- |
| Post my Show HN on Tuesday at 8:00 Pacific, signed in as me. | [`Post.publish`](/code/apps/social/publish) | A browser agent | About 1.6¢ a step |
| Post each reply I approve under my Show HN, signed in as me. | [`Conversation.answer`](https://startupbuilder.dev/business/nouns/conversation/answer) | A browser agent | About 1.6¢ a step |

Calls on your own account are free.

Reading this site’s public data needs no account: [`Keyword.search`](/code/data/keywords/search), [`Monitor.create`](/code/data/monitors/create) are Data calls (the [three ways a call runs](/code/integrations#three-ways)).

## What it holds
| Noun | The account’s object | When | Which side leads |
| --- | --- | --- | --- |
| [Post](https://startupbuilder.dev/business/nouns/post) | `story` | Your agent posts the Show HN | The account |
| [Message](https://startupbuilder.dev/business/nouns/message) | `comment` | Someone comments, or your agent posts your reply | The account |
| [Prospect](https://startupbuilder.dev/business/nouns/prospect) | `commenter` | A commenter who fits asks a question or asks to try it | Your records |

## Events and webhooks
| Direction | Event |
| --- | --- |
| Emits | `Post.published`, `Message.created`, `Prospect.engaged`, `Monitor.checked` |

Any Event can wake a Workflow, and a Watch delivers it to your endpoint, signed ([Events and webhooks](/code/events)).

## Limits
| What | Limit | Call |
| --- | --- | --- |
| What goes up as a Show HN | Something people can try, ideally with no signup or email; a page that only collects addresses goes up as a regular post | [`Post.publish`](/code/apps/social/publish) |
| Votes | Your agent never asks anyone to upvote or comment, on Hacker News or off it | [`Post.publish`](/code/apps/social/publish) |
| A second Show HN | Only after a real change to the product, never the same title again | Every call |
| Launch-day replies | The agent drafts a reply to every comment within 15 minutes for the first 6 hours, and posts it under your standing approval | Every call |

## Field map
| Our field | Hacker News’s field | Notes | Calls |
| --- | --- | --- | --- |
| `Post.title` | `title` | Begins “Show HN:” and runs at most 80 characters | [`Post.publish`](/code/apps/social/publish) |
| `Post.link` | `url` | The page a visitor can try at once | [`Post.publish`](/code/apps/social/publish) |
| `Post.body` | `first comment` | How you built it and what you want to hear, posted as the first comment | [`Post.publish`](/code/apps/social/publish) |

## What try does here
Returns the title, the link and the first comment as Hacker News will show them, checked for the Show HN prefix, the 80-character title and a link people can try; nothing posts.

## How long a connection lasts
A connection lasts as long as the site keeps your saved session signed in; the platform checks the session before every run.

The platform asks you to reconnect 7 days before it runs out; until you do, a call that needs it refuses with [`needs-reauth`](/code/refusals#needs-reauth).

## Formats
| Site | Format | Size | Limits |
| --- | --- | --- | --- |
| [Hacker News](/venues#hacker-news) | Show HN | None. | Title begins “Show HN:” and runs at most 80 characters |
| [Hacker News](/venues#hacker-news) | Comment | None. | Plain text; your first comment says how you built it |

## Plays and strategies
| Kind | Where |
| --- | --- |
| Plays | [Launch sites](/plays/launch-sites), [Launch week](/plays/launch-week), [Community answers](/plays/community-answers), [Category kit](/plays/category-kit), [Open source](/plays/open-source) |
| Strategies | [Launch and search](/strategy/launch-and-search) |

## Used by
- **Agent tasks:** [Answer threads](/capabilities/publish-and-post/answer-threads) · [Launch day](/capabilities/earn-first-links/launch-day)

## Reference

| Call | Path | Price |
| --- | --- | --- |
| [`Post.publish`](/code/apps/social/publish) | `POST /posts/publish` | About 1.6¢ a step |
| [`Conversation.answer`](https://startupbuilder.dev/business/nouns/conversation/answer) | `POST /conversations/answer` | About 1.6¢ a step |