{"id":36536428,"url":"https://github.com/tamboto2000/golinkedin","last_synced_at":"2026-01-12T04:53:56.977Z","repository":{"id":56314344,"uuid":"280102649","full_name":"tamboto2000/golinkedin","owner":"tamboto2000","description":"Golinkedin is a library written in pure golang for scraping Linkedin","archived":false,"fork":false,"pushed_at":"2024-04-11T14:08:51.000Z","size":110,"stargazers_count":40,"open_issues_count":5,"forks_count":14,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-18T21:50:47.707Z","etag":null,"topics":["golang","linkedin-internal-api","linkedin-profile-scraper","linkedin-scraper"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tamboto2000.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}},"created_at":"2020-07-16T08:48:20.000Z","updated_at":"2024-05-01T04:24:41.000Z","dependencies_parsed_at":"2022-08-15T16:31:18.455Z","dependency_job_id":"fe96c2f2-3af2-449d-bb71-c2d77f6ea968","html_url":"https://github.com/tamboto2000/golinkedin","commit_stats":null,"previous_names":["tamboto2000/linkedin"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/tamboto2000/golinkedin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamboto2000%2Fgolinkedin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamboto2000%2Fgolinkedin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamboto2000%2Fgolinkedin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamboto2000%2Fgolinkedin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tamboto2000","download_url":"https://codeload.github.com/tamboto2000/golinkedin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tamboto2000%2Fgolinkedin/sbom","scorecard":{"id":867217,"data":{"date":"2025-08-11","repo":{"name":"github.com/tamboto2000/golinkedin","commit":"1b97fccdea1bc19e4f0e85e89d9e63ff660852f5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.6,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 1/29 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":2,"reason":"dependency not pinned by hash detected -- score normalized to 2","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/v1-build.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/tamboto2000/golinkedin/v1-build.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/v1-build.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tamboto2000/golinkedin/v1-build.yml/master?enable=pin","Warn: downloadThenRun not pinned by hash: .github/workflows/v1-build.yml:28","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   1 goCommand dependencies pinned","Info:   0 out of   1 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/v1-build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 2 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T02:58:05.467Z","repository_id":56314344,"created_at":"2025-08-24T02:58:05.467Z","updated_at":"2025-08-24T02:58:05.467Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28335027,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"online","status_checked_at":"2026-01-12T02:00:08.677Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["golang","linkedin-internal-api","linkedin-profile-scraper","linkedin-scraper"],"created_at":"2026-01-12T04:53:56.483Z","updated_at":"2026-01-12T04:53:56.969Z","avatar_url":"https://github.com/tamboto2000.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# v2 is on the way!\nAt the beginning, this library is created because of my previous job which involve scraping social media platforms, the intended purpose of this library is to get the Linkedin data as much as possible but still follow the raw structure that Linkedin has, which is to be frank, a ball of tangled mess of JSON. Now that a lot of people starting to use this library too I think it is time for me to be a bit more serious to maintain this. So with that in mind, I announce that there will be V2 of this library, which will introduce much simpler data structure and will be much more easy to use, and of course, much more clearer documentation. If anybody wants to help me, feel free to do so. Thanks!\n\n\\- Franklin\n\n# Golinkedin\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/tamboto2000/golinkedin)](https://pkg.go.dev/github.com/tamboto2000/golinkedin) [![GitHub](https://img.shields.io/github/license/tamboto2000/golinkedin)](https://github.com/tamboto2000/golinkedin/blob/v1/LICENSE) ![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/tamboto2000/golinkedin) [![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/tamboto2000/linkedin/v1-build/v1)](https://github.com/tamboto2000/golinkedin/runs/1433927028)\n\nGolinkedin is a library for scraping Linkedin.\nUnfortunately, auto login is impossible (probably...), so you need to retrieve Linkedin session cookies manually.\nAs mentioned above, the purpose of this package is only for scraping, so there is no method for create, update, or delete data.\nNot all object is documented or present because the original author does not fully understand the purpose of some object returned by Linkedin internal API, and because the nature of Linkedin internal API that treat almost every object as optional, empty field or object will not be returned by Linkedin internal API, so some object or fields might be missing.\nFeel free to fork and contribute!\n\n# Current Features\n\n  - Lookup Full Profile by Username\n  - Profile Organizations Lookup\n  - Profile Educations Lookup\n  - Profile Certifications Lookup\n  - Profile Positions Lookup\n  - Profile Interest Lookup\n  - Profile Acitivity Lookup\n  - Profile Recommendation Lookup\n  - Profile Skill Lookup\n  - Geolocation Search  \n  - Company Search\n  - Group Search\n  - People/Profile Search\n  - Service Search\n  - School Search\n\n# Upcoming Features\n\n  - Profile Treasury Media Data\n  - Profile Publications Lookup\n  - Profile Volunteer Exeperiences Lookup\n  - Profile Projects Lookup\n  - Profile Patents Lookup\n  - Profile Languages Data\n  - Profile Courses Lookup\n  - Profile Accomplishments\n  - Profile Honors Lookup\n\n### Installation\n\nThis package require go version 1.14 or above.\nMake sure you have go modules activated.\n```sh\n$ GO111MODULE=on go get github.com/tamboto2000/golinkedin\n```\n\n### Full Profile Lookup Example\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\n\t\"github.com/tamboto2000/golinkedin\"\n)\n\nfunc main() {\n\tln := golinkedin.New()\n\tln.SetCookieStr(`your_linkedin_cookies`)\n\n\tprofile, err := ln.ProfileByUsername(\"linkedin_username\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tf, err := os.Create(\"profile.json\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tif err := json.NewEncoder(f).Encode(profile); err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\n```\n\n### Search Geo Example\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"os\"\n\n\t\"github.com/tamboto2000/golinkedin\"\n)\n\nfunc main() {\n\tln := golinkedin.New()\n\tln.SetCookieStr(`your_linkedin_cookies`)\n\n\t// search geo\n\tgeoNode, err := searchGeo(ln, \"USA\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tf, err := os.Create(\"geo.json\")\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tif err := json.NewEncoder(f).Encode(geoNode); err != nil {\n\t\tpanic(err.Error())\n\t}\n}\n\nfunc searchGeo(ln *golinkedin.Linkedin, keyword string) (*golinkedin.GeoNode, error) {\n\tgeoNode, err := ln.SearchGeo(keyword)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\n\tgeos := make([]golinkedin.Geo, 0)\n\tfor geoNode.Next() {\n\t\tgeos = append(geos, geoNode.Elements...)\n\t\tif len(geos) \u003e= 20 {\n\t\t\tbreak\n\t\t}\n\t}\n\n\tgeoNode.Elements = geos\n\n\treturn geoNode, nil\n}\n```\n\nFor now, every Node have SetLinkedin(), Error() error, and Next() bool method, except for ProfileNode\n\n### Todos\n\n - Write Tests\n - Add More Data and Features\n - Add CodeCove\n\nLicense\n----\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamboto2000%2Fgolinkedin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftamboto2000%2Fgolinkedin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftamboto2000%2Fgolinkedin/lists"}