Signalfinder Pro
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
Vamsi Krishna
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days 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
npm installnpm run buildnpm testnpm 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.