FutureSearch Logofuturesearch
  • Solutions
  • Pricing
  • Research
  • Docs
  • Evals
  • Blog
  • Company
  • LiteLLM Checker
  • Get Researchers
FutureSearch Logo

General inquiry? You can reach us at hello@futuresearch.ai.

Company

Team & CareersPressPrivacy PolicyTerms of Service

Developers

SDK DocsAPI ReferenceCase StudiesGitHubSupport

Integrations

Claude CodeCursorChatGPT CodexClaude.ai

Follow Us

X (Twitter)@dschwarz26LinkedIn
FutureSearchdocs
Your research team
Installation
  • All install methods
  • Claude.ai
  • Claude Cowork
  • Claude Code
  • Web App
  • Python SDK
  • Skill
  • MCP Server
Reference
  • API Key
  • classify
  • dedupe
  • forecast
  • merge
  • rank
  • agent_map
  • Progress Monitoring
  • Chaining Operations
Guides
  • LLM-Powered Data Labeling
  • Add a Column via Web Research
  • Classify and Label Rows
  • Deduplicate Training Data
  • Filter a Dataset Intelligently
  • Find Profitable Polymarket Trades
  • Forecast Outcomes for a List of Entities
  • Value a Private Company
  • Join Tables Without Shared Keys
  • Rank Data by External Metrics
  • Resolve Duplicate Entities
  • Scale Deduplication to 20K Rows
  • Turn Claude into an Accurate Forecaster
Case Studies
  • Deduplicate Contact Lists
  • Deduplicate CRM Records
  • Enrich Contacts with Company Data
  • Fuzzy Match Across Tables
  • Link Records Across Medical Datasets
  • LLM Cost vs. Accuracy
  • Merge Costs and Speed
  • Merge Thousands of Records
  • Multi-Stage Lead Qualification
  • Research and Rank Web Data
  • Run 10,000 LLM Web Research Agents
  • Score Cold Leads via Web Research
  • Score Leads from Fragmented Data
  • Screen 10,000 Rows
  • Screen Job Listings
  • Screen Stocks by Economic Sensitivity
  • Screen Stocks by Investment Thesis
FutureSearchby futuresearch
by futuresearch

Filter a Dataset Intelligently

Screening rows by nuanced, multi-part criteria that require reading each record individually. Here, 3,616 Hacker News "Who's Hiring" posts are filtered for postings that are remote-friendly, senior-level, and disclose salary -- three rules that can't be reduced to keyword matching.

MetricValue
Rows processed3,616
Rows passing filter~230 (6.4%)
Total cost~$4-11
Time~8-10 minutes

Go to futuresearch.ai/app, upload hn_jobs_screen.csv, and enter:

Screen to find job postings that meet ALL THREE criteria: 1. Remote-friendly: explicitly allows remote work, hybrid, WFH, distributed teams, or "work from anywhere". 2. Senior-level: title contains Senior/Staff/Lead/Principal/Architect, OR requires 5+ years experience, OR mentions "founding engineer". 3. Salary disclosed: specific compensation numbers are mentioned. "$150K-200K" qualifies. "Competitive" or "DOE" does not.

Of 3,616 postings, about 230 pass the filter (6.4%). Results take about 8 minutes.

Add the FutureSearch connector if you haven't already. Then upload hn_jobs_screen.csv and ask Claude:

Screen to find job postings that meet ALL THREE criteria: 1. Remote-friendly: explicitly allows remote work, hybrid, WFH, distributed teams, or "work from anywhere". 2. Senior-level: title contains Senior/Staff/Lead/Principal/Architect, OR requires 5+ years experience, OR mentions "founding engineer". 3. Salary disclosed: specific compensation numbers are mentioned. "$150K-200K" qualifies. "Competitive" or "DOE" does not.

Of 3,616 postings, about 230 pass the filter (6.4%). Results take about 8 minutes.

Add FutureSearch to Claude Code if you haven't already:

claude mcp add futuresearch --scope project --transport http https://mcp.futuresearch.ai/mcp

Download the dataset: hn_jobs_screen.csv (3,616 Hacker News "Who's Hiring" posts, March 2020 through January 2026). With the CSV in your working directory, tell Claude:

Screen hn_jobs_screen.csv to find job postings that meet ALL THREE criteria:

1. Remote-friendly: explicitly allows remote work, hybrid, WFH, distributed
   teams, or "work from anywhere"
2. Senior-level: title contains Senior/Staff/Lead/Principal/Architect, OR
   requires 5+ years experience, OR mentions "founding engineer"
3. Salary disclosed: specific compensation numbers are mentioned.
   "$150K-200K" qualifies. "Competitive" or "DOE" does not.

Claude calls FutureSearch's classify MCP tool with your criteria, then polls for progress until the operation completes:

Tool: futuresearch_classify
├─ task: "Find job postings that meet ALL THREE criteria: 1. Remote-friendly..."
├─ input_csv: "/Users/you/hn_jobs_screen.csv"
└─ response_schema: null

→ Submitted: 3,616 rows for screening.
  Session: https://futuresearch.ai/sessions/b47f3d3d-...
  Task ID: 8a2f...

Tool: futuresearch_progress
├─ task_id: "8a2f..."
→ Running: 0/3616 complete, 3616 running (18s elapsed)

Tool: futuresearch_progress
→ Running: 1204/3616 complete, 2412 running (142s elapsed)

...

Tool: futuresearch_progress
→ Completed: 3616/3616 (0 failed) in 478s.

Tool: futuresearch_results
├─ task_id: "8a2f..."
├─ output_path: "/Users/you/qualified_jobs.csv"
→ Saved 232 rows to /Users/you/qualified_jobs.csv

Under the hood, FutureSearch runs a two-pass pipeline: a fast first pass triages all 3,616 rows (gemini-3-flash-preview, 12.7M tokens, $10.89), then a careful second pass re-evaluates the borderline cases with a stronger model (claude-sonnet-4, 224K tokens, $0.13).

232 of 3,616 postings passed (6.4%). View the session.

Screening is binary classification: use classify() with categories=["yes", "no"] and only passing rows are returned.

pip install futuresearch
export FUTURESEARCH_API_KEY=your_key_here  # Get one at futuresearch.ai/app/api-key

To follow along, right click this link and save the CSV file to your computer (3,616 Hacker News "Who's Hiring" posts, March 2020 through January 2026).

import asyncio
import pandas as pd
from pydantic import BaseModel, Field
from futuresearch.ops import classify

jobs = pd.read_csv("hn_jobs_screen.csv")  # 3,616 job postings

class JobScreenResult(BaseModel):
    qualifies: bool = Field(description="True if meets ALL criteria")

async def main():
    result = await classify(
        task="""
        A job posting qualifies if it meets ALL THREE criteria:

        1. Remote-friendly: Explicitly allows remote work, hybrid, WFH,
           distributed teams, or "work from anywhere".

        2. Senior-level: Title contains Senior/Staff/Lead/Principal/Architect,
           OR requires 5+ years experience, OR mentions "founding engineer".

        3. Salary disclosed: Specific compensation numbers are mentioned.
           "$150K-200K" qualifies. "Competitive" or "DOE" does not.
        """,
        categories=["yes", "no"],
        input=jobs,
        response_model=JobScreenResult,
    )

    qualified = result.data
    print(f"Qualified: {len(qualified)} of {len(jobs)}")
    return qualified

qualified_jobs = asyncio.run(main())

216 of 3,616 postings passed (6.0%). View the session.

Results

The data reveals a clear trend in tech hiring over the pandemic years:

YearQualifiedTotalPass Rate
2020105941.7%
2021271,0332.6%
2022367584.7%
2023394129.5%
20243938710.1%
20255940614.5%
202662623.1%

In early 2020, only 1.7% of postings met all three criteria. By 2025, 14.5% did. More companies now offer remote work, disclose salaries upfront, and hire senior engineers through Hacker News.

Sample qualified postings:

Bloomberg | Senior Software Engineer | Hybrid (NYC) | $160k - $240k USD + bonus
KoBold Metals | Senior Infrastructure Engineer | Remote (USA) | $170k - $230k
EnergyHub | Director of Engineering | Remote (US) | Salary $225k
Gladly | Staff Software Engineer | Remote (US, Colombia) | $60k–$215k + Equity

Built with FutureSearch. See the classify documentation for more options including batch size tuning and async execution.