Skip to main content
Track LinkedIn posts containing specific keywords with powerful filtering options. Monitor industry trends, job postings, or any topic of interest with customizable fetch frequencies.

Request Body

name
string
Watchlist name. If not provided, a name will be auto-generated based on keywords.
keywords
array
required
Array of keywords to track. Can be simple strings or advanced keyword objects with filtering rules.Simple format:
["hiring", "blockchain", "remote work"]
Advanced format with filters:
[
  {
    "keyword": "software engineer",
    "required_keywords": ["remote", "senior"],
    "exclude_keywords": ["unpaid", "intern"]
  }
]
description
string
Optional description for the watchlist
labels
array
Custom labels for organization
[
  {
    "name": "hiring",
    "description": "Job postings"
  }
]
fetchFreqInHours
number
default:"12"
Fetch frequency in hours. Allowed values: 1, 3, 6, 12, 24, 48, 72

Advanced Keyword Filtering

Each keyword can have additional filtering rules:
keyword
string
required
The primary keyword to search for
required_keywords
array
All of these keywords must be present in the post (AND logic)
exclude_keywords
array
None of these keywords should be present in the post (NOT logic)
curl -X POST \
  "https://api.outx.ai/api-keyword-watchlist" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "name": "Remote Senior Jobs",
    "keywords": [
      {
        "keyword": "hiring",
        "required_keywords": ["remote", "senior", "engineer"],
        "exclude_keywords": ["unpaid", "intern"]
      },
      {
        "keyword": "job opening",
        "required_keywords": ["work from home"],
        "exclude_keywords": ["junior"]
      }
    ],
    "description": "Track remote senior engineering positions",
    "labels": [
      {
        "name": "hiring",
        "description": "Job postings"
      }
    ],
    "fetchFreqInHours": 6
  }'
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "Remote Senior Jobs",
  "slug": "remote-senior-jobs-550e8400",
  "type": "keyword",
  "keywords": ["hiring", "job opening"],
  "fetchFreqInHours": 6,
  "created": true,
  "results": [
    {
      "success": true,
      "keyword": "hiring",
      "keyword_id": "660e8400-e29b-41d4-a716-446655440001"
    }
  ]
}

Response Fields

id
string
Unique identifier for the watchlist
name
string
Watchlist name
slug
string
URL-friendly slug for the watchlist
type
string
Always “keyword” for keyword watchlists
keywords
array
Array of tracked keywords
fetchFreqInHours
number
Fetch frequency in hours
created
boolean
Whether the watchlist was successfully created
results
array
Array of keyword creation results

Error Responses

Status CodeError MessageDescription
400Missing required parameter: keywordsKeywords array is required
400Invalid fetchFreqInHours valueFetch frequency must be one of: 1, 3, 6, 12, 24, 48, 72
401UnauthorizedInvalid or missing API key

Use Cases

Monitor hiring posts for specific roles and locations:
{
  "name": "Remote Engineering Jobs",
  "keywords": [
    {
      "keyword": "hiring",
      "required_keywords": ["engineer", "remote"],
      "exclude_keywords": ["intern", "junior"]
    }
  ]
}
Watch for mentions of competitors:
{
  "name": "Competitor Mentions",
  "keywords": [
    {
      "keyword": "CompetitorName",
      "exclude_keywords": ["partnership", "collaboration"]
    }
  ]
}