{"id":"future-work-miner","title":"Open Research Opportunity Miner","description":"Leads with a verdict (OPEN_GAPS_FOUND, NO_CLEAR_OPEN_GAPS or NO_GAPS_EXTRACTED), a confidence, a headline naming the top gap with its quoted evidence, and the next step. Collects papers for a topic or seed list (arXiv ids or URLs, DOIs, PMIDs; arXiv and OpenAlex search), reads full text from ar5iv or Europe PMC, and extracts future-work, limitation and open-question sentences in code with exact section spans. Near-duplicates are clustered across papers, then each cluster is checked against later citing works (OpenAlex cites, Semantic Scholar citation contexts) and marked OPEN, POSSIBLY_ADDRESSED or ADDRESSED. Scores combine recurrence across independent author groups, recency, citation momentum and openness with documented formulas. mode \"fast\" makes zero model calls; the default makes two (cluster wording, addressed judgment) and lets them move a status at most one level. OPEN means no scanned citing paper covered the theme, not that nobody has: the check reads titles, abstracts and citation contexts of up to a few hundred citing works, not their full text. Papers without open full text contribute only abstracts.","roi":"Turns a topic or reading list into ranked research gaps, each backed by the authors' own quoted future-work sentence and checked against later citing papers, so a lab or R&D team starts from a gap nobody has visibly filled.","audience":"research","channels":["x402","mcp","rapidapi","apify"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/mine-future-work","path":"/api/v1/mine-future-work","contentType":"application/json"},"price":{"amount":"1.50","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":3,"maxLength":300,"description":"Research topic, e.g. \"parameter-efficient fine-tuning of language models\"."},"seeds":{"type":"array","maxItems":25,"items":{"type":"string","minLength":5,"maxLength":200},"description":"Seed papers you already have: arXiv ids or URLs (2106.09685, arXiv:1706.03762, arxiv.org/abs/...), DOIs or doi.org URLs, or PMIDs (PMID:12345678 or a PubMed URL). Always analysed, not date-filtered."},"fromDate":{"type":"string","minLength":10,"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only topic-search papers published on or after this date (YYYY-MM-DD)."},"toDate":{"type":"string","minLength":10,"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only topic-search papers published on or before this date (YYYY-MM-DD)."},"maxPapers":{"type":"integer","minimum":1,"maximum":25,"description":"Papers to analyse, at most 25 (default 10); seeds count toward it."},"field":{"type":"string","minLength":2,"maxLength":80,"description":"Field or discipline keyword added to the topic search, e.g. \"machine learning\"."},"mode":{"type":"string","enum":["fast","full"],"description":"fast: zero model calls (lexical clustering and lexical addressed-check). full (default): one clustering call and one judging call, bounded to one status level."}}},"resultSchema":{"type":"object","properties":{"verdict":{"type":"string","enum":["OPEN_GAPS_FOUND","NO_CLEAR_OPEN_GAPS","NO_GAPS_EXTRACTED"],"description":"OPEN_GAPS_FOUND: at least one theme no scanned citing paper covers. NO_CLEAR_OPEN_GAPS: themes found but each looks addressed. NO_GAPS_EXTRACTED: no future-work statements found."},"confidence":{"type":"integer","description":"0-100 = 50 x share of papers read in full text + 50 x mean share of each theme's source papers whose citing works were retrieved. Evidence depth, not the odds a gap is real."},"headline":{"type":"string","description":"One-sentence human summary led by the top opportunity."},"nextStep":{"type":"string","description":"The concrete next action."},"topOpportunity":{"anyOf":[{"type":"object","description":"id, title, status, score, independentPapers, and the first supporting quote with its paper title and URL."},{"type":"null"}]},"partial":{"type":"boolean","description":"True when the request deadline was reached or citing works could not be retrieved for most themes; see coverage.failures."},"query":{"type":"object","description":"Echo of query, seeds, field and date range."},"mode":{"type":"string","enum":["fast","full"]},"papers":{"type":"array","description":"Analysed source papers with where their text came from (ar5iv, europepmc or abstract only) and how many statements each yielded.","items":{"type":"object","properties":{"title":{"type":"string"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}]},"arxivId":{"anyOf":[{"type":"string"},{"type":"null"}]},"year":{"anyOf":[{"type":"integer"},{"type":"null"}]},"authors":{"type":"array","items":{"type":"string"}},"citedByCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"url":{"type":"string"},"seed":{"type":"boolean"},"textSource":{"type":"string","enum":["ar5iv","europepmc","abstract"]},"statements":{"type":"integer"},"citingChecked":{"type":"boolean"}}}},"opportunities":{"type":"array","description":"Clusters of future-work statements, best score first.","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","description":"One-line opportunity title (model-written in full mode, else the strongest member sentence)."},"titleBy":{"type":"string","enum":["model","lexical"]},"status":{"type":"string","enum":["OPEN","POSSIBLY_ADDRESSED","ADDRESSED"],"description":"Computed in code from lexical overlap with later citing papers; a verified model verdict moves it at most one level."},"score":{"type":"integer","description":"0-100: 100 x openFactor x (0.2 + 0.8 x (0.4 recurrence + 0.3 recency + 0.3 momentum)); openFactor 1 / 0.5 / 0.1 for OPEN / POSSIBLY_ADDRESSED / ADDRESSED."},"scoreParts":{"type":"object","description":"recurrence, recency, momentum, quality, openFactor."},"independentPapers":{"type":"integer","description":"Source papers with pairwise disjoint author sets."},"sourcePapers":{"type":"integer"},"statusDecidedBy":{"type":"string","enum":["lexical","lexical+judge"]},"statusNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressedCheck":{"type":"object","description":"papersChecked / papersTotal and citingWorksScanned: how much citing evidence backs an OPEN status."},"evidence":{"type":"array","description":"Exact sentences with paper, section and character span (section text slice(start, end) equals quote).","items":{"type":"object","properties":{"statementId":{"type":"string"},"paper":{"type":"object"},"section":{"type":"object"},"span":{"type":"object"},"quote":{"type":"string"},"cue":{"type":"string"},"basis":{"type":"string"}}}},"candidateCitingPapers":{"type":"array","description":"Later citing papers with lexical coverage, shared terms and the judge verdict with its verified quote.","items":{"type":"object"}}}}},"llmCalls":{"type":"integer","description":"Model requests issued: 0 in fast mode, at most 2 in full mode."},"decidedBy":{"type":"string","enum":["code","code+model"],"description":"code+model when a verified model output (clustering or judgment) was used."},"coverage":{"type":"object","description":"Papers analysed, full-text count, statements, clusters, citing works scanned, quote verification, upstream call budget, failures."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"verdict":{"type":"string","enum":["OPEN_GAPS_FOUND","NO_CLEAR_OPEN_GAPS","NO_GAPS_EXTRACTED"],"description":"OPEN_GAPS_FOUND: at least one theme no scanned citing paper covers. NO_CLEAR_OPEN_GAPS: themes found but each looks addressed. NO_GAPS_EXTRACTED: no future-work statements found."},"confidence":{"type":"integer","description":"0-100 = 50 x share of papers read in full text + 50 x mean share of each theme's source papers whose citing works were retrieved. Evidence depth, not the odds a gap is real."},"headline":{"type":"string","description":"One-sentence human summary led by the top opportunity."},"nextStep":{"type":"string","description":"The concrete next action."},"topOpportunity":{"anyOf":[{"type":"object","description":"id, title, status, score, independentPapers, and the first supporting quote with its paper title and URL."},{"type":"null"}]},"partial":{"type":"boolean","description":"True when the request deadline was reached or citing works could not be retrieved for most themes; see coverage.failures."},"query":{"type":"object","description":"Echo of query, seeds, field and date range."},"mode":{"type":"string","enum":["fast","full"]},"papers":{"type":"array","description":"Analysed source papers with where their text came from (ar5iv, europepmc or abstract only) and how many statements each yielded.","items":{"type":"object","properties":{"title":{"type":"string"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}]},"arxivId":{"anyOf":[{"type":"string"},{"type":"null"}]},"year":{"anyOf":[{"type":"integer"},{"type":"null"}]},"authors":{"type":"array","items":{"type":"string"}},"citedByCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"url":{"type":"string"},"seed":{"type":"boolean"},"textSource":{"type":"string","enum":["ar5iv","europepmc","abstract"]},"statements":{"type":"integer"},"citingChecked":{"type":"boolean"}}}},"opportunities":{"type":"array","description":"Clusters of future-work statements, best score first.","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","description":"One-line opportunity title (model-written in full mode, else the strongest member sentence)."},"titleBy":{"type":"string","enum":["model","lexical"]},"status":{"type":"string","enum":["OPEN","POSSIBLY_ADDRESSED","ADDRESSED"],"description":"Computed in code from lexical overlap with later citing papers; a verified model verdict moves it at most one level."},"score":{"type":"integer","description":"0-100: 100 x openFactor x (0.2 + 0.8 x (0.4 recurrence + 0.3 recency + 0.3 momentum)); openFactor 1 / 0.5 / 0.1 for OPEN / POSSIBLY_ADDRESSED / ADDRESSED."},"scoreParts":{"type":"object","description":"recurrence, recency, momentum, quality, openFactor."},"independentPapers":{"type":"integer","description":"Source papers with pairwise disjoint author sets."},"sourcePapers":{"type":"integer"},"statusDecidedBy":{"type":"string","enum":["lexical","lexical+judge"]},"statusNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressedCheck":{"type":"object","description":"papersChecked / papersTotal and citingWorksScanned: how much citing evidence backs an OPEN status."},"evidence":{"type":"array","description":"Exact sentences with paper, section and character span (section text slice(start, end) equals quote).","items":{"type":"object","properties":{"statementId":{"type":"string"},"paper":{"type":"object"},"section":{"type":"object"},"span":{"type":"object"},"quote":{"type":"string"},"cue":{"type":"string"},"basis":{"type":"string"}}}},"candidateCitingPapers":{"type":"array","description":"Later citing papers with lexical coverage, shared terms and the judge verdict with its verified quote.","items":{"type":"object"}}}}},"llmCalls":{"type":"integer","description":"Model requests issued: 0 in fast mode, at most 2 in full mode."},"decidedBy":{"type":"string","enum":["code","code+model"],"description":"code+model when a verified model output (clustering or judgment) was used."},"coverage":{"type":"object","description":"Papers analysed, full-text count, statements, clusters, citing works scanned, quote verification, upstream call budget, failures."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"query":"parameter-efficient fine-tuning of large language models","maxPapers":8,"mode":"fast"},"openapiOperation":{"operationId":"future_work_miner","summary":"Open Research Opportunity Miner","description":"Leads with a verdict (OPEN_GAPS_FOUND, NO_CLEAR_OPEN_GAPS or NO_GAPS_EXTRACTED), a confidence, a headline naming the top gap with its quoted evidence, and the next step. Collects papers for a topic or seed list (arXiv ids or URLs, DOIs, PMIDs; arXiv and OpenAlex search), reads full text from ar5iv or Europe PMC, and extracts future-work, limitation and open-question sentences in code with exact section spans. Near-duplicates are clustered across papers, then each cluster is checked against later citing works (OpenAlex cites, Semantic Scholar citation contexts) and marked OPEN, POSSIBLY_ADDRESSED or ADDRESSED. Scores combine recurrence across independent author groups, recency, citation momentum and openness with documented formulas. mode \"fast\" makes zero model calls; the default makes two (cluster wording, addressed judgment) and lets them move a status at most one level. OPEN means no scanned citing paper covered the theme, not that nobody has: the check reads titles, abstracts and citation contexts of up to a few hundred citing works, not their full text. Papers without open full text contribute only abstracts.\n\nPrice: 1.50 USDC on Base (x402).","x-x402-price-usdc":"1.50","x-x402-amount":"1500000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"1.50"}},"x-audience":"research","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/future-work-miner","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","minLength":3,"maxLength":300,"description":"Research topic, e.g. \"parameter-efficient fine-tuning of language models\"."},"seeds":{"type":"array","maxItems":25,"items":{"type":"string","minLength":5,"maxLength":200},"description":"Seed papers you already have: arXiv ids or URLs (2106.09685, arXiv:1706.03762, arxiv.org/abs/...), DOIs or doi.org URLs, or PMIDs (PMID:12345678 or a PubMed URL). Always analysed, not date-filtered."},"fromDate":{"type":"string","minLength":10,"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only topic-search papers published on or after this date (YYYY-MM-DD)."},"toDate":{"type":"string","minLength":10,"maxLength":10,"pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Only topic-search papers published on or before this date (YYYY-MM-DD)."},"maxPapers":{"type":"integer","minimum":1,"maximum":25,"description":"Papers to analyse, at most 25 (default 10); seeds count toward it."},"field":{"type":"string","minLength":2,"maxLength":80,"description":"Field or discipline keyword added to the topic search, e.g. \"machine learning\"."},"mode":{"type":"string","enum":["fast","full"],"description":"fast: zero model calls (lexical clustering and lexical addressed-check). full (default): one clustering call and one judging call, bounded to one status level."}}},"example":{"query":"parameter-efficient fine-tuning of large language models","maxPapers":8,"mode":"fast"}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"verdict":{"type":"string","enum":["OPEN_GAPS_FOUND","NO_CLEAR_OPEN_GAPS","NO_GAPS_EXTRACTED"],"description":"OPEN_GAPS_FOUND: at least one theme no scanned citing paper covers. NO_CLEAR_OPEN_GAPS: themes found but each looks addressed. NO_GAPS_EXTRACTED: no future-work statements found."},"confidence":{"type":"integer","description":"0-100 = 50 x share of papers read in full text + 50 x mean share of each theme's source papers whose citing works were retrieved. Evidence depth, not the odds a gap is real."},"headline":{"type":"string","description":"One-sentence human summary led by the top opportunity."},"nextStep":{"type":"string","description":"The concrete next action."},"topOpportunity":{"anyOf":[{"type":"object","description":"id, title, status, score, independentPapers, and the first supporting quote with its paper title and URL."},{"type":"null"}]},"partial":{"type":"boolean","description":"True when the request deadline was reached or citing works could not be retrieved for most themes; see coverage.failures."},"query":{"type":"object","description":"Echo of query, seeds, field and date range."},"mode":{"type":"string","enum":["fast","full"]},"papers":{"type":"array","description":"Analysed source papers with where their text came from (ar5iv, europepmc or abstract only) and how many statements each yielded.","items":{"type":"object","properties":{"title":{"type":"string"},"doi":{"anyOf":[{"type":"string"},{"type":"null"}]},"arxivId":{"anyOf":[{"type":"string"},{"type":"null"}]},"year":{"anyOf":[{"type":"integer"},{"type":"null"}]},"authors":{"type":"array","items":{"type":"string"}},"citedByCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"url":{"type":"string"},"seed":{"type":"boolean"},"textSource":{"type":"string","enum":["ar5iv","europepmc","abstract"]},"statements":{"type":"integer"},"citingChecked":{"type":"boolean"}}}},"opportunities":{"type":"array","description":"Clusters of future-work statements, best score first.","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","description":"One-line opportunity title (model-written in full mode, else the strongest member sentence)."},"titleBy":{"type":"string","enum":["model","lexical"]},"status":{"type":"string","enum":["OPEN","POSSIBLY_ADDRESSED","ADDRESSED"],"description":"Computed in code from lexical overlap with later citing papers; a verified model verdict moves it at most one level."},"score":{"type":"integer","description":"0-100: 100 x openFactor x (0.2 + 0.8 x (0.4 recurrence + 0.3 recency + 0.3 momentum)); openFactor 1 / 0.5 / 0.1 for OPEN / POSSIBLY_ADDRESSED / ADDRESSED."},"scoreParts":{"type":"object","description":"recurrence, recency, momentum, quality, openFactor."},"independentPapers":{"type":"integer","description":"Source papers with pairwise disjoint author sets."},"sourcePapers":{"type":"integer"},"statusDecidedBy":{"type":"string","enum":["lexical","lexical+judge"]},"statusNote":{"anyOf":[{"type":"string"},{"type":"null"}]},"addressedCheck":{"type":"object","description":"papersChecked / papersTotal and citingWorksScanned: how much citing evidence backs an OPEN status."},"evidence":{"type":"array","description":"Exact sentences with paper, section and character span (section text slice(start, end) equals quote).","items":{"type":"object","properties":{"statementId":{"type":"string"},"paper":{"type":"object"},"section":{"type":"object"},"span":{"type":"object"},"quote":{"type":"string"},"cue":{"type":"string"},"basis":{"type":"string"}}}},"candidateCitingPapers":{"type":"array","description":"Later citing papers with lexical coverage, shared terms and the judge verdict with its verified quote.","items":{"type":"object"}}}}},"llmCalls":{"type":"integer","description":"Model requests issued: 0 in fast mode, at most 2 in full mode."},"decidedBy":{"type":"string","enum":["code","code+model"],"description":"code+model when a verified model output (clustering or judgment) was used."},"coverage":{"type":"object","description":"Papers analysed, full-text count, statements, clusters, citing works scanned, quote verification, upstream call budget, failures."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/future-work-miner/","docsJson":"https://agents.writerslogic.com/docs/future-work-miner.json","sample":"https://agents.writerslogic.com/api/v1/samples/future-work-miner","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}