Skip to main content
Use the hackernews-stories monitoring type to track Hacker News stories that match your keywords. Stories are fetched via the Algolia HN Search API and sorted by date.

How it works

  1. Create a saved search with monitoring_type: "hackernews-stories" and your keywords
  2. Trigify checks Hacker News on your configured frequency (DAILY, WEEKLY, MONTHLY, or QUARTERLY; HOURLY is available on Enterprise and Custom plans only)
  3. New stories matching your keywords appear in your search results with author, URL, text, timestamps, and comment counts
  4. Optionally trigger workflows on new stories for alerts, enrichment, or integrations

Supported filters

FieldTypeDescription
keywordsstring[]Keywords to search for (OR logic between keywords)
keywords_andstring[]All of these keywords must appear (AND logic)
keywords_notstring[]Exclude stories containing these keywords
time_framestringHow far back to search: past-24h, past-week, past-month, past-year, all-time
max_resultsnumberMaximum stories to return per run (default: 50)
frequencystringHow often to check: DAILY, WEEKLY, MONTHLY, QUARTERLY; HOURLY is Enterprise/Custom only

Story types

Hacker News stories are automatically categorised:
TypeDescription
storyStandard link submissions
show_hnShow HN posts — projects and demos shared by the community
ask_hnAsk HN posts — questions to the community
curl -X POST https://api.trigify.io/v1/searches \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Developer Tools on HN",
    "query": {
      "keywords": ["Claude Code", "Cursor", "AI coding"],
      "keywords_and": ["developer"],
      "keywords_not": ["hiring"],
      "monitoring_type": "hackernews-stories"
    },
    "filters": {
      "time_frame": "past-week",
      "max_results": 100,
      "frequency": "DAILY"
    }
  }'

Response

GET /v1/searches/{id}/results returns Hacker News stories in Trigify’s standard search result shape:
FieldDescription
idResult identifier
sourceAlways hackernews for Hacker News results
author.nameHN username of the submitter
author.usernameHN username/handle
author.profile_urlLink to the submitter’s HN profile
content.textStory text content for Ask HN / Show HN / text posts
content.urlExternal story URL, or the HN discussion URL for text posts
engagement.commentsNumber of comments
published_atWhen the story was posted
collected_atWhen the API returned the result
For the full shared response contract, see Get Search Results.

Example: Monitor competitor mentions

curl -X POST https://api.trigify.io/v1/searches \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Competitor mentions on HN",
    "query": {
      "keywords": ["CompetitorA", "CompetitorB"],
      "keywords_not": ["job", "hiring", "remote"],
      "monitoring_type": "hackernews-stories"
    },
    "filters": {
      "time_frame": "past-24h",
      "frequency": "DAILY"
    }
  }'

JavaScript example

const response = await fetch("https://api.trigify.io/v1/searches", {
  method: "POST",
  headers: {
    "x-api-key": process.env.TRIGIFY_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: "AI Framework Launches",
    query: {
      keywords: ["launched", "open source", "framework"],
      keywords_and: ["AI"],
      monitoring_type: "hackernews-stories",
    },
    filters: {
      time_frame: "past-week",
      max_results: 50,
      frequency: "DAILY",
    },
  }),
});

const data = await response.json();
console.log(`Search created: ${data.data.id}`);

Python example

import requests

response = requests.post(
    "https://api.trigify.io/v1/searches",
    headers={
        "x-api-key": "YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "name": "AI Framework Launches",
        "query": {
            "keywords": ["launched", "open source", "framework"],
            "keywords_and": ["AI"],
            "monitoring_type": "hackernews-stories",
        },
        "filters": {
            "time_frame": "past-week",
            "max_results": 50,
            "frequency": "DAILY",
        },
    },
)

data = response.json()
print(f"Search created: {data['data']['id']}")

Notes

  • HackerNews monitoring uses the Algolia HN Search API (search_by_date endpoint)
  • Keywords use OR logic by default. Use keywords_and for AND logic
  • Use keywords_not to exclude irrelevant results (e.g. job posts)
  • Stories without an external URL (Ask HN, text posts) link to the HN discussion page
  • engagement.comments maps to the Hacker News comment count
  • Hacker News points are not currently exposed in the REST search results response
  • HOURLY frequency requires an Enterprise or Custom plan
  • job_titles filter is not applicable for HackerNews searches