Prepared for Tangos AI · October 2026

Nimble proof of concept for Tangos investigations

Tangos builds AML investigations from open web and government sources. This page shows how Nimble covers three steps of that work. It also shows how your code calls each one and how we score the results on your cases.

Three use cases

Your code calls Nimble at three steps of an investigation

Use case 1

Links that land on a search page

You sendA URL and the name to look up
You getThe record page itself
Nimble productExtract API with browser actions, driven by your LLM
See how it works
Use case 2

Financial-crime adverse media

You sendA company or person, with aliases
You getOne row per enforcement action or lawsuit, with its source
Nimble productOne Web Search Agent call
See how it works
Use case 3

People who share a name

You sendA name and the identifiers you hold
You getEvery person with that name, each with a verdict and its evidence
Nimble productOne Web Search Agent call with LinkedIn people search
See how it works

Two agents are ready in your Nimble account

Log in to your Nimble account to open them. Each one already has two runs on your sample cases.

wsa_ddfe8b2248e641e5bae31072c26ca5f7

Financial-crime screening

Use case 2. One call per subject returns one row per enforcement action or lawsuit.

wsa_fe14ab2e3c074f54ae33cba3b02d5f1b

Same-name person resolution

Use case 3. One call per name returns every person found, with a verdict for each.

We score each use case on your own cases

One case is one call from your code. We compare what that call returns with what your team found.

Use caseFirst measureSecond measure
Search-page linksThe share of links we have never seen that reach the right recordThe share of lookups where no site needed its own code
Financial-crime mediaThe share of the findings that mattered to you that one call returnsThe accuracy of every returned row, checked by hand
Same-name peopleNo run reports two different people as one personThe share of people with the correct verdict
Audit trailEvery finding keeps a copy of the page, a screenshot, the time it was read and a fingerprint of the fileA finding can be checked again later from its saved copy

We need four things from your team

The trial ends with scores on your cases in the week of 26 October

Week of 12 October

Agents in your account

The two agents are in your Nimble account, with two runs each on your sample cases. We also tested them on companies they had never seen.

Week of 19 October

Walkthrough with your engineers

We walk your engineers through the calls from your code and run your first labelled cases.

Week of 26 October

Scores on your cases

We run your labelled cases and send the scores for each use case, with every run ID.

Use case 2

One agent call returns the financial-crime actions against a subject

Example output from your Nimble account

Input sent: Screen Danske Bank A/S. Entity type: company. Home jurisdiction: Denmark. Known aliases: Danske Bank, Danske Bank A/S. Start by listing every jurisdiction where the subject is incorporated, listed, operates or operated, or has been investigated, then search each one. Return every in-scope event in any jurisdiction, or an empty findings list if there are none.

14 jurisdictions searched:

DenmarkEstoniaLatviaLithuaniaSwedenFinlandNorwayUnited Kingdom (incl. Northern Ireland)IrelandLuxembourgRussiaFranceUnited StatesEuropean Union
DateAuthorityEventRoleHeadline and source
2025-12-13U.S. Department of JusticeOtherSettled or finedDanske Bank confirms conclusion of US Department of Justice probation
2025-01-22Norwegian Financial Supervisory Authority (Finanstilsynet)FineSettled or finedDanske Bank receives administrative fine from the Norwegian Financial Supervisory Authority
2023-01-05U.S. District Court for the Southern District of New YorkCourt rulingSettled or finedSDNY Sentences Danske Bank in Massive AML Scandal
2022-12-14City Court of Copenhagen (Københavns Byret)Court rulingSettled or finedResolution with SCU accepted at the City Court of Copenhagen
2022-12-13Danish Special Crime Unit (SCU, State Prosecutor for Serious Economic and International Crime)SettlementSettled or finedDanske Bank reaches coordinated resolutions with the US and Danish authorities regarding the Estonia matter
2022-12-13U.S. Department of Justice (Criminal Division MLARS) and U.S. Attorney's Office for the Southern District of New YorkGuilty pleaSettled or finedDanske Bank Pleads Guilty to Fraud on U.S. Banks in Multi-Billion Dollar Scheme to Access the U.S. Financial System
2022-12-13U.S. Securities and Exchange CommissionSettlementSettled or finedSEC Charges Danske Bank with Fraud for Misleading Investors about Its Anti-Money Laundering Compliance Failures in Estonia
2022-09-13Central Bank of IrelandFineSettled or finedDanske Bank A/S fined €1,820,000 and reprimanded by the Central Bank of Ireland for transaction monitoring failures in respect of anti-money laundering and terrorist financing systems
2021-08-25U.S. Court of Appeals for the Second CircuitAppealDefendantDanske Bank defeats appeal in U.S. over money laundering scandal
2021-08U.S. District Court for the Eastern District of New YorkCivil suitDefendantDanske Bank sued in New York's Eastern District for aiding and abetting terrorism
2021-02Danish Financial Supervisory Authority (Finanstilsynet)Regulator orderSettled or finedDanish FSA issues sharply critical decision of Danske Bank's AML remediation efforts and orders the bank to engage expert consultants for a period of six months to monitor the implementation of the bank's Financial Crime Plan of May 25, 2020
2020-12U.S. Department of the Treasury, Office of Foreign Assets Control (OFAC)OtherInvestigatedOFAC closes investigation of Danske Bank
2020-11State Prosecutor for the Danish Special Crime UnitChargeAccusedDanish prosecutor adds to initial preliminary charge
2020-11Danish Financial Supervisory Authority (Finanstilsynet)Regulator orderSettled or finedDanish FSA issues Danske Bank inspection report, four orders, and a reprimand
2020-08-24U.S. District Court for the Southern District of New York (Judge Valerie Caproni)Acquittal or dismissalDefendantU.S. judge dismisses lawsuit against Danske Bank over money laundering scandal
2019-03-19Courts of Denmark (Copenhagen City Court; High Court of Eastern Denmark)Civil suitDefendantDanske Bank
2019-02-21U.S. Securities and Exchange CommissionInvestigation openedInvestigatedDanske Bank in dialogue with US securities industry regulator
2019-02-19Estonian Financial Supervision Authority (Finantsinspektsioon)Regulator orderSettled or finedMassive Danske Bank Money Laundering Scandal Continues to Unfold
2019-02Tribunal de Grande Instance de Paris (investigating judge)Investigation openedInvestigatedDanske Bank placed under formal investigation by an investigating judge of the Tribunal de Grande Instance de Paris
2019-01U.S. District Court for the Southern District of New YorkCivil suitDefendantAnd Here Come the Lawyers: Securities Fraud Suits Commence Private Litigation Phase of Danske Bank Scandal
2018-11-28Danish State Prosecutor for Serious Economic and International CrimeChargeAccusedMassive Danske Bank Money Laundering Scandal Continues to Unfold
2018-10-04U.S. Department of JusticeInvestigation openedInvestigatedHow Danske Bank's Estonian money laundering scandal unfolded
2018-05-03Finanstilsynet (Danish Financial Supervisory Authority)Regulator orderSettled or finedAfgørelse om Danske Banks ledelse og styring i estisk hvidvasksag
2017-12Danish public prosecutorFineSettled or finedHow Danske Bank's Estonian money laundering scandal unfolded
Show one row as the API returns it
{
  "url": "https://danskebank.com/news-and-insights/news-archive/company-announcements/2025/ca15122025",
  "category": "money_laundering",
  "headline": "Danske Bank confirms conclusion of US Department of Justice probation",
  "language": "English",
  "authority": "U.S. Department of Justice",
  "event_date": "2025-12-13",
  "event_type": "other",
  "publication": "Danske Bank",
  "jurisdiction": "United States",
  "subject_role": "settling_or_fined",
  "authority_page": false,
  "case_reference": "Company Announcement No. 55/2025",
  "additional_urls": null,
  "allegation_summary": "Danske Bank confirmed that the three-year corporate probation imposed under its December 2022 DOJ plea agreement concluded on 13 December 2025.",
  "subject_name_as_published": "Danske Bank"
}

Input sent: Screen The Boeing Company. Entity type: company. Home jurisdiction: United States. Known aliases: Boeing, The Boeing Company. Start by listing every jurisdiction where the subject is incorporated, listed, operates or operated, or has been investigated, then search each one. Return every in-scope event in any jurisdiction, or an empty findings list if there are none.

12 jurisdictions searched:

United StatesUnited KingdomEuropean UnionBrazilIndiaChinaUnited Arab EmiratesCanadaAustraliaJapanSaudi ArabiaUnited Nations
DateAuthorityEventRoleHeadline and source
2026-08-06U.S. Department of Commerce, Bureau of Industry and Security (Office of Antiboycott Compliance)FineSettled or finedBIS fines Boeing over anti-boycott breaches
2026-05-22U.S. Court of Appeals for the Fifth CircuitAppealOtherUS appeals court denies rehearing on Boeing NPA
2026-03-31U.S. Court of Appeals for the Fifth CircuitAppealOtherUnited States v. The Boeing Company
2025-11-06U.S. District Court for the Northern District of TexasAcquittal or dismissalAccusedUnited States v. The Boeing Company
2025-05-29U.S. Department of JusticeSettlementSettled or finedUnited States v. The Boeing Company
2024-12-05U.S. District Court for the Northern District of TexasCourt rulingAccusedUnited States v. The Boeing Company
2024-05-14U.S. Department of JusticeOtherInvestigatedUnited States v. The Boeing Company
2024-02-29U.S. Department of State, Bureau of Political-Military AffairsSettlementSettled or finedU.S. Department of State Concludes $51 Million Settlement Resolving Export Violations by The Boeing Company
2022-09-22U.S. Securities and Exchange CommissionSettlementSettled or finedBoeing to Pay $200 Million to Settle SEC Charges that it Misled Investors about the 737 MAX
2022-01-08U.S. Court of Appeals for the Seventh Circuit (as reported by Bloomberg Law)AppealDefendantBoeing Investors Get 737 Max Crash Litigation Revived on Appeal
2021-11-05Delaware Court of ChancerySettlementDefendantThe Boeing Company Shareholder Derivative Litigation
2021-01-07U.S. Department of JusticeChargeAccusedBoeing Charged with 737 Max Fraud Conspiracy and Agrees to Pay over $2.5 Billion
2021-01-07U.S. Department of JusticeSettlementSettled or finedBoeing Charged with 737 Max Fraud Conspiracy and Agrees to Pay over $2.5 Billion
2006-06-30U.S. Department of JusticeSettlementSettled or finedBoeing to Pay United States Record $615 Million to Resolve Fraud Allegations
Show one row as the API returns it
{
  "url": "https://media.bis.gov/media/documents/a781.pdf",
  "category": "sanctions_or_export_control",
  "headline": "BIS fines Boeing over anti-boycott breaches",
  "language": "English",
  "authority": "U.S. Department of Commerce, Bureau of Industry and Security (Office of Antiboycott Compliance)",
  "event_date": "2026-08-06",
  "event_type": "fine_or_penalty",
  "publication": "Bureau of Industry and Security; Global Investigations Review",
  "jurisdiction": "United States",
  "subject_role": "settling_or_fined",
  "authority_page": true,
  "case_reference": null,
  "additional_urls": "https://globalinvestigationsreview.com/just-sanctions/article/bis-fines-boeing-over-anti-boycott-breaches",
  "allegation_summary": "BIS's Office of Antiboycott Compliance charged Boeing with two EAR §760.2(d) violations for furnishing Israeli-boycott certification language on 2019 Dubai Airshow invoices; Global Investigations Review reported BIS fined Boeing.",
  "subject_name_as_published": "The Boeing Company"
}

Send one request per subject

import os, time, requests

API = "https://sdk.nimbleway.com/v2/agents"
H = {"Authorization": f"Bearer {os.environ['NIMBLE_API_KEY']}"}
AGENT_ID = "wsa_..."   # the agent ID we give you when the agent is in your account

prompt = ("Screen Danske Bank A/S. Entity type: company. Home jurisdiction: Denmark. "
          "Known aliases: Danske Bank. Start by listing every jurisdiction where the subject is "
          "incorporated, listed, operates or operated, or has been investigated, then search each one. "
          "Return every in-scope event in any jurisdiction, or an empty findings list if there are none.")

run = requests.post(f"{API}/{AGENT_ID}/runs", headers=H, json={"input": prompt}).json()
while requests.get(f"{API}/{AGENT_ID}/runs/{run['id']}", headers=H).json()["status"] not in ("completed", "failed"):
    time.sleep(30)
result = requests.get(f"{API}/{AGENT_ID}/runs/{run['id']}/result", headers=H).json()
findings = [f for f in result["output"]["content"]["findings"]
            if f["subject_role"] not in ("victim", "witness_or_other")]
curl -X POST https://sdk.nimbleway.com/v2/agents/$AGENT_ID/runs \
  -H "Authorization: Bearer $NIMBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input": "Screen Danske Bank A/S. Entity type: company. Home jurisdiction: Denmark. Known aliases: Danske Bank. Start by listing every jurisdiction where the subject is incorporated, listed, operates or operated, or has been investigated, then search each one. Return every in-scope event in any jurisdiction, or an empty findings list if there are none."}'

# then poll GET /v2/agents/$AGENT_ID/runs/{run_id} and read GET .../runs/{run_id}/result

Each finding is one row with eleven fields

FieldWhat it holds
categoryOne of nine financial-crime categories, such as money_laundering or bribery_or_corruption
event_typeWhat happened, such as charge_or_indictment, guilty_plea, settlement_or_resolution or fine_or_penalty
subject_roleThe subject's role, such as accused_or_charged, settling_or_fined or victim
authorityThe prosecutor, regulator, court or outlet, by its own name
jurisdictionThe country of that authority
case_referenceThe docket or case number as printed, when the page shows one
event_dateThe date of the action as the source states it
headlineThe headline exactly as published
urlThe authority's own page when one exists
authority_pageTrue when the URL is the authority's or the court's own page
allegation_summaryOne sentence on what was done or alleged, and by whom

The response also lists every country the agent searched and the authorities it searched in each one.

Use case 3

The agent finds every person with the name and gives each one a verdict

A strong identifier is the only way to reach same person

VerdictWhen the agent gives it
same_personA date of birth, passport, national ID, tax ID or registry officer ID on a page equals the value you supplied
different_personThe same attribute carries a different value on the page
consistent_unconfirmedWeaker details such as employer or city agree, and nothing conflicts
unresolvedThe pages do not say enough to decide

The name alone never decides a verdict. Each verdict names the attribute that decided it and the page it was read on.

Example output from your Nimble account

Input sent: Gilbert Verdian. Supplied by the investigator: no identifiers beyond the name. Find every person with this name and judge each one against the supplied details.

Official record found: Companies House officer appointments record, Gilbert VERDIAN, UK Companies House. Open the record

PersonVerdictWho the pages describeWhat decided itPage
P1unresolvedFounder and CEO · United Kingdomnothing decided itsource
Show two evidence rows and one verdict as the API returns them
{
  "attestations": [
    {
      "side": "supplied",
      "attribute": "full_name",
      "qualifier": null,
      "person_ref": "P0",
      "source_url": null,
      "source_date": null,
      "source_class": null,
      "value_verbatim": "Gilbert Verdian",
      "about_name_as_printed": "Gilbert Verdian"
    },
    {
      "side": "found",
      "attribute": "full_name",
      "qualifier": null,
      "person_ref": "P1",
      "source_url": "https://find-and-update.company-information.service.gov.uk/officers/quDo4Xesd_el_0RCx9xJ36g157g/appointments",
      "source_date": "2026-10-12",
      "source_class": "corporate_registry",
      "value_verbatim": "Gilbert VERDIAN",
      "about_name_as_printed": "Gilbert VERDIAN"
    }
  ],
  "candidate_verdicts": [
    {
      "reason": "Only the name was supplied; found record shows January 1978, British, Quant director, but no supplied identifier exists to compare.",
      "verdict": "unresolved",
      "person_ref": "P1",
      "found_value": null,
      "supplied_value": null,
      "deciding_attribute": "none",
      "deciding_source_url": null,
      "strong_identifier_match": false
    }
  ]
}

Input sent: Brad Jackson. Supplied by the investigator: lives in Ontario, Canada. Find every person with this name and judge each one against the supplied details.

PersonVerdictWho the pages describeWhat decided itPage
P1consistent_unconfirmedAtlantic Coated Papers Ltd. · Greater Toronto Area, Canadaresidence country: Greater Toronto Area, Canadasource
P7consistent_unconfirmedOAKWOOD TRANSPORT · Ingersoll, Ontario, Canadaresidence country: Ingersoll, Ontario, Canadasource
P17consistent_unconfirmed2592580 ont inc · Ontario, Canadaresidence country: Ontario, Canadasource
P43different_personZions Bancorporation · Salt Lake City Metropolitan Arearesidence country: Salt Lake City Metropolitan Areasource
P47different_personOffice of Texas Governor Greg Abbott · Austin, Texas, United Statesresidence country: Austin, Texas, United Statessource
P44different_personDenver Metropolitan Arearesidence country: Denver Metropolitan Areasource
P46different_personGresham, Oregon, United Statesresidence country: Gresham, Oregon, United Statessource
P41different_personLake Oswego, ORresidence country: Lake Oswego, ORsource
P42different_personNew Zealandresidence country: New Zealandsource
P45different_personBrisbane City, QLDresidence country: Brisbane City, QLDsource
P48different_personresidence country: San Antonio, Texassource
P49consistent_unconfirmedplace of birth: Thorold, ON, CANsource
P50consistent_unconfirmedPort Stanley, ONresidence country: Port Stanley, ONsource
P51different_personStudent · Vancouver, Canadaresidence country: Vancouver, Canadasource
P2different_personSelf-employed · Vancouver, BCresidence country: Vancouver, BCsource
P3different_personUniversity of Victoria · Langford, BCresidence country: Langford, BCsource
P4consistent_unconfirmedToronto, ONresidence country: Toronto, ONsource
P5different_personACCOUNTANTS R US · Burnaby, BCresidence country: Burnaby, BCsource
P6different_personNorth Vancouver, BCresidence country: North Vancouver, BCsource
P8different_personMcKesson · 100 Mile House, BCresidence country: 100 Mile House, BCsource
P9different_personGreater Vancouver Metropolitan Arearesidence country: Greater Vancouver Metropolitan Areasource
P10unresolvedCarleton Refrigeration, Heating and Air Conditioning Ltd. · Canadanothing decided itsource
P11consistent_unconfirmedEnvironment, Conservation and Parks | Environnement, Protection de la nature et Parcs · Boresidence country: Bowmanville, ONsource
P12different_personFrontier Power Products · Winnipeg, MBresidence country: Winnipeg, MBsource
P13different_personRaylec Power · Cumberland, BCresidence country: Cumberland, BCsource
P14unresolvedCanadanothing decided itsource
P15consistent_unconfirmedHabitat for Humanity Canada · London, ONresidence country: London, ONsource
P16different_personSelf-employed · Nova Scotia, Canadaresidence country: Nova Scotia, Canadasource
P18consistent_unconfirmedcharlies general mat · Ontario, Canadaresidence country: Ontario, Canadasource
P19consistent_unconfirmedTown of Bracebridge · Bracebridge, ONresidence country: Bracebridge, ONsource
P20consistent_unconfirmedGuelph, ONresidence country: Guelph, ONsource
P21unresolvedCanadanothing decided itsource
P22consistent_unconfirmedAjax, ONresidence country: Ajax, ONsource
P23unresolvedCanadanothing decided itsource
P24unresolvedCanadanothing decided itsource
P25unresolvedCanadanothing decided itsource
P26consistent_unconfirmedToronto, ONresidence country: Toronto, ONsource
P27different_personSurrey, BCresidence country: Surrey, BCsource
P28different_personBurnaby, BCresidence country: Burnaby, BCsource
P29different_personKamloops, BCresidence country: Kamloops, BCsource
P30unresolvedSault Marine Services · Canadanothing decided itsource
P31consistent_unconfirmedBarminco · Manitouwadge, ONresidence country: Manitouwadge, ONsource
P32different_personAlmega Resurfacing & Redesign Solutions · British Columbia, Canadaresidence country: British Columbia, Canadasource
P33different_personSelf-employed · Coquitlam, BCresidence country: Coquitlam, BCsource
P34consistent_unconfirmedLondon, ONresidence country: London, ONsource
P35consistent_unconfirmedHamilton, ONresidence country: Hamilton, ONsource
P36consistent_unconfirmedKitchener, ONresidence country: Kitchener, ONsource
P37consistent_unconfirmedEmcon Services Inc. · Pays Plat 51, ONresidence country: Pays Plat 51, ONsource
P38consistent_unconfirmedCP Rail · Brampton, ONresidence country: Brampton, ONsource
P39consistent_unconfirmedCDI · Ontario, Canadaresidence country: Ontario, Canadasource
P40consistent_unconfirmedC.P.Rail · Smiths Falls, ONresidence country: Smiths Falls, ONsource
Show two evidence rows and one verdict as the API returns them
{
  "attestations": [
    {
      "side": "supplied",
      "attribute": "full_name",
      "qualifier": null,
      "person_ref": "P0",
      "source_url": null,
      "source_date": null,
      "source_class": null,
      "value_verbatim": "Brad Jackson",
      "about_name_as_printed": "Brad Jackson"
    },
    {
      "side": "supplied",
      "attribute": "residence_country",
      "qualifier": null,
      "person_ref": "P0",
      "source_url": null,
      "source_date": null,
      "source_class": null,
      "value_verbatim": "Ontario, Canada",
      "about_name_as_printed": "Brad Jackson"
    }
  ],
  "candidate_verdicts": [
    {
      "reason": "Residence Greater Toronto Area, Ontario matches; no conflicting identifier found",
      "verdict": "consistent_unconfirmed",
      "person_ref": "P1",
      "found_value": "Greater Toronto Area, Canada",
      "supplied_value": "Ontario, Canada",
      "deciding_attribute": "residence_country",
      "deciding_source_url": "https://www.linkedin.com/in/brad-jackson/",
      "strong_identifier_match": false
    }
  ]
}

Results on public cases

NameWhat we suppliedRunsWhat the agent returned
Gilbert VerdianBorn January 1978, British, lives in the United Kingdom2Both runs judged one person the same, on the date of birth in his UK Companies House record. Both kept a second Gilbert Verdian in France apart.
Gilbert VerdianBorn March 1990, lives in Canada, a profile that fits nobody1Nobody was judged the same person. The UK director was judged a different person because his date of birth conflicts.
Sergei IvanovBorn 31 January 1953, Russian national1The agent judged the OFAC and EU sanctions entry born 31 January 1953 the same person. It judged the sanctioned man born 23 October 1980 a different person and left 7 LinkedIn profiles unconfirmed.
Sergei IvanovBorn 23 October 1980, Russian national1The agent judged OFAC entry 34598, born 23 October 1980, the same person. It judged the men born on 2 June 1980 and 31 January 1953 different people.
Brad JacksonLives in Ontario, Canada2The runs found 19 and 15 people, most of them through LinkedIn. Six people per run live in Ontario and stay consistent but unconfirmed, because a province alone identifies nobody.

Send the name and what you already hold

run = requests.post(f"{API}/{AGENT_ID}/runs", headers=H, json={"input": (
    "Sergei Ivanov. Supplied by the investigator: born 31 January 1953, Russian national. "
    "Find every person with this name and judge each one against the supplied details."
)}).json()

# result["output"]["content"] holds:
#   attestations        one row per value found, with its URL and the person it describes
#   candidate_verdicts  one verdict per person, with the deciding attribute and page
#   identity_anchor     the official record behind a same_person verdict
#   collection_gaps     the registries and sites the agent could not reach