Hey Product Hunt 👋 We're Eric, Caleb, and Nick from Firecrawl. Today we're launching /monitor, the easiest way to keep your AI agent in sync with the web. We built /monitor because we kept hearing the same thing. A lot of our customers were already using Firecrawl to watch specific pages, re-scraping the same pricing pages, docs, changelogs, and filings on a loop just to catch when something changed. It makes a ton of sense, but doing it by hand means you either over-poll and burn tokens on pages that didn't change, or under-poll and miss the update that mattered. So we turned it into a product. Point it at a URL, describe what to track in plain English, and Firecrawl checks the page on your cadence, compares it to the last version, and pings your agent over webhook the moment something meaningful changes. Your agent only ingests what actually changed, so you can cut token usage by up to 90%. There's nothing to wire up yourself. The schema, scheduling, diffing, and delivery are all handled for you, and you see the estimated monthly cost before you flip a monitor on. Changes arrive by signed webhook or email, with a permalink for every diff you can hand straight to another agent. It runs on Firecrawl's /scrape under the hood, so JS-heavy pages get tracked reliably too. If you've got an agent re-scraping the same docs, changelogs, or competitor pages on a loop, this one's for you. You can try it out here: https://docs.firecrawl.dev/featu... Would love to hear what you think.
创始人 / Maker 评论
优先展示 Product Hunt 上对理解条目有帮助的人类文本。
痛点为 AI 基于上游原始证据的初步提炼;未包含额外中国市场检索。
开发者在构建AI agent时,需要持续监控网页变化(如定价页、文档、变更日志),但现有做法是手动轮询或定时重新抓取整个页面。这导致两难:要么过度轮询,在未变化的页面上浪费大量LLM token;要么轮询不足,错过关键更新。一位用户提到“设置自定义轮询逻辑来监控外部数据源是那种没人谈论却要花2-3小时的任务”,另一位用户表示“已经数不清在重新抓取未变化文档上浪费了多少token”。这种手动轮询和差异比较不仅消耗时间和计算资源,还容易因遗漏更新而影响AI agent的决策质量,造成协作延迟和重复劳动。
精选 Product Hunt 讨论
保留原始讨论语境,用来交叉验证上游条目的真实反馈。
@ericciarla @caleb_peffer @nickscamara Congrats on launching /monitoring! The shift from "blind polling" to "intelligent diffing" is exactly what dev teams need to keep AI agent costs under control. I’ve lost count of how many tokens I’ve burned re-scraping unchanged docs. How does /monitor handle dynamic content (like JS-heavy dashboards) vs. static text? Does it ignore irrelevant UI changes (like ad rotations or timestamps) to ensure the webhook only fires for meaningful data shifts? 🕸️
Congrats Eric, Caleb, and Nick! 🔥 Love this build. The 90% token cut is wild. That's the number every team running AI products is quietly desperate for. We pull buyer-side data into FireCoach all day long for sales prospect profiles, and the re-scrape vs. monitor tradeoff is exactly the thing we keep fighting. Going to share this with our engineering team. Quick question: does the diff get summarized in natural language before hitting the webhook, or does the receiving agent still have to interpret the raw diff? Either way, this is one of those "obvious in hindsight" products. Nice work!
Been waiting for something like this. Setting up custom polling logic to watch external data sources is one of those tasks that eats 2-3 hours and nobody talks about Been doing the "scrape on a cron + diff manually" thing for competitor tracking for months. The webhook approach is cleaner. One question/ does it handle pages that hydrate content via JS after first render?
This is one of those features that seems obvious only after someone builds it. Monitoring changes instead of constantly re-scraping pages feels like a much smarter approach. Congrats on the launch!
源数据· Raw Archive
- source
- Product Hunt
- upstream_source
- producthunt_api
- upstream_item_id
- 1158301
- daily_ranking_item_id
- fe0bc675-e670-4e99-bf9b-b3933c90149a
- rank_date
- 2026-05-29
- rank
- 2
- name
- /monitor by Firecrawl
- tagline
- Notify your AI agent when the web changes
- description
- /monitor notifies your agent via webhook the moment pages or sites change. Use up to 90% fewer LLM tokens by only ingesting what changes on a page.
- maker_comment
- Hey Product Hunt 👋 We're Eric, Caleb, and Nick from Firecrawl. Today we're launching /monitor, the easiest way to keep your AI agent in sync with the web. We built /monitor because we kept hearing the same thing. A lot of our customers were already using Firecrawl to watch specific pages, re-scraping the same pricing pages, docs, changelogs, and filings on a loop just to catch when something changed. It makes a ton of sense, but doing it by hand means you either over-poll and burn tokens on pages that didn't change, or under-poll and miss the update that mattered. So we turned it into a product. Point it at a URL, describe what to track in plain English, and Firecrawl checks the page on your cadence, compares it to the last version, and pings your agent over webhook the moment something meaningful changes. Your agent only ingests what actually changed, so you can cut token usage by up to 90%. There's nothing to wire up yourself. The schema, scheduling, diffing, and delivery are all handled for you, and you see the estimated monthly cost before you flip a monitor on. Changes arrive by signed webhook or email, with a permalink for every diff you can hand straight to another agent. It runs on Firecrawl's /scrape under the hood, so JS-heavy pages get tracked reliably too. If you've got an agent re-scraping the same docs, changelogs, or competitor pages on a loop, this one's for you. You can try it out here: <a href="https://docs.firecrawl.dev/features/monitoring" target="_blank" rel="nofollow noopener noreferrer">https://docs.firecrawl.dev/featu...</a> Would love to hear what you think.
- votes_count
- 254
- comments_count
- 15
- reviews_count
- 12
- featured_at
- 2026-05-29T07:01:00.000Z
- created_at_on_source
- 2026-05-29T07:01:00.000Z
[
{
"url": "https://ph-files.imgix.net/158875df-1a0c-436f-9372-74aba00d844b.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/fa2f119a-3afe-4086-9d26-e000c41f8dc7.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/cf4f724d-a215-4c90-b05b-f35c514a519a.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/310e71c2-0d61-4c26-aad4-b34077851b2a.jpeg?auto=format",
"type": "video",
"videoUrl": "https://youtu.be/A8kzzoQt20A"
}
]{
"post_id": "1158301",
"fetched_at": "2026-05-29T22:00:00.969Z",
"has_post_detail": true,
"snapshot_version": "producthunt_v1",
"has_maker_comment": true,
"maker_comment_source": "maker_match",
"comments_fetch_status": "ok",
"selected_comment_count": 5
}{
"id": "29d319c3-1624-48dc-9eb9-72bcb263a4b3",
"daily_ranking_item_id": "fe0bc675-e670-4e99-bf9b-b3933c90149a",
"source": "producthunt_api",
"product_hunt_id": "1158301",
"fetched_at": "2026-05-29T22:00:00.969Z",
"post_raw": {
"id": "1158301",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"name": "/monitor by Firecrawl",
"media": [
{
"url": "https://ph-files.imgix.net/158875df-1a0c-436f-9372-74aba00d844b.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/fa2f119a-3afe-4086-9d26-e000c41f8dc7.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/cf4f724d-a215-4c90-b05b-f35c514a519a.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/310e71c2-0d61-4c26-aad4-b34077851b2a.jpeg?auto=format",
"type": "video",
"videoUrl": "https://youtu.be/A8kzzoQt20A"
}
],
"tagline": "Notify your AI agent when the web changes",
"thumbnail": {
"url": "https://ph-files.imgix.net/eed71365-67aa-4375-b90e-8ef52205ae2b.png?auto=format"
},
"votesCount": 254,
"description": "/monitor notifies your agent via webhook the moment pages or sites change. Use up to 90% fewer LLM tokens by only ingesting what changes on a page."
},
"post_detail_raw": {
"id": "1158301",
"slug": "monitor-by-firecrawl",
"user": {
"id": "4391910",
"url": "https://www.producthunt.com/@ericciarla?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"name": "Eric Ciarla",
"headline": "Co-Founder @ Firecrawl (YC S22)",
"username": "ericciarla",
"websiteUrl": null,
"profileImage": "https://ph-avatars.imgix.net/4391910/a3767e4d-4707-424b-b070-f5502b31ddae.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
"twitterUsername": null
},
"media": [
{
"url": "https://ph-files.imgix.net/158875df-1a0c-436f-9372-74aba00d844b.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/fa2f119a-3afe-4086-9d26-e000c41f8dc7.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/cf4f724d-a215-4c90-b05b-f35c514a519a.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/310e71c2-0d61-4c26-aad4-b34077851b2a.jpeg?auto=format",
"type": "video",
"videoUrl": "https://youtu.be/A8kzzoQt20A"
}
],
"makers": [
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
},
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
},
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
}
],
"topics": {
"edges": [
{
"node": {
"id": "267",
"name": "Developer Tools",
"slug": "developer-tools"
}
},
{
"node": {
"id": "268",
"name": "Artificial Intelligence",
"slug": "artificial-intelligence"
}
}
]
},
"website": "https://www.producthunt.com/r/RYV3RTT7QJJVGO?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"createdAt": "2026-05-29T07:01:00Z",
"dailyRank": 2,
"thumbnail": {
"url": "https://ph-files.imgix.net/eed71365-67aa-4375-b90e-8ef52205ae2b.png?auto=format",
"type": "image",
"videoUrl": null
},
"featuredAt": "2026-05-29T07:01:00Z",
"weeklyRank": 17,
"yearlyRank": null,
"monthlyRank": 363,
"scheduledAt": "2026-05-29T07:01:00Z",
"productLinks": [
{
"url": "https://www.producthunt.com/r/FFZ6X4O5C3EBR5?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Twitter"
},
{
"url": "https://www.producthunt.com/r/RYV3RTT7QJJVGO?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Website"
},
{
"url": "https://www.producthunt.com/r/4F6YJJV7T75IXU?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Twitter"
}
],
"reviewsCount": 12,
"commentsCount": 15,
"reviewsRating": 5
},
"maker_comment_raw": {
"id": "5409297",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5409297&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "Hey Product Hunt 👋 We're Eric, Caleb, and Nick from Firecrawl. Today we're launching /monitor, the easiest way to keep your AI agent in sync with the web.\n\nWe built /monitor because we kept hearing the same thing. A lot of our customers were already using Firecrawl to watch specific pages, re-scraping the same pricing pages, docs, changelogs, and filings on a loop just to catch when something changed. It makes a ton of sense, but doing it by hand means you either over-poll and burn tokens on pages that didn't change, or under-poll and miss the update that mattered.\n\nSo we turned it into a product. Point it at a URL, describe what to track in plain English, and Firecrawl checks the page on your cadence, compares it to the last version, and pings your agent over webhook the moment something meaningful changes. Your agent only ingests what actually changed, so you can cut token usage by up to 90%.\n\nThere's nothing to wire up yourself. The schema, scheduling, diffing, and delivery are all handled for you, and you see the estimated monthly cost before you flip a monitor on. Changes arrive by signed webhook or email, with a permalink for every diff you can hand straight to another agent. It runs on Firecrawl's /scrape under the hood, so JS-heavy pages get tracked reliably too.\n\nIf you've got an agent re-scraping the same docs, changelogs, or competitor pages on a loop, this one's for you.\n\nYou can try it out here: <a href=\"https://docs.firecrawl.dev/features/monitoring\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://docs.firecrawl.dev/featu...</a>\n\nWould love to hear what you think.",
"user": {
"id": "4391910",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "4391910",
"is_maker": true,
"parent_id": null,
"created_at": "2026-05-28T22:57:01Z",
"replies_raw": [],
"votes_count": 1
},
"selected_comments_raw": [
{
"id": "5409297",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5409297&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "Hey Product Hunt 👋 We're Eric, Caleb, and Nick from Firecrawl. Today we're launching /monitor, the easiest way to keep your AI agent in sync with the web.\n\nWe built /monitor because we kept hearing the same thing. A lot of our customers were already using Firecrawl to watch specific pages, re-scraping the same pricing pages, docs, changelogs, and filings on a loop just to catch when something changed. It makes a ton of sense, but doing it by hand means you either over-poll and burn tokens on pages that didn't change, or under-poll and miss the update that mattered.\n\nSo we turned it into a product. Point it at a URL, describe what to track in plain English, and Firecrawl checks the page on your cadence, compares it to the last version, and pings your agent over webhook the moment something meaningful changes. Your agent only ingests what actually changed, so you can cut token usage by up to 90%.\n\nThere's nothing to wire up yourself. The schema, scheduling, diffing, and delivery are all handled for you, and you see the estimated monthly cost before you flip a monitor on. Changes arrive by signed webhook or email, with a permalink for every diff you can hand straight to another agent. It runs on Firecrawl's /scrape under the hood, so JS-heavy pages get tracked reliably too.\n\nIf you've got an agent re-scraping the same docs, changelogs, or competitor pages on a loop, this one's for you.\n\nYou can try it out here: <a href=\"https://docs.firecrawl.dev/features/monitoring\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://docs.firecrawl.dev/featu...</a>\n\nWould love to hear what you think.",
"user": {
"id": "4391910",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "4391910",
"is_maker": true,
"parent_id": null,
"created_at": "2026-05-28T22:57:01Z",
"replies_raw": [],
"votes_count": 1,
"selection_score": 400,
"selection_reason": "maker_comment"
},
{
"id": "5410866",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5410866&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "<p><a href=\"https://www.producthunt.com/@ericciarla\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"ericciarla\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@ericciarla</a> <a href=\"https://www.producthunt.com/@caleb_peffer\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"caleb_peffer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@caleb_peffer</a> <a href=\"https://www.producthunt.com/@nickscamara\" data-node-type=\"mention\" data-mention-type=\"user\" data-mention-id=\"nickscamara\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@nickscamara</a> Congrats on launching /monitoring! </p><p>The shift from \"blind polling\" to \"intelligent diffing\" is exactly what dev teams need to keep AI agent costs under control. I’ve lost count of how many tokens I’ve burned re-scraping unchanged docs.<br></p><p>How does /monitor handle dynamic content (like JS-heavy dashboards) vs. static text? Does it ignore irrelevant UI changes (like ad rotations or timestamps) to ensure the webhook only fires for <em>meaningful</em> data shifts?</p><p> 🕸️</p>",
"user": {
"id": "9851521",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "9851521",
"is_maker": false,
"parent_id": null,
"created_at": "2026-05-29T15:33:01Z",
"replies_raw": [],
"votes_count": 0,
"selection_score": 400,
"selection_reason": "body_signal_score"
},
{
"id": "5410397",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5410397&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "<p>Congrats Eric, Caleb, and Nick! 🔥<br></p><p>Love this build. The 90% token cut is wild. That's the number every team running AI products is quietly desperate for.<br></p><p>We pull buyer-side data into FireCoach all day long for sales prospect profiles, and the re-scrape vs. monitor tradeoff is exactly the thing we keep fighting. Going to share this with our engineering team.<br></p><p>Quick question: does the diff get summarized in natural language before hitting the webhook, or does the receiving agent still have to interpret the raw diff?<br></p><p>Either way, this is one of those \"obvious in hindsight\" products. Nice work!</p>",
"user": {
"id": "9737239",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "9737239",
"is_maker": false,
"parent_id": null,
"created_at": "2026-05-29T11:22:22Z",
"replies_raw": [],
"votes_count": 0,
"selection_score": 400,
"selection_reason": "body_signal_score"
},
{
"id": "5410611",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5410611&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "<p>Been waiting for something like this. Setting up custom polling logic to watch external data sources is one of those tasks that eats 2-3 hours and nobody talks about<br><br>Been doing the \"scrape on a cron + diff manually\" thing for competitor tracking for months. The webhook approach is cleaner. One question/ does it handle pages that hydrate content via JS after first render?</p>",
"user": {
"id": "9766281",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "9766281",
"is_maker": false,
"parent_id": null,
"created_at": "2026-05-29T13:20:46Z",
"replies_raw": [],
"votes_count": 1,
"selection_score": 387,
"selection_reason": "body_signal_score"
},
{
"id": "5410625",
"url": "https://www.producthunt.com/products/extract-by-firecrawl?comment=5410625&utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"body": "<p>This is one of those features that seems obvious only after someone builds it. Monitoring changes instead of constantly re-scraping pages feels like a much smarter approach. Congrats on the launch!</p>",
"user": {
"id": "4848525",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profile_url": "[REDACTED]",
"website_url": null,
"profile_image": null,
"twitter_username": null
},
"user_id": "4848525",
"is_maker": false,
"parent_id": null,
"created_at": "2026-05-29T13:27:23Z",
"replies_raw": [],
"votes_count": 0,
"selection_score": 204,
"selection_reason": "body_signal_score"
}
],
"topics_raw": [
{
"id": "267",
"name": "Developer Tools",
"slug": "developer-tools"
},
{
"id": "268",
"name": "Artificial Intelligence",
"slug": "artificial-intelligence"
}
],
"makers_raw": [
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profileUrl": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
},
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profileUrl": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
},
{
"id": "0",
"url": "[REDACTED]",
"name": "[REDACTED]",
"headline": null,
"username": "[REDACTED]",
"profileUrl": "[REDACTED]",
"websiteUrl": null,
"profileImage": null,
"twitterUsername": null
}
],
"launch_metadata_raw": {
"slug": "monitor-by-firecrawl",
"daily_rank": 2,
"featured_at": "2026-05-29T07:01:00Z",
"website_url": "https://www.producthunt.com/r/RYV3RTT7QJJVGO?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"weekly_rank": 17,
"yearly_rank": null,
"monthly_rank": 363,
"scheduled_at": "2026-05-29T07:01:00Z",
"reviews_rating": 5,
"created_at_on_product_hunt": "2026-05-29T07:01:00Z"
},
"stats_raw": {
"votes_count": 254,
"reviews_count": 12,
"comments_count": 15,
"reviews_rating": 5
},
"aux_raw": {
"media_extended": [
{
"url": "https://ph-files.imgix.net/158875df-1a0c-436f-9372-74aba00d844b.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/fa2f119a-3afe-4086-9d26-e000c41f8dc7.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/cf4f724d-a215-4c90-b05b-f35c514a519a.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/310e71c2-0d61-4c26-aad4-b34077851b2a.jpeg?auto=format",
"type": "video",
"videoUrl": "https://youtu.be/A8kzzoQt20A"
}
],
"submitter_user": {
"id": "4391910",
"url": "https://www.producthunt.com/@ericciarla?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"name": "Eric Ciarla",
"headline": "Co-Founder @ Firecrawl (YC S22)",
"username": "ericciarla",
"profileUrl": "https://www.producthunt.com/@ericciarla?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"websiteUrl": null,
"profileImage": "https://ph-avatars.imgix.net/4391910/a3767e4d-4707-424b-b070-f5502b31ddae.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
"twitterUsername": null
},
"presentation_only": {
"thumbnail_url": "https://ph-files.imgix.net/eed71365-67aa-4375-b90e-8ef52205ae2b.png?auto=format",
"product_hunt_url": "https://www.producthunt.com/products/extract-by-firecrawl?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"product_hunt_slug": "monitor-by-firecrawl"
},
"unused_upstream_fields": {
"post_aux": {},
"comments_aux": {},
"post_detail_aux": {
"media_raw": [
{
"url": "https://ph-files.imgix.net/158875df-1a0c-436f-9372-74aba00d844b.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/fa2f119a-3afe-4086-9d26-e000c41f8dc7.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/cf4f724d-a215-4c90-b05b-f35c514a519a.png?auto=format",
"type": "image",
"videoUrl": null
},
{
"url": "https://ph-files.imgix.net/310e71c2-0d61-4c26-aad4-b34077851b2a.jpeg?auto=format",
"type": "video",
"videoUrl": "https://youtu.be/A8kzzoQt20A"
}
],
"thumbnail_raw": {
"url": "https://ph-files.imgix.net/eed71365-67aa-4375-b90e-8ef52205ae2b.png?auto=format",
"type": "image",
"videoUrl": null
},
"presentation_only": {
"product_hunt_slug": "monitor-by-firecrawl"
},
"product_links_raw": [
{
"url": "https://www.producthunt.com/r/FFZ6X4O5C3EBR5?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Twitter"
},
{
"url": "https://www.producthunt.com/r/RYV3RTT7QJJVGO?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Website"
},
{
"url": "https://www.producthunt.com/r/4F6YJJV7T75IXU?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"type": "Twitter"
}
],
"submitter_user_raw": {
"id": "4391910",
"url": "https://www.producthunt.com/@ericciarla?utm_campaign=producthunt-api&utm_medium=api-v2&utm_source=Application%3A+jingx+%28ID%3A+278031%29",
"name": "Eric Ciarla",
"headline": "Co-Founder @ Firecrawl (YC S22)",
"username": "ericciarla",
"websiteUrl": null,
"profileImage": "https://ph-avatars.imgix.net/4391910/a3767e4d-4707-424b-b070-f5502b31ddae.jpeg?auto=format&crop=faces&fit=crop&h=original&w=original",
"twitterUsername": null
},
"unused_upstream_fields": {}
}
}
},
"selection_meta": {
"scoring_basis": "maker first, then non-maker body signal score with original order tie-break",
"first_comment_id": "5409297",
"comments_strategy": "maker_plus_top_discussion",
"detail_fetch_status": "ok",
"top_candidate_count": 9,
"maker_comment_source": "maker_match",
"comments_fetch_status": "ok",
"dropped_comment_count": 4,
"comments_fetched_limit": 25,
"newest_candidate_count": 9,
"selected_comment_count": 5,
"candidate_comment_count": 9,
"selected_comment_reasons": [
{
"id": "5409297",
"score": 400,
"reason": "maker_comment"
},
{
"id": "5410866",
"score": 400,
"reason": "body_signal_score"
},
{
"id": "5410397",
"score": 400,
"reason": "body_signal_score"
},
{
"id": "5410611",
"score": 387,
"reason": "body_signal_score"
},
{
"id": "5410625",
"score": 204,
"reason": "body_signal_score"
}
]
},
"created_at": "2026-05-29T22:00:05.704Z",
"updated_at": "2026-05-29T22:00:05.704Z"
}