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.
| Metric | Value |
|---|---|
| Rows processed | 3,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:
| Year | Qualified | Total | Pass Rate |
|---|---|---|---|
| 2020 | 10 | 594 | 1.7% |
| 2021 | 27 | 1,033 | 2.6% |
| 2022 | 36 | 758 | 4.7% |
| 2023 | 39 | 412 | 9.5% |
| 2024 | 39 | 387 | 10.1% |
| 2025 | 59 | 406 | 14.5% |
| 2026 | 6 | 26 | 23.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.