Skip to main content
Back to Prompt Library
implementation

Build the application

Inspect the original prompt language first, then copy or adapt it once you know how it fits your workflow.

Linked challenge: Build a Frictionless Vendor Onboarding and Yente Assessor

Format
Code-aware
Lines
100
Sections
11
Linked challenge
Build a Frictionless Vendor Onboarding and Yente Assessor

Prompt source

Original prompt text with formatting preserved for inspection.

100 lines
11 sections
No variables
1 code block
## Build
Validate tabular vendor onboarding submissions using Frictionless data schemas and screen normalized records against local Yente endpoints. Generate structured pre-activation compliance packets.

## User
An analyst data-import quarantine and correction workspace with row-level Frictionless validation.

## Workflow
1. Validate tabular supplier onboarding files against Frictionless Data schema constraints.
2. Extract normalized corporate entity rows containing tax identifiers and jurisdictions.
3. Perform automated screening against FollowTheMoney datasets via a local yente API.
4. Compile an onboarding recommendation dossier assigning risk status and data quality scores.

## Interface
A vendor risk assessment console displaying screening match scores, license timelines, and approval controls.

## Data
Construct synthetic supplier onboarding records and run a local yente service configured with test watchlists.
Starter examples below are synthetic. They are not downloaded records.

## Source
[OpenSanctions data toolkit](https://raw.githubusercontent.com/opensanctions/yente/main/README.md)
Use yente HTTP endpoints to match supplier entities against FollowTheMoney schemas as shown in source 2.

## Tools
pydantic-ai, frictionless, httpx.
Pydantic AI provides rigorous schema-driven data flow and type validation across screening requests and outputs.
Fast hosted model to formulate human-readable risk summaries via API.

## Deliverables
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.

## Acceptance
- Invokes local yente /match API with supplier legal name and country.
- Checks supplier business license expiration against a 90-day minimum horizon.
- Outputs an onboarding clearance decision artifact with scheduled audit milestones.

## Starter Examples
```json
[
  {
    "input": {
      "frictionless_resource": {
        "name": "vendors.csv",
        "schema": {
          "fields": [
            {
              "name": "legal_name",
              "type": "string"
            },
            {
              "name": "country",
              "type": "string"
            }
          ]
        }
      },
      "row_data": {
        "legal_name": "Nordic Marine Logistics",
        "country": "SE"
      },
      "yente_response": {
        "match_count": 0
      }
    },
    "expected_output": {
      "vendor": "Nordic Marine Logistics",
      "frictionless_valid": true,
      "sanctions_match_found": false,
      "clearance_status": "approved"
    }
  },
  {
    "input": {
      "frictionless_resource": {
        "name": "vendors.csv",
        "schema": {
          "fields": [
            {
              "name": "legal_name",
              "type": "string"
            },
            {
              "name": "country",
              "type": "string"
            }
          ]
        }
      },
      "row_data": {
        "legal_name": "Black Sea Bunkerage",
        "country": "CY"
      },
      "yente_response": {
        "match_count": 1,
        "top_score": 0.95
      }
    },
    "expected_output": {
      "vendor": "Black Sea Bunkerage",
      "frictionless_valid": true,
      "sanctions_match_found": true,
      "clearance_status": "rejected_watchlist_hit"
    }
  }
]
```

## Safety
Demonstration tool uses mock vendor entities. Does not communicate with live government or financial screening gateways.
Use mock external writes. Require human review before any real deployment.

Adaptation plan

Keep the source stable, then change the prompt in a predictable order so the next run is easier to evaluate.

Keep stable

Hold the task contract and output shape stable so generated implementations remain comparable.

Tune next

Update libraries, interfaces, and environment assumptions to match the stack you actually run.

Verify after

Test failure handling, edge cases, and any code paths that depend on hidden context or secrets.