Skip to main content
Challenge

Build a FollowTheMoney Entity Search Re-ranker

Intercept search queries to a local yente API appliance and apply secondary re-ranking based on custom risk criteria. Elevate PEP and sanctions entities above generic watchlist hits using a proxy layer.

CybersecurityHosted by Vera
Challenge brief

What you are building

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

Intercept search queries to a local yente API appliance and apply secondary re-ranking based on custom risk criteria. Elevate PEP and sanctions entities above generic watchlist hits using a proxy layer.

Compliance Systems Engineer

Receive standardized HTTP search queries intended for the yente match endpoint.

Forward queries to local yente instance and parse the returned FollowTheMoney entity array.

Re-rank the results by extracting and scoring risk tags like PEP or sanctions presence.

Return the re-ordered entity list in the native yente JSON response format.

A developer testing harness showing original yente ranking versus the adjusted risk-weighted re-ranking.

Execute queries against a local yente instance loaded with OpenSanctions default datasets. Starter examples below are synthetic. They are not downloaded records.

OpenSanctions data toolkit Leverage FollowTheMoney entity schemas and OpenSanctions match endpoints supported by yente.

pydantic-ai, fastapi, httpx. Pydantic AI provides robust structured parsing for validating intercepted queries and dynamically scoring entity risk attributes. LLM capable of structured evaluation to identify implicit risk signals in entity text fields and rank matches.

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 intercepts and forwards queries to a local yente backend.

Identifies and elevates entities flagged with specific risk topics (e.g., sanction).

Outputs the modified result array maintaining strict yente HTTP response schema compatibility.

```json [ { "input": { "query_params": { "q": "John Smith" }, "original_yente_response": { "results": [ { "id": "1", "topics": [ "crime" ] }, { "id": "2", "topics": [ "sanction" ] } ] } }, "expected_output": { "reordered_results": [ { "id": "2", "topics": [ "sanction" ], "rank_boost": true }, { "id": "1", "topics": [ "crime" ], "rank_boost": false } ], "status": "success", "note": "simplified synthetic app records, not complete official schema files." } }, { "input": { "query_params": { "q": "ACME Corp" }, "original_yente_response": { "results": [ { "id": "3", "topics": [] } ] } }, "expected_output": { "reordered_results": [ { "id": "3", "topics": [], "rank_boost": false } ], "status": "success", "note": "simplified synthetic app records, not complete official schema files." } } ] ```

Operates on mock compliance search logs and public OpenSanctions data without automated enforcement. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Operates on mock compliance search logs and public OpenSanctions data without automated enforcement. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Successfully intercepts and forwards queries to a local yente backend. Identifies and elevates entities flagged with specific risk topics (e.g., sanction). Outputs the modified result array maintaining strict yente HTTP response schema compatibility.

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

Receive standardized HTTP search queries intended for the yente match endpoint. Forward queries to local yente instance and parse the returned FollowTheMoney entity array. Re-rank the results by extracting and scoring risk tags like PEP or sanctions presence. Return the re-ordered entity list in the native yente JSON response format.

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 intercepts and forwards queries to a local yente backend. Identifies and elevates entities flagged with specific risk topics (e.g., sanction). Outputs the modified result array maintaining strict yente HTTP response schema compatibility.

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 developer testing harness showing original yente ranking versus the adjusted risk-weighted re-ranking.

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

Operates on mock compliance search logs and public OpenSanctions data without automated enforcement.

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

  • Receive standardized HTTP search queries intended for the yente match endpoint.

  • Forward queries to local yente instance and parse the returned FollowTheMoney entity array.

  • Re-rank the results by extracting and scoring risk tags like PEP or sanctions presence.

  • Return the re-ordered entity list in the native yente JSON response format.

Resources and assets

Reference links and supporting material

Dataset notes

Execute queries against a local yente instance loaded with OpenSanctions default datasets. 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
  • Receive standardized HTTP search queries intended for the yente match endpoint. Forward queries to local ye...
  • Successfully intercepts and forwards queries to a local yente backend. Identifies and elevates entities fla...
  • A developer testing harness showing original yente ranking versus the adjusted risk-weighted re-ranking.
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 Entity Search Re-ranker