Pricing
from $10.00 / 1,000 qualified lead signals
Signalfinder Pro
Find high-intent B2B leads from public sources (Hacker News, GitHub, Stack Exchange, Reddit, RSS). Classifies buying intent, scores leads 0β100, and optionally generates outreach. No paid APIs required.
Pricing
from $10.00 / 1,000 qualified lead signals
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Share
B2B Lead Intent Scanner β Buying Signals from Hacker News, Reddit, GitHub & Stack Exchange
Scan Hacker News, Reddit, GitHub, and Stack Exchange for B2B buying signals using free public APIs.
Overview
This Actor scans public web and social sources for buying-intent signalsβrecommendation requests, competitor complaints, tool-replacement discussions, and workflow pain points. It classifies intent, scores each lead (0β100), deduplicates results, and optionally generates suggested outreach messages. No paid APIs or API keys are required.
Schemas
Machine-readable definitions (used by Apify Console and AI tools):
- Input: .actor/input_schema.json
- Output locations: .actor/output_schema.json
- Lead fields: .actor/dataset_schema.json
Sources
The display title highlights Hacker News, Reddit, GitHub, and Stack Exchange as the core platforms. RSS feeds and generic forums are optional extensions for custom monitoring.
| Source | API | Auth |
|---|---|---|
| Hacker News | Algolia Search API | No |
| GitHub | REST Search API | No (optional githubToken for higher rate limits) |
| Stack Exchange | Public API | No |
| Public JSON/RSS | No (graceful failure if blocked) | |
| RSS Feeds | User-provided URLs | No |
| Generic Forums | Crawlee crawler | No |
Input
Required
keywordsβ Product categories, problems, or solution keywords (e.g.["crm", "sales automation"])sourcesβ One or more of:hacker_news,github,stack_exchange,reddit,rss,generic_forum
Optional
competitorNamesβ Tools to monitor for dissatisfaction (e.g.["Apollo", "HubSpot"])painPointPhrasesβ Custom pain phrases (e.g.["too expensive", "bad data quality"])targetIndustriesβ For scoring (e.g.["SaaS", "B2B"])targetJobTitlesβ For decision-maker scoring (e.g.["founder", "head of sales"])maxResultsβ Maximum qualified leads (default: 100)maxPostsPerSourceβ Max posts per source (default: 50)minConfidenceScoreβ Minimum score 0β100 (default: 65)includeSuggestedOutreachβ Generate outreach messages (default: true)includeCompanyEnrichmentβ Lightweight company enrichment (default: false)rssFeedUrlsβ Public RSS feed URLs (required whenrssis in sources)genericForumUrlsβ Public forum URLs (required whengeneric_forumis in sources)githubTokenβ Optional GitHub token for higher rate limitswebhookUrlβ Optional webhook for lead export (first 10 leads per run)startDate/endDateβ ISO date filtersenableGlobalDeduplicationβ Track seen post URLs across runs (default: true)deduplicationScopeβ Optional override for the dedup store scope (default: hash of keywords + sources)deduplicationRetentionDaysβ Days to retain seen URLs before pruning (default: 90)resetGlobalDedupStoreβ One-time wipe of the scoped dedup store at run start (default: false)
Field definitions: .actor/input_schema.json
Global deduplication
Scheduled monitoring (e.g. daily HN scans) uses a named Apify KeyValueStore to remember post_url values from previous runs. On each run:
- In-run dedup removes duplicates within the current fetch batch.
- Global dedup filters out URLs already seen in prior runs for the same config scope.
- New URLs from the run are persisted back to the store.
The store scope is derived from your keywords and sources (sorted and hashed), so different monitoring configs do not cross-filter. Override with deduplicationScope if you want a shared store across configs.
Seen URLs older than deduplicationRetentionDays (default 90) are pruned automatically. Set resetGlobalDedupStore: true once to clear a stale store.
Run summary metrics (usage_metrics in the OUTPUT report) include globally_skipped_items, deduplication_scope, and deduplication_store_size.
Example input
Works without API keys β uses Hacker News only:
{"keywords":["software","looking for tool"],"sources":["hacker_news"],"maxResults":10,"maxPostsPerSource":20,"minConfidenceScore":40,"includeSuggestedOutreach":true,"includeCompanyEnrichment":false}
Output
Dataset (leads) β one item per qualified lead. See .actor/dataset_schema.json for full field definitions.
Key-value store (summary) β run summary at key OUTPUT with totals, top intent categories, top keywords, highest-scoring leads, and usage_metrics.
intent_category values: active_buying_intent, competitor_dissatisfaction, tool_replacement_intent, pain_problem_expression, recommendation_request, budget_pricing_complaint, integration_workflow_issue, hiring_growth_trigger, research_awareness_only, not_relevant
Example lead:
{"lead_id":"lead_hacker_news_ouc37q","source_platform":"hacker_news","post_url":"https://news.ycombinator.com/item?id=42119042","intent_category":"active_buying_intent","intent_confidence_score":45,"matched_keywords":["software"],"matched_trigger_phrases":["looking for"],"reason_for_score":"Score: 45/100. Factors: moderate intent signals, high engagement signals."}
Run locally
npminstallnpm run buildnpmtestnpm run run:local # or: apify run
Results are written to storage/datasets/default/ (leads) and storage/key_value_stores/default/OUTPUT.json (summary).
Deploy
apify loginapify push
Then configure input and run from the Apify Console.
Store SEO (Apify Console)
After apify push, set these in Publication β Display information (not stored in git):
| Field | Suggested value |
|---|---|
| SEO name (~45 chars) | B2B Lead Intent Scanner β Buying Signals |
| SEO description (~150 chars) | Find B2B buying signals on Hacker News, Reddit, GitHub & Stack Exchange. Intent classification, lead scoring, dedupe. No LinkedIn or paid APIs. |
Use the full Store description for warm visitors (intent categories, scoring, webhook, example input above). Suggested categories: Lead generation, B2B, sales intelligence, intent data.
