Skip to main content
Challenge

Build a FollowTheMoney Custom Watchlist Payload Generator

Convert proprietary internal fraud lists into valid FollowTheMoney entity schemas for local yente API ingestion. Map custom attributes to open-source formats and validate entity relationships.

CybersecurityHosted by Vera
Challenge brief

What you are building

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

Convert proprietary internal fraud lists into valid FollowTheMoney entity schemas for local yente API ingestion. Map custom attributes to open-source formats and validate entity relationships.

Compliance data engineer

Ingest raw internal fraud records containing name, aliases, and known fraudulent birth dates.

Map unstructured fields to the strict FollowTheMoney entity data model schema using LLM extraction.

Generate associated relationship objects linking affiliated fraudulent companies and individuals.

Package the transformed entities into a JSON stream ready for local yente indexing.

A schema mapping dashboard displaying raw fraud data inputs and generated FollowTheMoney JSON payloads.

Create 50 synthetic internal flat-file fraud records with varying property structures. Starter examples below are synthetic. They are not downloaded records.

OpenSanctions data toolkit Integrates directly with yente documentation supporting custom watchlists and FollowTheMoney entities from source excerpt 2.

pydantic-ai, fastapi, pydantic. Pydantic AI enforces strict typing and validation, ensuring generated JSON outputs match exactly with the required FollowTheMoney entity schema. Any modern LLM capable of robust JSON schema output via Pydantic.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Successfully maps raw inputs to standard FollowTheMoney schema types (e.g., Person, Company).

Validates generated JSON against strict FTM schema properties using Pydantic.

Outputs an array of entity objects structured for yente API ingestion.

```json [ { "input": { "fraudster_name": "Ivan Petrov", "birth_year": 1975, "fraud_type": "Identity Theft", "record_type": "simplified synthetic app record" }, "expected_output": { "schema": "Person", "properties": { "name": [ "Ivan Petrov" ], "birthDate": [ "1975" ], "topics": [ "fraud" ] } } }, { "input": { "company": "Fake Co Ltd", "registration": "999888", "record_type": "simplified synthetic app record" }, "expected_output": { "schema": "Company", "properties": { "name": [ "Fake Co Ltd" ], "registrationNumber": [ "999888" ] } } } ] ```

Processes mock internal data locally, avoiding exposure of real fraud intelligence to external third parties. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Processes mock internal data locally, avoiding exposure of real fraud intelligence to external third parties. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Successfully maps raw inputs to standard FollowTheMoney schema types (e.g., Person, Company). Validates generated JSON against strict FTM schema properties using Pydantic. Outputs an array of entity objects structured for yente API ingestion.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

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
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Ingest raw internal fraud records containing name, aliases, and known fraudulent birth dates. Map unstructured fields to the strict FollowTheMoney entity data model schema using LLM extraction. Generate associated relationship objects linking affiliated fraudulent companies and individuals. Package the transformed entities into a JSON stream ready for local yente indexing.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Successfully maps raw inputs to standard FollowTheMoney schema types (e.g., Person, Company). Validates generated JSON against strict FTM schema properties using Pydantic. Outputs an array of entity objects structured for yente API ingestion.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

A schema mapping dashboard displaying raw fraud data inputs and generated FollowTheMoney JSON payloads.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Processes mock internal data locally, avoiding exposure of real fraud intelligence to external third parties.

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

  • Ingest raw internal fraud records containing name, aliases, and known fraudulent birth dates.

  • Map unstructured fields to the strict FollowTheMoney entity data model schema using LLM extraction.

  • Generate associated relationship objects linking affiliated fraudulent companies and individuals.

  • Package the transformed entities into a JSON stream ready for local yente indexing.

Resources and assets

Reference links and supporting material

Dataset notes

Create 50 synthetic internal flat-file fraud records with varying property structures. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Pydantic AI

Typed Python agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest raw internal fraud records containing name, aliases, and known fraudulent birth dates. Map unstructu...
  • Successfully maps raw inputs to standard FollowTheMoney schema types (e.g., Person, Company). Validates gen...
  • A schema mapping dashboard displaying raw fraud data inputs and generated FollowTheMoney JSON payloads.
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

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

Action Space
  • Pydantic AI · Optional
Orchestration
  • Pydantic AI · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a FollowTheMoney Custom Watchlist Payload Generator