Skip to main content
Challenge

Automate FOIA Request Processing

This challenge requires designing and implementing an intelligent automation system to efficiently process and filter high volumes of incoming Freedom of Information Act (FOIA) requests. Leveraging Vercel's AI SDK, participants will build a responsive web interface for request submission and monitoring. OpenAI o4-mini will serve as the core AI engine for document classification, summarization, and anomaly detection to identify spam or 'robo-requests'. Key aspects include integrating Unstructured.io for robust document parsing, orchestrating the multi-step workflow with Lindy for compliance and auditing, and setting up Langsmith for comprehensive observability of AI agent decisions and human review queues. The solution aims to streamline administrative tasks, reduce human workload, and ensure that legitimate FOIA requests are processed accurately and efficiently.

Workflow AutomationHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Build an AI SDK application with OpenAI o4-mini and Lindy to automate the processing, classification, and routing of high-volume FOIA requests.

Delivery guide

How work is evaluated

Evaluation

Evaluate the system's accuracy in classifying FOIA requests, efficiency in processing, and effectiveness in detecting and filtering 'robo-requests'.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
6 scoring checks
Binary
6 pass or fail dimensions
Ordinal
0 scaled dimensions
Dimension 1

spam_detection_rate

Checks if a predefined set of known spam/robo-requests are correctly identified and filtered out.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 2

legitimate_request_routing

Verifies if legitimate requests are correctly classified and routed to the appropriate next step in the Lindy workflow.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 3

output_format_compliance

Ensures that extracted information adheres to the expected structured format (e.g., specific JSON schema).

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 4

classification_accuracy

Percentage of FOIA requests correctly classified into their respective categories. • target: 0.95 • range: 0.85-1

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 5

processing_time_per_request_sec

Average time (in seconds) taken to process a single FOIA request from input to classification. • target: 3 • range: 1-10

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Dimension 6

data_extraction_f1_score

F1 score for accurately extracting all key information fields from legitimate requests. • target: 0.9 • range: 0.8-1

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Master building AI-powered web applications using Vercel's AI SDK, focusing on streaming responses and tool integrations for a responsive user experience.

  • Implement document parsing and information extraction using Unstructured.io to process various FOIA request formats (PDFs, emails, text files).

  • Leverage OpenAI o4-mini for intelligent classification of incoming requests (e.g., legitimate, spam, ambiguous) and for summarizing key request details.

  • Design and orchestrate an automated FOIA request processing workflow using Lindy, integrating AI classification steps, human review queues, and external system updates.

  • Develop an anomaly detection module using OpenAI o4-mini to flag suspicious or repetitive 'robo-requests' based on patterns in the request text and metadata.

  • Integrate Langsmith for comprehensive observability, tracing AI agent decisions, tool calls, and human review steps throughout the FOIA processing pipeline for auditability.

  • Build a user-friendly dashboard using the AI SDK to monitor the status of requests, review classified documents, and manage human intervention points.

Resources and assets

Reference links and supporting material

Dataset notes

Sample data for 2 tasks

Challenge setup

Evaluate the system's accuracy in classifying FOIA requests, efficiency in processing, and effectiveness in detecting and filtering 'robo-requests'.

Challenge input

Array of JSON objects, each with 'request_id' (string) and 'content' (string) fields.

Agent execution

No agent tool is listed for this challenge.

Evaluated output

JSON object where keys are 'request_id's and values are predicted classification categories (string).

Evaluation checks
  • Checks if a predefined set of known spam/robo-requests are correctly identified and filtered out.
  • Verifies if legitimate requests are correctly classified and routed to the appropriate next step in the Lin...
  • Ensures that extracted information adheres to the expected structured format (e.g., specific JSON schema).
Configured evaluation evidence
  • Classification Accuracy target: 0.95
  • 2 public reference cases
Configured runtime
  • JavaScript execution harness

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

No tool records are attached.

Evaluation contract

  • spam_detection_rate · Weight 1
  • legitimate_request_routing · Weight 1
  • output_format_compliance · Weight 1
  • classification_accuracy · Weight 1
  • processing_time_per_request_sec · Weight 1
  • data_extraction_f1_score · Weight 1

Metrics

  • classification_accuracy · Target 0.95
  • processing_time_per_request_sec · Target 3
  • data_extraction_f1_score · Target 0.9

Reference cases

  • 2 public reference cases

Workflow tasks

  1. Task 1

    Input: Array of JSON objects, each with 'request_id' (string) and 'content' (string) fields.

    Output: JSON object where keys are 'request_id's and values are predicted classification categories (string).

    Execution harness: JavaScript

  2. Task 2

    Input: JSON object with 'request_id' (string) and 'content' (string) for a legitimate request.

    Output: JSON object with extracted fields: 'requesting_party' (string), 'subject_matter' (string), 'date_range' (string).

    Execution harness: JavaScript

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Automate FOIA Request Processing