{"id":19009299,"url":"https://github.com/textkernel/tx-dotnet","last_synced_at":"2025-04-22T22:47:30.254Z","repository":{"id":37974152,"uuid":"310363723","full_name":"textkernel/tx-dotnet","owner":"textkernel","description":"The official C# SDK for the Textkernel Tx v10 API. Includes a resume parser (CV parser), job parser, resume search engine, and resume matching engine.","archived":false,"fork":false,"pushed_at":"2025-01-02T16:09:28.000Z","size":7606,"stargazers_count":12,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-17T14:37:12.501Z","etag":null,"topics":["csharp","cv","cv-parser","cv-parsing","dotnet","job","job-parser","job-parsing","matching","nuget","parse-resume","parser","parsing","resume","resume-parser","resume-parsing","sdk","searching","textkernel","tx"],"latest_commit_sha":null,"homepage":"https://developer.textkernel.com/tx-platform","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/textkernel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-11-05T16:56:13.000Z","updated_at":"2025-01-02T16:04:30.000Z","dependencies_parsed_at":"2023-02-15T12:16:13.944Z","dependency_job_id":"60f30837-0d02-4913-8930-d8839b603ea6","html_url":"https://github.com/textkernel/tx-dotnet","commit_stats":null,"previous_names":["sovren/sovren-dotnet"],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textkernel%2Ftx-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textkernel%2Ftx-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textkernel%2Ftx-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/textkernel%2Ftx-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/textkernel","download_url":"https://codeload.github.com/textkernel/tx-dotnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250337909,"owners_count":21414102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","cv","cv-parser","cv-parsing","dotnet","job","job-parser","job-parsing","matching","nuget","parse-resume","parser","parsing","resume","resume-parser","resume-parsing","sdk","searching","textkernel","tx"],"created_at":"2024-11-08T19:07:22.248Z","updated_at":"2025-04-22T22:47:30.248Z","avatar_url":"https://github.com/textkernel.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tx-dotnet\n![Nuget](https://img.shields.io/nuget/dt/Textkernel.Tx.SDK?color=0575aa)\n![GitHub](https://img.shields.io/github/license/textkernel/tx-dotnet?color=0575aa)\n![Nuget](https://img.shields.io/nuget/v/Textkernel.Tx.SDK?color=0575aa)\n[![build](https://github.com/textkernel/tx-dotnet/actions/workflows/build.yml/badge.svg)](https://github.com/textkernel/tx-dotnet/actions/workflows/build.yml)\n\nThe official C# SDK for the Textkernel Tx v10 API for resume/CV and job parsing, searching, and matching. Supports .NET Framework 4.6.1+ and .NET Core 2.0+.\n\n## Installation\n\nFrom within Visual Studio:\n\n1. Open the Solution Explorer.\n2. Right-click on a project within your solution.\n3. Click on *Manage NuGet Packages...*\n4. Click on the *Browse* tab and search for \"Textkernel.Tx.SDK\" (ensure the *Package source* dropdown is set to `nuget.org`).\n5. Click on the Textkernel.Tx.SDK package, select the appropriate version in the right-tab and click *Install*.\n\nUsing the [.NET Core command-line interface (CLI) tools][dotnet-core-cli-tools]:\n\n```sh\ndotnet add package Textkernel.Tx.SDK\n```\n\nUsing the [NuGet Command Line Interface (CLI)][nuget-cli]:\n\n```sh\nnuget install Textkernel.Tx.SDK\n```\n\nUsing the [Package Manager Console][package-manager-console]:\n\n```powershell\nInstall-Package Textkernel.Tx.SDK\n```\n\n## Documentation\nTo view MSDN-style documentation for this SDK, check out our [DocFX-generated docs][docfx-docs].\nFor the full REST API documentation, information about best practices, FAQs, etc. check out our [API docs][api-docs].\n\n## Examples\nFor full code examples, see [here][examples].\n\n## Basic Usage\n\n### Creating a `TxClient`\nThis is the object that you will use to perform API calls. You create it with your account credentials and the `TxClient` makes the raw API calls for you. These credentials can be found in the [Tx Console][portal]. Be sure to select the correct `DataCenter` for your account.\n#### Without using dependency injection:\n```c#\nTxClient client = new TxClient(httpClient, new TxClientSettings\n{\n    AccountId = \"12345678\",\n    ServiceKey = \"abcdefghijklmnopqrstuvwxyz\",\n    DataCenter = DataCenter.US\n});\n```\n**Note that the TxClient uses [HttpClient][http-client] and you should follow Microsoft's recommendations [here][http-client-guidelines].**\n#### Using dependency injection:\nInstall the [Microsoft.Extensions.Http][http-extensions] package from nuget. Where you register your services, add the following code:\n```c#\nbuilder.Services.AddSingleton(_ =\u003e new TxClientSettings\n{\n    AccountId = \"12345678\",\n    ServiceKey = \"abcdefghijklmnopqrstuvwxyz\",\n    DataCenter = DataCenter.US\n};\nbuilder.Services.AddHttpClient\u003cITxClient, TxClient\u003e();\n```\nAfter injecting your TxClient, you will be able to get it from the service provider:\n```c#\nITxClient client = serviceProvider.GetRequiredService\u003cITxClient\u003e();\n```\n\nFor self-hosted customers, you can create a `DataCenter` object with your custom URL using the constructor provided on that class.\n\n### Using the various `TxClient` services\nThe `TxClient` has the following services available, exposed as properties on the `ITxClient` interface:\n- Parser\n- Geocoder\n- Formatter\n- SkillsIntelligence\n- SearchMatchV1\n- SearchMatchV2\n\nEach service exposes certain API functionality via its methods. For example, to parse a resume you would do something like:\n```c#\nITxClient client;//created or injected however\nvar parseResponse = await client.Parser.ParseResume(...);\n```\n\nFor the complete list of methods on each service and their method signatures, check out our [DocFX-generated docs][docfx-txclient].\n\n### Handling errors and the `TxException`\nEvery call to any of the methods in the `TxClient` should be wrapped in a `try/catch` block. Any 4xx/5xx level errors will cause a `TxException` to be thrown. Sometimes these are a normal and expected part of the Tx API. For example, if you have a website where users upload resumes, sometimes a user will upload a scanned image as their resume. Textkernel does not process these, and will return a `422 Unprocessable Entity` response which will throw a `TxException`. You should handle any `TxException` in a way that makes sense in your application.\n\nAdditionally, there are `TxUsableResumeException` and `TxUsableJobException` which are thrown when some error/issue occurs in the API, but the response still contains a usable resume/job. For example, if you are geocoding while parsing and there is a geocoding error (which happens after parsing is done), the `ParsedResume` might still be usable in your application.\n\n\n[examples]: https://github.com/textkernel/tx-dotnet/tree/master/src/Textkernel.Tx.SDK.Examples\n[portal]: https://cloud.textkernel.com/tx/console\n[api-docs]: https://developer.textkernel.com/tx-platform/v10/overview/\n[dotnet-core-cli-tools]: https://docs.microsoft.com/en-us/dotnet/core/tools/\n[nuget-cli]: https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference\n[package-manager-console]: https://docs.microsoft.com/en-us/nuget/tools/package-manager-console\n[docfx-docs]: https://textkernel.github.io/tx-dotnet/sdk/\n[docfx-txclient]: https://textkernel.github.io/tx-dotnet/sdk/Textkernel.Tx.ITxClient.html\n[http-client]: https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient\n[http-client-guidelines]: https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/http/httpclient-guidelines\n[http-extensions]: https://www.nuget.org/packages/Microsoft.Extensions.Http","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextkernel%2Ftx-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftextkernel%2Ftx-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftextkernel%2Ftx-dotnet/lists"}