From e8190431ade2c07ef8014af15ba76d493780d95d Mon Sep 17 00:00:00 2001 From: Jan Wilmake Date: Fri, 19 Dec 2025 15:42:48 +0100 Subject: [PATCH 01/13] improvements --- typescript-recipes/parallel-entity-resolution/TODO.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typescript-recipes/parallel-entity-resolution/TODO.md b/typescript-recipes/parallel-entity-resolution/TODO.md index 08045de..db3e889 100644 --- a/typescript-recipes/parallel-entity-resolution/TODO.md +++ b/typescript-recipes/parallel-entity-resolution/TODO.md @@ -1,3 +1,3 @@ Needs a benchmark for each usecase with real people. -Can nicely connect this to the llmtext project! +Can nicely connect this to the llmtext project: Create an index of all social profiles of all people I follow on X, and monitor their online info. From 7079fcbdfacfb039421bb0e6c182a79c4ebd7cd4 Mon Sep 17 00:00:00 2001 From: Jan Wilmake Date: Fri, 16 Jan 2026 15:49:28 +0100 Subject: [PATCH 02/13] improvements --- .../parallel-entity-resolution/README.md | 12 ++++++++++-- .../parallel-entity-resolution/TODO.md | 3 --- .../parallel-entity-resolution/view.drawio.png | 0 3 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 typescript-recipes/parallel-entity-resolution/TODO.md create mode 100644 typescript-recipes/parallel-entity-resolution/view.drawio.png diff --git a/typescript-recipes/parallel-entity-resolution/README.md b/typescript-recipes/parallel-entity-resolution/README.md index 6a5af13..b3ebc33 100644 --- a/typescript-recipes/parallel-entity-resolution/README.md +++ b/typescript-recipes/parallel-entity-resolution/README.md @@ -98,9 +98,17 @@ const { profiles } = await result.json(); ## Field Explanations -**`is_self_proclaimed`**: Profile was discovered through the person's own references. Either directly mentioned in input, linked from a mentioned profile, or linked transitively. High confidence indicator. +**`is_self_proclaimed`**: Whether this profile was discovered through the input's chain of references. -**`is_self_referring`**: Profile links back to other profiles in the result set. Bidirectional verification increases confidence. +`true` if: + +1. directly mentioned in the original input, +2. linked from a profile mentioned in the input, or +3. linked from any profile in this chain (transitive relationship). + +`false` if discovered only through external search without a self-reference chain.", + +**`is_self_referring`**: Whether this profile links back to input profile(s) or other found profile(s) **`match_reasoning`**: Human-readable explanation of why the AI matched this profile. Use for quality assurance and debugging. diff --git a/typescript-recipes/parallel-entity-resolution/TODO.md b/typescript-recipes/parallel-entity-resolution/TODO.md deleted file mode 100644 index db3e889..0000000 --- a/typescript-recipes/parallel-entity-resolution/TODO.md +++ /dev/null @@ -1,3 +0,0 @@ -Needs a benchmark for each usecase with real people. - -Can nicely connect this to the llmtext project: Create an index of all social profiles of all people I follow on X, and monitor their online info. diff --git a/typescript-recipes/parallel-entity-resolution/view.drawio.png b/typescript-recipes/parallel-entity-resolution/view.drawio.png new file mode 100644 index 0000000..e69de29 From f81076f3960d503b9ff22cc6df29632c67b51c52 Mon Sep 17 00:00:00 2001 From: Jan Wilmake Date: Fri, 16 Jan 2026 15:52:09 +0100 Subject: [PATCH 03/13] improvements --- .../parallel-entity-resolution/README.md | 2 ++ .../parallel-entity-resolution/view.drawio.png | Bin 0 -> 21307 bytes 2 files changed, 2 insertions(+) diff --git a/typescript-recipes/parallel-entity-resolution/README.md b/typescript-recipes/parallel-entity-resolution/README.md index b3ebc33..3c8a4af 100644 --- a/typescript-recipes/parallel-entity-resolution/README.md +++ b/typescript-recipes/parallel-entity-resolution/README.md @@ -46,6 +46,8 @@ This API finds all social media profiles belonging to a single person. Give it a Built using [Parallel's Task API](https://docs.parallel.ai/task-api/guides/choose-a-processor) and [OAuth Provider](https://docs.parallel.ai/integrations/oauth-provider). +![](view.drawio.png) + ## Quick Start ```ts example.ts diff --git a/typescript-recipes/parallel-entity-resolution/view.drawio.png b/typescript-recipes/parallel-entity-resolution/view.drawio.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c37fa819d58aa31518e2df0131f573f858489a5a 100644 GIT binary patch literal 21307 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 B=^+3B literal 0 HcmV?d00001 From f133ddeeef57f55ef8eb3f8335b67b2f7821fe29 Mon Sep 17 00:00:00 2001 From: Jan Wilmake Date: Fri, 16 Jan 2026 15:53:39 +0100 Subject: [PATCH 04/13] improvements --- .../parallel-entity-resolution/README.md | 28 ++++--------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/typescript-recipes/parallel-entity-resolution/README.md b/typescript-recipes/parallel-entity-resolution/README.md index 3c8a4af..4577c92 100644 --- a/typescript-recipes/parallel-entity-resolution/README.md +++ b/typescript-recipes/parallel-entity-resolution/README.md @@ -14,29 +14,11 @@ This API finds all social media profiles belonging to a single person. Give it a ## Why It Matters -### For Sales & Revenue - -- **Richer prospect intelligence**: Find prospects' GitHub repos, technical blogs, conference talks beyond LinkedIn -- **Better qualification**: A CTO active on GitHub is different from one who isn't -- **Warmer introductions**: Discover mutual connections across any platform - -### For Recruiting - -- **Complete candidate profiles**: Evaluate technical skills (GitHub), communication (Twitter), thought leadership (blogs) -- **Passive sourcing**: Find engineers active on GitHub but not updating LinkedIn -- **Cultural fit**: See how candidates present themselves across contexts - -### For Customer Success - -- **Relationship intelligence**: Identify vocal advocates and at-risk customers -- **Multi-channel engagement**: Meet champions where they are -- **Expansion signals**: Track when decision-makers change roles - -### For Data Quality - -- **CRM deduplication**: Merge duplicate records by linking profiles to single entities -- **Enrichment at scale**: Turn sparse contact data into rich profiles -- **Attribution accuracy**: Know which database profiles are the same person +- Sales & Revenue: Find prospects' complete digital footprint beyond LinkedIn for richer intelligence +- Recruiting: Evaluate technical skills (GitHub), communication (Twitter), and thought leadership in one view +- Customer Success: Identify vocal advocates and at-risk customers across all their active channels +- Data Quality: Merge duplicate CRM records by linking profiles to single verified entities +- SaaS Products: Understand your users by connecting their product usage to their public presence ## How It Works From 466c441b438e884c9e782c2fb160a752c62d4972 Mon Sep 17 00:00:00 2001 From: Jan Wilmake Date: Fri, 16 Jan 2026 15:54:58 +0100 Subject: [PATCH 05/13] improvements --- typescript-recipes/parallel-entity-resolution/index.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/typescript-recipes/parallel-entity-resolution/index.html b/typescript-recipes/parallel-entity-resolution/index.html index e4f7d21..0d8c432 100644 --- a/typescript-recipes/parallel-entity-resolution/index.html +++ b/typescript-recipes/parallel-entity-resolution/index.html @@ -4,7 +4,7 @@ - Parallel Entity Resolver + Person Entity Resolution