Public Feature Board and Roadmap Monitor
Pricing
from $3.23 / 1,000 board founds
Public Feature Board and Roadmap Monitor
Find a company's public feature board (Canny, Featurebase, Frill, UserVoice, or a Productboard portal) from its domain and get its top requests with votes, status, and comments, plus the integrations customers ask for. Watch for new and changed requests on a schedule. Clay ready.
Pricing
from $3.23 / 1,000 board founds
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Enter a company domain and get its public feature board: the board address, the platform behind it (Canny, Featurebase, Frill, UserVoice, or a Productboard portal), and the requests its customers vote on most, each with votes, status, comments, and a link. Requests that ask for an integration are flagged with the product they name, so you see which integrations a company's customers want and do not have yet. Run it on a schedule with Only new on to get new requests, status changes, and vote jumps. Rows are flat, so they export to CSV or drop into a Clay table.
Features
- Finds the board for you. The homepage is read for a link to a feedback board or public roadmap, including a board on the company's own subdomain (feedback.company.com). When the site links none, the common board addresses on each platform are checked, and a board found that way is used only when it links back to the company domain.
- Five platforms. Canny, Featurebase, Frill, and UserVoice boards are read from the data the board page already carries for its first view. A Productboard portal is returned as a link.
- Top and newest requests. Each Canny board is read sorted by votes and by newest, each Featurebase board by upvotes and by date, the first Frill boards, and the first UserVoice forums. Requests are returned most votes first.
- Integration requests. A request that asks for an integration, a connector, a sync, or an API, or that sits on an integrations board, is flagged, with the product it names when it names one. The board row lists every product asked for.
- Status counts. The board row counts the requests read per status (open, planned, in progress, complete), so you see what a company is building next.
- Monitoring. With Only new on and a state key, a scheduled run returns only requests that are new, changed status, or gained votes since the last run.
How it reads boards
Board pages are fetched directly, the way a browser would, and robots.txt is read for every host and checked before every request; a page robots.txt disallows is never requested. No board API is called, nothing is posted or voted, and no login is used. A host that refuses a direct request is retried through the Apify proxy. No API key and no other developer's actor.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
company_domain | string | One company domain, for example clickup.com | |
domains | array | Several domains, up to 200 | |
board_urls | array | Board addresses you already know | |
company_name | string | With one domain: the name the board shows | |
max_requests | string | 20 | Request rows per company, up to 100; 0 returns only the board row |
max_boards | string | 2 | Boards or forums read per company, up to 5 |
integration_requests_only | string | false | true returns only integration requests |
probe_platform_slugs | string | true | Check the platform addresses by company name when the site links no board |
only_new | string | false | true returns only new or changed requests since the last run with the same state_key |
min_vote_increase | string | 5 | With only_new: the vote gain that counts as a change |
state_key | string | Names the saved request list; one key per schedule | |
max_charge_usd | string | Stop before a row would pass this amount | |
proxy_mode | string | auto | auto (direct, then the Apify proxy for a host that refuses), direct, or residential. A reliability choice |
Every field accepts text, as Clay sends it: "true", "20", a comma separated list, or a JSON array.
Output
One row layout for both row types, so no column is lost between them. Key fields:
| Field | Rows | Example |
|---|---|---|
row_type | all | company_board, request |
company_domain, platform, board_url | all | clickup.com, canny, https://feedback.clickup.com |
match_method, match_confidence | board | custom_domain, 0.95 |
boards, total_posts, top_request_title, top_request_votes | board | ["Feature Requests"], 57919 |
status_counts_json, integration_request_count, integration_targets | board | {"open":12,"planned":4}, 19, ["Google Meet","Quickbooks"] |
request_title, request_url, votes, comment_count, status, board_name, created_at | request | Google Meet integration, 812, planned |
is_integration_request, integration_target | request | true, Google Meet |
change, previous_status, previous_votes | request, with only_new | status_changed, open |
row_status, error_reason, billable_events_json | all | ok, null, {"board-found":1} |
The run summary (key-value store record RUN_SUMMARY) lists boards found per platform, companies with no public board, requests returned, and the hosts moved to the proxy.
Pricing
Pay per event. You pay only these events; the Apify platform and proxy costs of your run are paid by Mamba Labs.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
Board found (board-found), one company whose board was found and read, its request rows included | $0.0038 | $0.00361 | $0.00342 | $0.00323 |
Actor start (apify-actor-start), once per run | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Free rows: a company with no public board, a blocked or unreadable board, a board with no readable request, and a Productboard portal returned as a link only. Request rows carry no charge of their own. On the Apify free plan the actor stops at 1.50 USD of evaluation a month (about 394 companies with a board); any paid Apify plan removes that cap.
Example: 100 company domains where 30 have a public board cost 30 board found events, $0.114, plus the actor start.
Usage examples
Apify Console or API
{ "company_domain": "clickup.com", "max_requests": "20" }
{ "domains": ["clickup.com", "descript.com", "instantly.ai", "ahrefs.com"], "integration_requests_only": "true" }
{ "domains": ["clickup.com", "canny.io"], "only_new": "true", "state_key": "competitor-boards-weekly" }
Clay
Add an HTTP API or Apify column that sends company_domain, and read board_url, integration_targets, and top_request_title from the board row. For integration prospecting, filter request rows on is_integration_request true and group by integration_target.
Scheduled monitoring
Save the input as an Apify task with only_new true and a state_key, then schedule it weekly. Each run returns the board row for every company and only the requests that are new or moved.
MCP
The MCP server @mambalabsdev/mcp-public-feature-board-roadmap-monitor exposes this actor as a tool for Claude and other MCP clients.
Error handling
| Situation | What you get |
|---|---|
| No public board linked from the site or found on a platform | One free board row with row_status not_found |
| A board found by name that does not link back to the company domain | Not used; the row reads not_found |
| A board on a vendor site that names another company | Skipped, and named in error_reason |
| The board refuses every route, or robots.txt disallows it | One free board row with row_status blocked |
| A board with no public requests on its first page | The board row with row_status partial, free |
| A Productboard portal | The portal link, row_status partial, free |
| Max charge reached | The run stops before the next billable row and says why in the status message |
Limitations
- Each board page shows its first requests only (10 per sort on Canny and Featurebase, about 15 on Frill, 20 on UserVoice), so this is the top of each board, not every post.
- Private boards, boards behind a login, and boards that load their posts only after the page runs scripts return no requests.
- A board that is neither linked from the company site nor named after the company is not found.
- Integration requests and the product named are found by fixed patterns; check
integration_targetbefore you act on it. - You are responsible for how you use the data and for the terms of the boards you read.
More from Mamba Labs
Built by Mamba Labs.
