golinkedin

package module
v0.0.0-...-d79e0d6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2023 License: MIT Imports: 9 Imported by: 0

README

v2 is on the way!

At 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!

- Franklin

Golinkedin

PkgGoDev GitHub GitHub go.mod Go version GitHub Workflow Status (branch)

Golinkedin is a library for scraping Linkedin. Unfortunately, auto login is impossible (probably...), so you need to retrieve Linkedin session cookies manually. As mentioned above, the purpose of this package is only for scraping, so there is no method for create, update, or delete data. Not 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. Feel free to fork and contribute!

Current Features

  • Lookup Full Profile by Username
  • Profile Organizations Lookup
  • Profile Educations Lookup
  • Profile Certifications Lookup
  • Profile Positions Lookup
  • Profile Interest Lookup
  • Profile Acitivity Lookup
  • Profile Recommendation Lookup
  • Profile Skill Lookup
  • Geolocation Search
  • Company Search
  • Group Search
  • People/Profile Search
  • Service Search
  • School Search

Upcoming Features

  • Profile Treasury Media Data
  • Profile Publications Lookup
  • Profile Volunteer Exeperiences Lookup
  • Profile Projects Lookup
  • Profile Patents Lookup
  • Profile Languages Data
  • Profile Courses Lookup
  • Profile Accomplishments
  • Profile Honors Lookup
Installation

This package require go version 1.14 or above. Make sure you have go modules activated.

$ GO111MODULE=on go get github.com/dylanratcliffe/golinkedin
Full Profile Lookup Example
package main

import (
	"encoding/json"
	"os"

	"github.com/dylanratcliffe/golinkedin"
)

func main() {
	ln := golinkedin.New()
	ln.SetCookieStr(`your_linkedin_cookies`)

	profile, err := ln.ProfileByUsername("linkedin_username")
	if err != nil {
		panic(err.Error())
	}

	f, err := os.Create("profile.json")
	if err != nil {
		panic(err.Error())
	}

	if err := json.NewEncoder(f).Encode(profile); err != nil {
		panic(err.Error())
	}
}

Search Geo Example
package main

import (
	"encoding/json"
	"os"

	"github.com/dylanratcliffe/golinkedin"
)

func main() {
	ln := golinkedin.New()
	ln.SetCookieStr(`your_linkedin_cookies`)

	// search geo
	geoNode, err := searchGeo(ln, "USA")
	if err != nil {
		panic(err.Error())
	}

	f, err := os.Create("geo.json")
	if err != nil {
		panic(err.Error())
	}

	if err := json.NewEncoder(f).Encode(geoNode); err != nil {
		panic(err.Error())
	}
}

func searchGeo(ln *golinkedin.Linkedin, keyword string) (*golinkedin.GeoNode, error) {
	geoNode, err := ln.SearchGeo(keyword)
	if err != nil {
		panic(err.Error())
	}

	geos := make([]golinkedin.Geo, 0)
	for geoNode.Next() {
		geos = append(geos, geoNode.Elements...)
		if len(geos) >= 20 {
			break
		}
	}

	geoNode.Elements = geos

	return geoNode, nil
}

For now, every Node have SetLinkedin(), Error() error, and Next() bool method, except for ProfileNode

Todos
  • Write Tests
  • Add More Data and Features
  • Add CodeCove

License

MIT

Documentation

Overview

Package golinkedin is a library for scraping Linkedin. Unfortunately, auto login is impossible (probably...), so you need to retrieve Linkedin session cookies manually. As mentioned above, the purpose of this package is only for scraping, so there is no method for create, update, or delete data. Not all object is documented or present because Franklin Collin Tamboto, 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. Feel free to fork and contribute!

Index

Constants

View Source
const (
	InterestCompany    = "COMPANY"
	InterestGroup      = "GROUP"
	InterestSchool     = "SCHOOL"
	InterestInfluencer = "INFLUENCER"
)

Interest types

View Source
const (
	ActivityPost    = "POST"
	ActivityArticle = "ARTICLE"
)

Activity types

View Source
const (
	Rank1 = "F"
	Rank2 = "S"
	Rank3 = "O"
)

Connection Rank

View Source
const (
	ResultPeople    = "PEOPLE"
	ResultSchools   = "SCHOOLS"
	ResultCompanies = "COMPANIES"
	ResultGroups    = "GROUPS"
)

Result Type

View Source
const (
	// OriginFacetedSearch could be used for people search
	OriginFacetedSearch = "FACETED_SEARCH"
	// OriginSwitchSearchVertical could be used for people search
	OriginSwitchSearchVertical = "SWITCH_SEARCH_VERTICAL"
	// OriginOtther could be used for geo search
	OriginOther = "OTHER"
	// OriginMemberProfileCannedSearch can be used for people search
	OriginMemberProfileCannedSearch = "MEMBER_PROFILE_CANNED_SEARCH"
)

Search Origin

View Source
const (
	ContactInterestBoardMember = "boardMember"
	ContactInterestProBono     = "proBono"
)

Contact Interest values

View Source
const (
	GeoSubTypeMarketArea     = "MARKET_AREA"
	GeoSubTypeCountryRegion  = "COUNTRY_REGION"
	GeoSubTypeAdminDivision1 = "ADMIN_DIVISION_1"
	GeoSubTypeCity           = "CITY"
)

Geo Sub Type Filters

View Source
const (
	GeoAbbreviated    = "GEO_ABBREVIATED"
	MarketplaceSkills = "MARKETPLACE_SKILLS"
)

Values of param useCase

View Source
const (
	TypeGeo         = "GEO"
	TypeCompany     = "COMPANY"
	TypeConnections = "CONNECTIONS"
	TypePeople      = "PEOPLE"
	TypeIndustry    = "INDUSTRY"
	TypeSchool      = "SCHOOL"
	TypeSkill       = "SKILL"
	TypeSearchHits  = "SEARCH_HITS"
)

Values of param type

View Source
const (
	QType = "type"
	QAll  = "all"
)

Values of param q, not to be confused with tag `q` on param struct or QueryContext

View Source
const (
	LangEnglish    = "en"
	LangIndonesian = "in"
	LangChinese    = "zh"
	LangJapanese   = "ja"
	LangGerman     = "de"
	LangFrench     = "fr"
	LangSpanish    = "es"
	LangPortuguese = "pt"
	LangOther      = "_o"
)

Languages

View Source
const (
	// ErrSessionInvalid is returned when Linkedin session can not be used
	ErrSessionInvalid = "Linkedin session invalid"
)

Variables

View Source
var DefaultGeoSearchQueryContext = &QueryContext{
	GeoVersion: 3,
	BingGeoSubTypeFilters: []string{
		GeoSubTypeMarketArea,
		GeoSubTypeCountryRegion,
		GeoSubTypeAdminDivision1,
		GeoSubTypeCity,
	},
}

DefaultGeoSearchQueryContext is default query context for geo search

View Source
var DefaultSearchCompanyFilter = &Filters{
	ResultType: ResultCompanies,
}

DefaultSearchCompanyFilter used for search companies filters param

View Source
var DefaultSearchCompanyQueryContext = &QueryContext{
	FlagshipSearchIntent: "SEARCH_SRP",
}

DefaultSearchCompanyQueryContext used for search companies queryContext param

View Source
var DefaultSearchGroupFilter = &Filters{
	ResultType: ResultGroups,
}

DefaultSearchGroupFilter used for search groups filters param

View Source
var DefaultSearchGroupQueryContext = &QueryContext{
	SpellCorrectionEnabled: true,
}

DefaultSearchGroupQueryContext used for search groups queryContext param

View Source
var DefaultSearchPeopleFilter = &PeopleSearchFilter{
	ResultType: ResultPeople,
}

DefaultSearchPeopleFilter used for search peoples filters param

View Source
var DefaultSearchPeopleQueryContext = &QueryContext{
	SpellCorrectionEnabled: true,
	RelatedSearchesEnabled: true,
}

DefaultSearchPeopleQueryContext used for search peoples queryContext param

View Source
var DefaultSearchSchoolFilter = &Filters{
	ResultType: ResultSchools,
}

DefaultSearchSchoolFilter used for search school filters param

View Source
var DefaultSearchSchoolQueryContext = &QueryContext{
	SpellCorrectionEnabled: true,
}

DefaultSearchSchoolQueryContext used for search school queryContext param

Functions

This section is empty.

Types

type Action

type Action struct {
	ActionType string      `json:"actionType,omitempty"`
	Subtext    string      `json:"subtext,omitempty"`
	SaveAction *SaveAction `json:"saveAction,omitempty"`
	// can be string or Text
	Text             interface{} `json:"text,omitempty"`
	URL              string      `json:"url,omitempty"`
	TargetUrn        string      `json:"targetUrn,omitempty"`
	ContentSource    string      `json:"contentSource,omitempty"`
	AuthorProfileID  string      `json:"authorProfileId,omitempty"`
	AuthorUrn        string      `json:"authorUrn,omitempty"`
	ConfirmationText *Text       `json:"confirmationText,omitempty"`
}

type Activity

type Activity struct {
	Image              *BackgroundImage `json:"image,omitempty"`
	Featured           bool             `json:"featured,omitempty"`
	PermaLink          string           `json:"permaLink,omitempty"`
	LinkedinArticleUrn string           `json:"linkedinArticleUrn,omitempty"`
	ContentText        *Text            `json:"contentText,omitempty"`
	Title              string           `json:"title,omitempty"`
	NumLikes           int              `json:"numLikes,omitempty"`
	PostedDate         *Date            `json:"postedDate,omitempty"`
	SocialDetail       *SocialDetail    `json:"socialDetail,omitempty"`
	TrackingData       *TrackingData    `json:"trackingData,omitempty"`
	NumComments        int              `json:"numComments,omitempty"`
	CreatedDate        *Date            `json:"createdDate,omitempty"`
	PostedAt           int              `json:"postedAt,omitempty"`
	EntityUrn          string           `json:"entityUrn,omitempty"`
	AuthorComponent    *AuthorComponent `json:"authorComponent,omitempty"`
	Actor              Actor            `json:"actor,omitempty"`
	UpdateMetadata     Metadata         `json:"updateMetadata,omitempty"`
	Content            Content          `json:"content,omitempty"`
	Commentary         Commentary       `json:"commentary,omitempty"`
}

type ActivityNode

type ActivityNode struct {
	Metadata   *Metadata  `json:"metadata,omitempty"`
	Elements   []Activity `json:"elements,omitempty"`
	Paging     Paging     `json:"paging,omitempty"`
	Type       string     `json:"type,omitempty"`
	ProfileUrn string     `json:"profileUrn,omitempty"`
	// contains filtered or unexported fields
}

func (*ActivityNode) Error

func (act *ActivityNode) Error() error

func (*ActivityNode) Next

func (act *ActivityNode) Next() bool

func (*ActivityNode) SetLinkedin

func (act *ActivityNode) SetLinkedin(ln *Linkedin)

type Actor

type Actor struct {
	Urn                    string             `json:"urn,omitempty"`
	Image                  *Image             `json:"image,omitempty"`
	SupplementaryActorInfo *SubDescription    `json:"supplementaryActorInfo,omitempty"`
	Name                   *Name              `json:"name,omitempty"`
	SubDescription         *SubDescription    `json:"subDescription,omitempty"`
	NavigationContext      *NavigationContext `json:"navigationContext,omitempty"`
	Description            *Text              `json:"description,omitempty"`
	ShowInfluencerBadge    bool               `json:"showInfluencerBadge,omitempty"`
	FollowAction           *ActorFollowAction `json:"followAction,omitempty"`
}

type ActorFollowAction

type ActorFollowAction struct {
	FollowTrackingActionType string         `json:"followTrackingActionType,omitempty"`
	FollowingInfo            *FollowingInfo `json:"followingInfo,omitempty"`
	Type                     string         `json:"type,omitempty"`
	TrackingActionType       string         `json:"trackingActionType,omitempty"`
}

type AntiAbuseAnnotation

type AntiAbuseAnnotation struct {
	AttributeID int `json:"attributeId,omitempty"`
	EntityID    int `json:"entityId,omitempty"`
}

type Artifact

type Artifact struct {
	Width                         int    `json:"width,omitempty"`
	FileIdentifyingURLPathSegment string `json:"fileIdentifyingUrlPathSegment,omitempty"`
	RecipeType                    string `json:"$recipeType,omitempty"`
	ExpiresAt                     int64  `json:"expiresAt,omitempty"`
	Height                        int    `json:"height,omitempty"`
}

Artifact store the suffix path of an image

type Attribute

type Attribute struct {
	MiniCompany *MiniCompany `json:"miniCompany,omitempty"`
	MiniProfile *MiniProfile `json:"miniProfile,omitempty"`
	MiniSchool  *MiniSchool  `json:"miniSchool,omitempty"`
	MiniGroup   *MiniGroup   `json:"miniGroup,omitempty"`
	Distance    *Distance    `json:"distance,omitempty"`
	SourceType  string       `json:"sourceType,omitempty"`
	Start       int          `json:"start,omitempty"`
	Length      int          `json:"length,omitempty"`
	// can be string or Type
	Type        interface{} `json:"type,omitempty"`
	ArtDecoIcon string      `json:"artDecoIcon,omitempty"`
	VectorImage VectorImage `json:"vectorImage,omitempty"`
}

type AuthorComponent

type AuthorComponent struct {
	Name        *Text                 `json:"name,omitempty"`
	Image       *AuthorComponentImage `json:"image,omitempty"`
	Description *Text                 `json:"description,omitempty"`
}

type AuthorComponentImage

type AuthorComponentImage struct {
	Attributes                  []Attribute   `json:"attributes,omitempty"`
	AccessibilityTextAttributes []interface{} `json:"accessibilityTextAttributes,omitempty"`
	AccessibilityText           string        `json:"accessibilityText,omitempty"`
}

type BackgroundCoverImage

type BackgroundCoverImage struct {
	Image    Image    `json:"image,omitempty"`
	CropInfo CropInfo `json:"cropInfo,omitempty"`
}

type BackgroundImage

type BackgroundImage struct {
	COMLinkedinCommonVectorImage VectorImage `json:"com.linkedin.common.VectorImage,omitempty"`
}

type BackgroundPicture

type BackgroundPicture struct {
	RecipeType            string                 `json:"$recipeType,omitempty"`
	DisplayImageReference *DisplayImageReference `json:"displayImageReference,omitempty"`
	DisplayImageUrn       string                 `json:"displayImageUrn,omitempty"`
}

BackgroundPicture contains multiple qualities of background banner

type Badges

type Badges struct {
	Premium    bool   `json:"premium,omitempty"`
	Influencer bool   `json:"influencer,omitempty"`
	OpenLink   bool   `json:"openLink,omitempty"`
	EntityUrn  string `json:"entityUrn,omitempty"`
	JobSeeker  bool   `json:"jobSeeker,omitempty"`
}

type BirthDateOn

type BirthDateOn struct {
	Month int `json:"month,omitempty"`
	Day   int `json:"day,omitempty"`
}

type COMLinkedinPemberlyTextBold

type COMLinkedinPemberlyTextBold struct {
}

type COMLinkedinVoyagerFeedRenderArticleComponent

type COMLinkedinVoyagerFeedRenderArticleComponent struct {
	TemplateType            string                                                    `json:"templateType,omitempty"`
	Urn                     string                                                    `json:"urn,omitempty"`
	LargeImage              *Image                                                    `json:"largeImage,omitempty"`
	Subtitle                *Text                                                     `json:"subtitle,omitempty"`
	NavigationContext       *NavigationContext                                        `json:"navigationContext,omitempty"`
	Type                    string                                                    `json:"type,omitempty"`
	Title                   *Text                                                     `json:"title,omitempty"`
	AuthorNavigationContext *NavigationContext                                        `json:"authorNavigationContext,omitempty"`
	Author                  *Text                                                     `json:"author,omitempty"`
	Description             *Text                                                     `json:"description,omitempty"`
	FollowAction            *COMLinkedinVoyagerFeedRenderArticleComponentFollowAction `json:"followAction,omitempty"`
	SubtitleImage           *Image                                                    `json:"subtitleImage,omitempty"`
	SubscribeAction         *SubscribeAction                                          `json:"subscribeAction,omitempty"`
}

type COMLinkedinVoyagerFeedRenderArticleComponentFollowAction

type COMLinkedinVoyagerFeedRenderArticleComponentFollowAction struct {
	FollowTrackingActionType   string         `json:"followTrackingActionType,omitempty"`
	FollowingInfo              *FollowingInfo `json:"followingInfo,omitempty"`
	UnfollowTrackingActionType string         `json:"unfollowTrackingActionType,omitempty"`
	Type                       string         `json:"type,omitempty"`
	TrackingActionType         string         `json:"trackingActionType,omitempty"`
}

type COMLinkedinVoyagerIdentityProfileCustomWebsite

type COMLinkedinVoyagerIdentityProfileCustomWebsite struct {
	Label string `json:"label,omitempty"`
}

type CallToAction

type CallToAction struct {
	CallToActionType    string              `json:"callToActionType,omitempty"`
	Visible             bool                `json:"visible,omitempty"`
	CallToActionMessage CallToActionMessage `json:"callToActionMessage,omitempty"`
	URL                 string              `json:"url,omitempty"`
}

type CallToActionMessage

type CallToActionMessage struct {
	TextDirection string `json:"textDirection,omitempty"`
	Text          string `json:"text,omitempty"`
}

type Certification

type Certification struct {
	DateRange                DateRange   `json:"dateRange,omitempty"`
	MultiLocaleLicenseNumber MultiLocale `json:"multiLocaleLicenseNumber,omitempty"`
	CompanyUrn               string      `json:"companyUrn,omitempty"`
	URL                      string      `json:"url,omitempty"`
	MultiLocaleAuthority     MultiLocale `json:"multiLocaleAuthority,omitempty"`
	EntityUrn                string      `json:"entityUrn,omitempty"`
	Authority                string      `json:"authority,omitempty"`
	Name                     string      `json:"name,omitempty"`
	MultiLocaleName          MultiLocale `json:"multiLocaleName,omitempty"`
	LicenseNumber            string      `json:"licenseNumber,omitempty"`
	Company                  Company     `json:"company,omitempty"`
	RecipeType               string      `json:"$recipeType,omitempty"`
	DisplaySource            string      `json:"displaySource,omitempty"`
	TimePeriod               TimePeriod  `json:"timePeriod,omitempty"`
}

type CertificationNode

type CertificationNode struct {
	ProfileID  string          `json:"profileId,omitempty"`
	Paging     Paging          `json:"paging,omitempty"`
	RecipeType string          `json:"$recipeType,omitempty"`
	Elements   []Certification `json:"elements,omitempty"`
	// contains filtered or unexported fields
}

CertificationNode contains user educations info

func (*CertificationNode) Error

func (c *CertificationNode) Error() error

func (*CertificationNode) Next

func (c *CertificationNode) Next() bool

func (*CertificationNode) SetLinkedin

func (c *CertificationNode) SetLinkedin(ln *Linkedin)

type Commentary

type Commentary struct {
	TemplateType string `json:"templateType,omitempty"`
	Text         Text   `json:"text,omitempty"`
}

type Comments

type Comments struct {
	Metadata *Metadata     `json:"metadata,omitempty"`
	Paging   Paging        `json:"paging,omitempty"`
	Elements []interface{} `json:"elements,omitempty"`
}

type Company

type Company struct {
	// Elements contains companies from search company result
	Elements                                                []Company                   `json:"elements,omitempty"`
	ExtendedElements                                        []interface{}               `json:"extendedElements,omitempty"`
	Industry                                                map[string]Industry         `json:"industry,omitempty"`
	IndustryUrns                                            []string                    `json:"industryUrns,omitempty"`
	AntiAbuseAnnotations                                    []AntiAbuseAnnotation       `json:"$anti_abuse_annotations,omitempty"`
	EntityUrn                                               string                      `json:"entityUrn,omitempty"`
	MiniCompany                                             *MiniCompany                `json:"miniCompany,omitempty"`
	EmployeeCountRange                                      *CountRange                 `json:"employeeCountRange,omitempty"`
	Industries                                              []string                    `json:"industries,omitempty"`
	Name                                                    string                      `json:"name,omitempty"`
	RecipeType                                              string                      `json:"$recipeType,omitempty"`
	UniversalName                                           string                      `json:"universalName,omitempty"`
	URL                                                     string                      `json:"url,omitempty"`
	ObjectUrn                                               string                      `json:"objectUrn,omitempty"`
	Showcase                                                bool                        `json:"showcase,omitempty"`
	Active                                                  bool                        `json:"active,omitempty"`
	TrackingID                                              string                      `json:"trackingId,omitempty"`
	Image                                                   *Image                      `json:"image,omitempty"`
	Subtext                                                 *Text                       `json:"subtext,omitempty"`
	TargetUrn                                               string                      `json:"targetUrn,omitempty"`
	Text                                                    *Text                       `json:"text,omitempty"`
	DashTargetUrn                                           string                      `json:"dashTargetUrn,omitempty"`
	Type                                                    string                      `json:"type,omitempty"`
	TrackingUrn                                             string                      `json:"trackingUrn,omitempty"`
	Title                                                   *Title                      `json:"title,omitempty"`
	Headline                                                *Text                       `json:"headline,omitempty"`
	Subline                                                 *Text                       `json:"subline,omitempty"`
	VideosTabVisible                                        bool                        `json:"videosTabVisible,omitempty"`
	StaffCount                                              int                         `json:"staffCount,omitempty"`
	CompanyEmployeesSearchPageURL                           string                      `json:"companyEmployeesSearchPageUrl,omitempty"`
	ViewerFollowingJobsUpdates                              bool                        `json:"viewerFollowingJobsUpdates,omitempty"`
	MyCompanyVisible                                        bool                        `json:"myCompanyVisible,omitempty"`
	Permissions                                             *Permissions                `json:"permissions,omitempty"`
	EligibleForOnlineJobPostingEntry                        bool                        `json:"eligibleForOnlineJobPostingEntry,omitempty"`
	FollowingInfo                                           *FollowingInfo              `json:"followingInfo,omitempty"`
	ViewerEmployee                                          bool                        `json:"viewerEmployee,omitempty"`
	AffiliatedCompaniesWithEmployeesRollup                  []interface{}               `json:"affiliatedCompaniesWithEmployeesRollup,omitempty"`
	AffiliatedCompaniesWithJobsRollup                       []interface{}               `json:"affiliatedCompaniesWithJobsRollup,omitempty"`
	OrganizationLixes                                       []interface{}               `json:"organizationLixes,omitempty"`
	Tagline                                                 string                      `json:"tagline,omitempty"`
	ViewerCurrentEmployee                                   bool                        `json:"viewerCurrentEmployee,omitempty"`
	MultiLocaleTaglines                                     *MultiLocaleTaglines        `json:"multiLocaleTaglines,omitempty"`
	Headquarter                                             *Location                   `json:"headquarter,omitempty"`
	PublishedProductsOwner                                  bool                        `json:"publishedProductsOwner,omitempty"`
	CompanyPageURL                                          string                      `json:"companyPageUrl,omitempty"`
	ViewerConnectedToAdministrator                          bool                        `json:"viewerConnectedToAdministrator,omitempty"`
	DataVersion                                             int                         `json:"dataVersion,omitempty"`
	AssociatedHashtags                                      []string                    `json:"associatedHashtags,omitempty"`
	ShowcasePages                                           []interface{}               `json:"showcasePages,omitempty"`
	ClaimableByViewer                                       bool                        `json:"claimableByViewer,omitempty"`
	JobSearchPageURL                                        string                      `json:"jobSearchPageUrl,omitempty"`
	AutoGenerated                                           bool                        `json:"autoGenerated,omitempty"`
	ViewerPermissions                                       *ViewerPermissions          `json:"viewerPermissions,omitempty"`
	StaffingCompany                                         bool                        `json:"staffingCompany,omitempty"`
	CompanyIndustries                                       []Industry                  `json:"companyIndustries,omitempty"`
	CallToAction                                            *CallToAction               `json:"callToAction,omitempty"`
	AdsRule                                                 string                      `json:"adsRule,omitempty"`
	StaffCountRange                                         *CountRange                 `json:"staffCountRange,omitempty"`
	Claimable                                               bool                        `json:"claimable,omitempty"`
	Specialities                                            []string                    `json:"specialities,omitempty"`
	ConfirmedLocations                                      []Location                  `json:"confirmedLocations,omitempty"`
	VersionTag                                              string                      `json:"versionTag,omitempty"`
	LcpTreatment                                            bool                        `json:"lcpTreatment,omitempty"`
	AssociatedHashtagsResolutionResults                     *json.RawMessage            `json:"associatedHashtagsResolutionResults,omitempty"`
	EmployeeExperienceSettings                              *EmployeeExperienceSettings `json:"employeeExperienceSettings,omitempty"`
	Description                                             string                      `json:"description,omitempty"`
	PaidCompany                                             bool                        `json:"paidCompany,omitempty"`
	ViewerPendingAdministrator                              bool                        `json:"viewerPendingAdministrator,omitempty"`
	AffiliatedCompanies                                     []interface{}               `json:"affiliatedCompanies,omitempty"`
	FoundedOn                                               *Date                       `json:"foundedOn,omitempty"`
	CompanyType                                             *CompanyType                `json:"companyType,omitempty"`
	Groups                                                  []interface{}               `json:"groups,omitempty"`
	EventsTabVisible                                        bool                        `json:"eventsTabVisible,omitempty"`
	BackgroundCoverImage                                    *BackgroundCoverImage       `json:"backgroundCoverImage,omitempty"`
	AffiliatedCompaniesWithEmployeesRollupResolutionResults map[string]Company          `json:"affiliatedCompaniesWithEmployeesRollupResolutionResults,omitempty"`
	Phone                                                   Phone                       `json:"phone,omitempty"`
	OverviewPhoto                                           Photo                       `json:"overviewPhoto,omitempty"`
	CoverPhoto                                              Photo                       `json:"coverPhoto,omitempty"`
	School                                                  string                      `json:"school,omitempty"`
	AffiliatedCompaniesResolutionResults                    map[string]Company          `json:"affiliatedCompaniesResolutionResults,omitempty"`
	ShowcasePagesResolutionResults                          map[string]Company          `json:"showcasePagesResolutionResults,omitempty"`
	GroupsResolutionResults                                 map[string]Group            `json:"groupsResolutionResults,omitempty"`
}

Company contain information about a company. Company can also represent a school since school is also a company, see Linkedin.SchoolByName

type CompanyNode

type CompanyNode struct {
	Metadata Metadata  `json:"metadata,omitempty"`
	Elements []Company `json:"elements,omitempty"`
	Paging   Paging    `json:"paging,omitempty"`
	Keywords string    `json:"keywords,omitempty"`
	// contains filtered or unexported fields
}

func (*CompanyNode) Error

func (comp *CompanyNode) Error() error

func (*CompanyNode) Next

func (comp *CompanyNode) Next() bool

func (*CompanyNode) SetLinkedin

func (comp *CompanyNode) SetLinkedin(ln *Linkedin)

type CompanyType

type CompanyType struct {
	LocalizedName string `json:"localizedName,omitempty"`
	Code          string `json:"code,omitempty"`
}

type ContactInfo

type ContactInfo struct {
	BirthDateOn               BirthDateOn   `json:"birthDateOn,omitempty"`
	EmailAddress              string        `json:"emailAddress,omitempty"`
	BirthdayVisibilitySetting string        `json:"birthdayVisibilitySetting,omitempty"`
	Address                   string        `json:"address,omitempty"`
	EntityUrn                 string        `json:"entityUrn,omitempty"`
	Websites                  []Website     `json:"websites,omitempty"`
	TwitterHandles            []interface{} `json:"twitterHandles,omitempty"`
	PhoneNumbers              []PhoneNumber `json:"phoneNumbers,omitempty"`
}

type Content

type Content struct {
	COMLinkedinVoyagerFeedRenderArticleComponent COMLinkedinVoyagerFeedRenderArticleComponent `json:"com.linkedin.voyager.feed.render.ArticleComponent,omitempty"`
}

type Coordinate

type Coordinate struct {
	X float64 `json:"x,omitempty"`
	Y float64 `json:"y,omitempty"`
}

type CountRange

type CountRange struct {
	Start  int `json:"start,omitempty"`
	Length int `json:"length,omitempty"`
	End    int `json:"end,omitempty"`
}

type Country

type Country struct {
	RecipeType           string `json:"$recipeType,omitempty"`
	EntityUrn            string `json:"entityUrn,omitempty"`
	DefaultLocalizedName string `json:"defaultLocalizedName,omitempty"`
}

type CropInfo

type CropInfo struct {
	X      int `json:"x,omitempty"`
	Width  int `json:"width,omitempty"`
	Y      int `json:"y,omitempty"`
	Height int `json:"height,omitempty"`
}

type Cursor

type Cursor interface {
	// SetLinkedin set Linkedin client
	SetLinkedin(ln *Linkedin)
	// Next fetch next page content
	Next() bool
	// Error return error occured while cursoring
	Error() error
}

Cursor is interface for all nodes that have pagination/cursor

type Date

type Date struct {
	Year  int `json:"year,omitempty"`
	Month int `json:"month,omitempty"`
	Day   int `json:"day,omitempty"`
}

type DateRange

type DateRange struct {
	Start *Date `json:"start,omitempty"`
	End   *Date `json:"end,omitempty"`
}

DateRange is kinda like TimePeriod, don't know why linkedin have to use different approach for different object

type DisplayImageReference

type DisplayImageReference struct {
	VectorImage *VectorImage `json:"vectorImage,omitempty"`
	URL         string       `json:"url,omitempty"`
}

type Distance

type Distance struct {
	Value string `json:"value"`
}

type Education

type Education struct {
	EntityUrn                     string                         `json:"entityUrn,omitempty"`
	Activities                    string                         `json:"activities,omitempty"`
	School                        *School                        `json:"school,omitempty"`
	TimePeriod                    *TimePeriod                    `json:"timePeriod,omitempty"`
	Grade                         string                         `json:"grade,omitempty"`
	Description                   string                         `json:"description,omitempty"`
	DegreeName                    string                         `json:"degreeName,omitempty"`
	SchoolName                    string                         `json:"schoolName,omitempty"`
	FieldOfStudy                  string                         `json:"fieldOfStudy,omitempty"`
	Recommendations               []interface{}                  `json:"recommendations,omitempty"`
	SchoolUrn                     string                         `json:"schoolUrn,omitempty"`
	DateRange                     *DateRange                     `json:"dateRange,omitempty"`
	ProfileTreasuryMediaEducation *ProfileTreasuryMediaEducation `json:"profileTreasuryMediaEducation,omitempty"`
	MultiLocaleSchoolName         *MultiLocale                   `json:"multiLocaleSchoolName,omitempty"`
	MultiLocaleFieldOfStudy       *MultiLocale                   `json:"multiLocaleFieldOfStudy,omitempty"`
	RecipeType                    string                         `json:"$recipeType,omitempty"`
	MultiLocaleDescription        *MultiLocale                   `json:"multiLocaleDescription,omitempty"`
	MultiLocaleActivities         *MultiLocale                   `json:"multiLocaleActivities,omitempty"`
	MultiLocaleDegreeName         *MultiLocale                   `json:"multiLocaleDegreeName,omitempty"`
}

type EducationNode

type EducationNode struct {
	// will set after calling ProfileNode.Educations()
	ProfileID string      `json:"profileId,omitempty"`
	Elements  []Education `json:"elements,omitempty"`
	Paging    Paging      `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

EducationNode contains user educations info

func (*EducationNode) Error

func (edu *EducationNode) Error() error

func (*EducationNode) Next

func (edu *EducationNode) Next() bool

func (*EducationNode) SetLinkedin

func (edu *EducationNode) SetLinkedin(ln *Linkedin)

type EmployeeExperienceSettings

type EmployeeExperienceSettings struct {
	MyCompanyVisibility                   bool   `json:"myCompanyVisibility,omitempty"`
	PymkVisibility                        string `json:"pymkVisibility,omitempty"`
	MyCompanyEmployeeVerificationRequired bool   `json:"myCompanyEmployeeVerificationRequired,omitempty"`
	HighlightsVisibility                  string `json:"highlightsVisibility,omitempty"`
	TrendingContentVisibility             string `json:"trendingContentVisibility,omitempty"`
	BroadcastsVisibility                  string `json:"broadcastsVisibility,omitempty"`
}

type Entity

type Entity struct {
	MiniCompany *MiniCompany `json:"com.linkedin.voyager.entities.shared.MiniCompany,omitempty"`
	MiniGroup   *MiniGroup   `json:"com.linkedin.voyager.entities.shared.MiniGroup,omitempty"`
	MiniSchool  *MiniSchool  `json:"com.linkedin.voyager.entities.shared.MiniSchool,omitempty"`
	MiniProfile *MiniProfile `json:"com.linkedin.voyager.entities.shared.MiniProfile,omitempty"`
}

type ExtendedElement

type ExtendedElement struct {
	RelatedSearches []RelatedSearch `json:"relatedSearches,omitempty"`
	Type            string          `json:"type,omitempty"`
}

type Filters

type Filters struct {
	ResultType string `q:"resultType" json:"resultType,omitempty"`
}

Filters is generic filter used by no filter search, such as school search or company search

type FollowingInfo

type FollowingInfo struct {
	FollowingType string `json:"followingType,omitempty"`
	EntityUrn     string `json:"entityUrn,omitempty"`
	FollowerCount int    `json:"followerCount,omitempty"`
	Following     bool   `json:"following,omitempty"`
	TrackingUrn   string `json:"trackingUrn,omitempty"`
}

type Geo

type Geo struct {
	CountryUrn                             string   `json:"countryUrn,omitempty"`
	Country                                *Country `json:"country,omitempty"`
	DefaultLocalizedNameWithoutCountryName string   `json:"defaultLocalizedNameWithoutCountryName,omitempty"`
	EntityUrn                              string   `json:"entityUrn,omitempty"`
	RecipeType                             string   `json:"$recipeType,omitempty"`
	DefaultLocalizedName                   string   `json:"defaultLocalizedName,omitempty"`
	TargetUrn                              string   `json:"targetUrn,omitempty"`
	Text                                   Text     `json:"text,omitempty"`
	DashTargetUrn                          string   `json:"dashTargetUrn,omitempty"`
	Type                                   string   `json:"type,omitempty"`
	TrackingID                             string   `json:"trackingId,omitempty"`
}

type GeoLocation

type GeoLocation struct {
	Geo        Geo    `json:"geo,omitempty"`
	GeoUrn     string `json:"geoUrn,omitempty"`
	RecipeType string `json:"$recipeType,omitempty"`
}

type GeoNode

type GeoNode struct {
	Metadata Metadata `json:"metadata,omitempty"`
	Elements []Geo    `json:"elements,omitempty"`
	Paging   Paging   `json:"paging,omitempty"`
	Keywords string   `json:"keywords,omitempty"`
	// contains filtered or unexported fields
}

func (*GeoNode) Error

func (g *GeoNode) Error() error

func (*GeoNode) Next

func (g *GeoNode) Next() bool

func (*GeoNode) SetLinkedin

func (g *GeoNode) SetLinkedin(ln *Linkedin)

type Group

type Group struct {
	// Elements contains groups from search group result
	Elements                                    []Group       `json:"elements,omitempty"`
	ExtendedElements                            []interface{} `json:"extendedElements,omitempty"`
	Image                                       *Image        `json:"image,omitempty"`
	TargetUrn                                   string        `json:"targetUrn,omitempty"`
	TrackingUrn                                 string        `json:"trackingUrn,omitempty"`
	Title                                       *Text         `json:"title,omitempty"`
	Type                                        string        `json:"type,omitempty"`
	Headline                                    *Text         `json:"headline,omitempty"`
	Subline                                     *Text         `json:"subline,omitempty"`
	TrackingID                                  string        `json:"trackingId,omitempty"`
	GroupName                                   string        `json:"groupName,omitempty"`
	EntityUrn                                   string        `json:"entityUrn,omitempty"`
	MemberCount                                 int           `json:"memberCount,omitempty"`
	HeroImage                                   *Image        `json:"heroImage,omitempty"`
	RecipeType                                  string        `json:"$recipeType,omitempty"`
	URL                                         string        `json:"url,omitempty"`
	DashEntityUrn                               string        `json:"dashEntityUrn"`
	DisplayNotificationSubscriptionLevelOptions bool          `json:"displayNotificationSubscriptionLevelOptions"`
	GroupPostNotificationsEdgeSettingUrn        string        `json:"groupPostNotificationsEdgeSettingUrn"`
	PostApprovalEnabled                         bool          `json:"postApprovalEnabled"`
	Description                                 *Text         `json:"description"`
	ShowPostApprovalOption                      bool          `json:"showPostApprovalOption"`
	Rules                                       string        `json:"rules"`
	Owners                                      []Attribute   `json:"owners"`
	LogoUrn                                     string        `json:"logoUrn"`
	InvitationLevel                             string        `json:"invitationLevel"`
	MemberConnectionsCount                      int           `json:"memberConnectionsCount"`
	CreatedAt                                   int           `json:"createdAt"`
	Name                                        *Text         `json:"name"`
	GlobalNewPostNotificationSettingOn          bool          `json:"globalNewPostNotificationSettingOn"`
	RecommendByAdminAvailable                   bool          `json:"recommendByAdminAvailable"`
	GroupUrn                                    string        `json:"groupUrn"`
	Managers                                    []Attribute   `json:"managers"`
}

func (*Group) GroupID

func (gr *Group) GroupID() int

type GroupNode

type GroupNode struct {
	Keywords string   `json:"keywords,omitempty"`
	Metadata Metadata `json:"metadata,omitempty"`
	Elements []Group  `json:"elements,omitempty"`
	Paging   Paging   `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

func (*GroupNode) Error

func (gr *GroupNode) Error() error

func (*GroupNode) Next

func (gr *GroupNode) Next() bool

func (*GroupNode) SetLinkedin

func (gr *GroupNode) SetLinkedin(ln *Linkedin)

type Honor

type Honor struct {
	MultiLocaleTitle       *MultiLocale     `json:"multiLocaleTitle,omitempty"`
	Description            string           `json:"description,omitempty"`
	OccupationUnion        *OccupationUnion `json:"occupationUnion,omitempty"`
	Title                  string           `json:"title,omitempty"`
	Issuer                 string           `json:"issuer,omitempty"`
	IssuedOn               *IssuedOn        `json:"issuedOn,omitempty"`
	EntityUrn              string           `json:"entityUrn,omitempty"`
	RecipeType             string           `json:"$recipeType,omitempty"`
	MultiLocaleIssuer      *MultiLocale     `json:"multiLocaleIssuer,omitempty"`
	MultiLocaleDescription *MultiLocale     `json:"multiLocaleDescription,omitempty"`
	Occupation             string           `json:"occupation,omitempty"`
	IssueDate              *Date            `json:"issueDate,omitempty"`
}

type HonorNode

type HonorNode struct {
	ProfileID  string  `json:"profileId,omitempty"`
	Paging     Paging  `json:"paging,omitempty"`
	RecipeType string  `json:"$recipeType,omitempty"`
	Elements   []Honor `json:"elements,omitempty"`
	// contains filtered or unexported fields
}

func (*HonorNode) Error

func (hn *HonorNode) Error() error

func (*HonorNode) Next

func (hn *HonorNode) Next() bool

func (*HonorNode) SetLinkedin

func (hn *HonorNode) SetLinkedin(ln *Linkedin)

type Image

type Image struct {
	COMLinkedinCommonVectorImage *VectorImage  `json:"com.linkedin.common.VectorImage,omitempty"`
	Attributes                   []Attribute   `json:"attributes,omitempty"`
	AccessibilityTextAttributes  []interface{} `json:"accessibilityTextAttributes,omitempty"`
}

type Industry

type Industry struct {
	LocalizedName       string `json:"localizedName,omitempty"`
	Name                string `json:"name,omitempty"`
	RecipeType          string `json:"$recipeType,omitempty"`
	EntityUrn           string `json:"entityUrn,omitempty"`
	CompanyNameRequired bool   `json:"companyNameRequired,omitempty"`
	TargetUrn           string `json:"targetUrn,omitempty"`
	ObjectUrn           string `json:"objectUrn,omitempty"`
	Text                Text   `json:"text,omitempty"`
	DashTargetUrn       string `json:"dashTargetUrn,omitempty"`
	Type                string `json:"type,omitempty"`
	TrackingID          string `json:"trackingId,omitempty"`
}

type IndustryNode

type IndustryNode struct {
	Metadata Metadata   `json:"metadata,omitempty"`
	Elements []Industry `json:"elements,omitempty"`
	Paging   Paging     `json:"paging,omitempty"`
	Keywords string     `json:"keywords,omitempty"`
	// contains filtered or unexported fields
}

func (*IndustryNode) Error

func (ind *IndustryNode) Error() error

func (*IndustryNode) Next

func (ind *IndustryNode) Next() bool

func (*IndustryNode) SetLinkedin

func (ind *IndustryNode) SetLinkedin(ln *Linkedin)

type Insight

type Insight struct {
	Type        string      `json:"type,omitempty"`
	InsightText InsightText `json:"insightText,omitempty"`
}

type InsightText

type InsightText struct {
	TextDirection string                 `json:"textDirection,omitempty"`
	Attributes    []InsightTextAttribute `json:"attributes,omitempty"`
	Text          string                 `json:"text,omitempty"`
}

type InsightTextAttribute

type InsightTextAttribute struct {
	Start  int    `json:"start,omitempty"`
	Length int    `json:"length,omitempty"`
	Type   string `json:"type,omitempty"`
}

type Interest

type Interest struct {
	Entity        *Entity        `json:"entity,omitempty"`
	FollowingInfo *FollowingInfo `json:"followingInfo,omitempty"`
}

type InterestNode

type InterestNode struct {
	ProfileID string     `json:"profileId,omitempty"`
	Type      string     `json:"type,omitempty"`
	Elements  []Interest `json:"elements,omitempty"`
	Paging    Paging     `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

func (*InterestNode) Error

func (inter *InterestNode) Error() error

func (*InterestNode) Next

func (inter *InterestNode) Next() bool

func (*InterestNode) SetLinkedin

func (inter *InterestNode) SetLinkedin(ln *Linkedin)

type IssuedOn

type IssuedOn struct {
	Month int `json:"month,omitempty"`
	Year  int `json:"year,omitempty"`
}

type Linkedin

type Linkedin struct {
	// contains filtered or unexported fields
}

Linkedin hold all (covered) features and data resources

func New

func New() *Linkedin

New initiate new Linkedin object

func (*Linkedin) CompanyByName

func (ln *Linkedin) CompanyByName(name string) (*CompanyNode, error)

func (*Linkedin) GroupByID

func (ln *Linkedin) GroupByID(id int) (*Group, error)

func (*Linkedin) ProfileByUsername

func (ln *Linkedin) ProfileByUsername(username string) (*ProfileNode, error)

ProfileByUsername lookup profile with basic information by public identifier (username)

func (*Linkedin) SchoolByName

func (ln *Linkedin) SchoolByName(name string) (*SchoolNode, error)

SchoolByName lookup school by universal name.

func (*Linkedin) SearchCompany

func (ln *Linkedin) SearchCompany(keywords string) (*CompanyNode, error)

SearchCompany search companies by keywords

func (*Linkedin) SearchGeo

func (ln *Linkedin) SearchGeo(keywords string) (*GeoNode, error)

SearchGeo search geolocation by keywords

func (*Linkedin) SearchGroup

func (ln *Linkedin) SearchGroup(keywords string) (*GroupNode, error)

SearchGroup search groups by keywords

func (*Linkedin) SearchIndustry

func (ln *Linkedin) SearchIndustry(keywords string) (*IndustryNode, error)

SearchIndustry search industries by keywords

func (*Linkedin) SearchPeople

func (ln *Linkedin) SearchPeople(keywords string, filter *PeopleSearchFilter, ctx *QueryContext, origin string) (*PeopleNode, error)

SearchPeople search people based on filter. If filter is nil, default value will be used, and so with ctx and origin

func (*Linkedin) SearchSchool

func (ln *Linkedin) SearchSchool(keywords string) (*SchoolNode, error)

SearchSchool search school by keywords

func (*Linkedin) SearchService

func (ln *Linkedin) SearchService(keywords string) (*ServiceNode, error)

SearchService search service by keywords

func (*Linkedin) SetCookieStr

func (ln *Linkedin) SetCookieStr(c string)

SetCookieStr set Linkedin session cookie string

func (*Linkedin) SetCookies

func (ln *Linkedin) SetCookies(c []*http.Cookie)

SetCookies set Linkedin session cookies from parsed cookie string

func (*Linkedin) SetProxy

func (ln *Linkedin) SetProxy(p string) error

SetProxy set proxy to client

type Locale

type Locale struct {
	Country              string                `json:"country,omitempty"`
	Language             string                `json:"language,omitempty"`
	RecipeType           string                `json:"$recipeType,omitempty"`
	AntiAbuseAnnotations []AntiAbuseAnnotation `json:"$anti_abuse_annotations,omitempty"`
}

type Location

type Location struct {
	PreferredGeoPlace string `json:"preferredGeoPlace,omitempty"`
	CountryCode       string `json:"countryCode,omitempty"`
	GeographicArea    string `json:"geographicArea,omitempty"`
	Country           string `json:"country,omitempty"`
	City              string `json:"city,omitempty"`
	PostalCode        string `json:"postalCode,omitempty"`
	Description       string `json:"description,omitempty"`
	Headquarter       bool   `json:"headquarter,omitempty"`
	Line2             string `json:"line2,omitempty"`
	Line1             string `json:"line1,omitempty"`
}
type Logo struct {
	// Sometimes the images stored in here
	COMLinkedinCommonVectorImage *VectorImage `json:"com.linkedin.common.VectorImage,omitempty"`
	// Sometimes in here, make sure to check both of these fields
	VectorImage *VectorImage `json:"vectorImage,omitempty"`
	Image       *Image       `json:"image,omitempty"`
}

Logo ususally used in Company or School for their logo image

type MediaProcessorImage

type MediaProcessorImage struct {
	ID string `json:"id,omitempty"`
}

type MemberDistance

type MemberDistance struct {
	Value string `json:"value,omitempty"`
}

type Metadata

type Metadata struct {
	PaginationToken      string       `json:"paginationToken,omitempty"`
	NewRelevanceFeed     bool         `json:"newRelevanceFeed,omitempty"`
	ID                   string       `json:"id,omitempty"`
	Type                 string       `json:"type,omitempty"`
	QueryAfterTime       int          `json:"queryAfterTime,omitempty"`
	Urn                  string       `json:"urn,omitempty"`
	ActionsPosition      string       `json:"actionsPosition,omitempty"`
	ActionTriggerEnabled bool         `json:"actionTriggerEnabled,omitempty"`
	DetailPageType       string       `json:"detailPageType,omitempty"`
	ShareAudience        string       `json:"shareAudience,omitempty"`
	ShareUrn             string       `json:"shareUrn,omitempty"`
	ExcludedFromSeen     bool         `json:"excludedFromSeen,omitempty"`
	ActionsUrn           string       `json:"actionsUrn,omitempty"`
	Actions              []Action     `json:"actions,omitempty"`
	TrackingData         TrackingData `json:"trackingData,omitempty"`
}

type MiniCompany

type MiniCompany struct {
	ObjectUrn     string `json:"objectUrn,omitempty"`
	EntityUrn     string `json:"entityUrn,omitempty"`
	Name          string `json:"name,omitempty"`
	Showcase      bool   `json:"showcase,omitempty"`
	Active        bool   `json:"active,omitempty"`
	UniversalName string `json:"universalName,omitempty"`
	TrackingID    string `json:"trackingId,omitempty"`
}

type MiniGroup

type MiniGroup struct {
	GroupName        string `json:"groupName,omitempty"`
	ObjectUrn        string `json:"objectUrn,omitempty"`
	GroupDescription string `json:"groupDescription,omitempty"`
	EntityUrn        string `json:"entityUrn,omitempty"`
	TrackingID       string `json:"trackingId,omitempty"`
}

type MiniProfile

type MiniProfile struct {
	FirstName        string           `json:"firstName,omitempty"`
	LastName         string           `json:"lastName,omitempty"`
	Occupation       string           `json:"occupation,omitempty"`
	ObjectUrn        string           `json:"objectUrn,omitempty"`
	EntityUrn        string           `json:"entityUrn,omitempty"`
	PublicIdentifier string           `json:"publicIdentifier,omitempty"`
	Picture          *Picture         `json:"picture,omitempty"`
	TrackingID       string           `json:"trackingId,omitempty"`
	BackgroundImage  *BackgroundImage `json:"backgroundImage,omitempty"`
}

type MiniSchool

type MiniSchool struct {
	SchoolName string `json:"schoolName,omitempty"`
	ObjectUrn  string `json:"objectUrn,omitempty"`
	EntityUrn  string `json:"entityUrn,omitempty"`
	TrackingID string `json:"trackingId,omitempty"`
}

type MultiLocale

type MultiLocale struct {
	EnUS string `json:"en_US,omitempty"`
}

type MultiLocalePronunciationAudio

type MultiLocalePronunciationAudio struct {
	EnUS *PronunciationAudio `json:"en_US,omitempty"`
}

type MultiLocaleTaglines

type MultiLocaleTaglines struct {
	Localized       MultiLocale `json:"localized,omitempty"`
	PreferredLocale Locale      `json:"preferredLocale,omitempty"`
}

type Name

type Name struct {
	TextDirection string      `json:"textDirection,omitempty"`
	Attributes    []Attribute `json:"attributes,omitempty"`
	Text          string      `json:"text,omitempty"`
}
type NavigationContext struct {
	TrackingActionType string `json:"trackingActionType,omitempty"`
	AccessibilityText  string `json:"accessibilityText,omitempty"`
	ActionTarget       string `json:"actionTarget,omitempty"`
}

type OccupationUnion

type OccupationUnion struct {
	ProfilePosition string `json:"profilePosition,omitempty"`
}

type Organization

type Organization struct {
	EntityUrn               string      `json:"entityUrn,omitempty"`
	DateRange               DateRange   `json:"dateRange,omitempty"`
	Name                    string      `json:"name,omitempty"`
	MultiLocaleName         MultiLocale `json:"multiLocaleName,omitempty"`
	RecipeType              string      `json:"$recipeType,omitempty"`
	PositionHeld            string      `json:"positionHeld,omitempty"`
	MultiLocalePositionHeld MultiLocale `json:"multiLocalePositionHeld,omitempty"`
	TimePeriod              *TimePeriod `json:"timePeriod,omitempty"`
	Position                string      `json:"position,omitempty"`
}

type OrganizationNode

type OrganizationNode struct {
	ProfileID  string         `json:"profileId,omitempty"`
	Paging     Paging         `json:"paging,omitempty"`
	RecipeType string         `json:"$recipeType,omitempty"`
	Elements   []Organization `json:"elements,omitempty"`
	// contains filtered or unexported fields
}

OrganizationNode contains user organizations info

func (*OrganizationNode) Error

func (org *OrganizationNode) Error() error

func (*OrganizationNode) Next

func (org *OrganizationNode) Next() bool

func (*OrganizationNode) SetLinkedin

func (org *OrganizationNode) SetLinkedin(ln *Linkedin)

type Paging

type Paging struct {
	// set entities per page
	Count int `json:"count,omitempty"`
	// set start cursor
	Start int `json:"start,omitempty"`
	// total entities in this node
	Total int `json:"total,omitempty"`
	// Linkedin cursor link?
	Links      []interface{} `json:"links,omitempty"`
	RecipeType string        `json:"$recipeType,omitempty"`
}

Paging control resource cursoring. It is highly advised to NOT CHANGE ANY OF THE VALUES OF Paging as it can cause infinite loop when cursoring

type People

type People struct {
	// Elements contains peoples from search people result
	Elements             []People          `json:"elements,omitempty"`
	ExtendedElements     []ExtendedElement `json:"extendedElements,omitempty"`
	Image                Image             `json:"image,omitempty"`
	Subtext              Text              `json:"subtext,omitempty"`
	TargetUrn            string            `json:"targetUrn,omitempty"`
	ObjectUrn            string            `json:"objectUrn,omitempty"`
	Text                 Text              `json:"text,omitempty"`
	DashTargetUrn        string            `json:"dashTargetUrn,omitempty"`
	Type                 string            `json:"type,omitempty"`
	TrackingID           string            `json:"trackingId,omitempty"`
	MemberDistance       *MemberDistance   `json:"memberDistance,omitempty"`
	SocialProofImagePile []Image           `json:"socialProofImagePile,omitempty"`
	TrackingUrn          string            `json:"trackingUrn,omitempty"`
	NavigationURL        string            `json:"navigationUrl,omitempty"`
	Title                *Title            `json:"title,omitempty"`
	Headless             bool              `json:"headless,omitempty"`
	Badges               *Badges           `json:"badges,omitempty"`
	SocialProofText      string            `json:"socialProofText,omitempty"`
	SnippetText          *SnippetText      `json:"snippetText,omitempty"`
	SecondaryTitle       *Title            `json:"secondaryTitle,omitempty"`
	PublicIdentifier     string            `json:"publicIdentifier,omitempty"`
	Headline             *Title            `json:"headline,omitempty"`
	NameMatch            bool              `json:"nameMatch,omitempty"`
	Subline              *Title            `json:"subline,omitempty"`
	Insights             []Insight         `json:"insights,omitempty"`
}

type PeopleNode

type PeopleNode struct {
	Metadata     Metadata            `json:"metadata,omitempty"`
	Elements     []People            `json:"elements,omitempty"`
	Paging       Paging              `json:"paging,omitempty"`
	Keywords     string              `json:"keywords,omitempty"`
	Filters      *PeopleSearchFilter `json:"peopleSearchFilter,omitempty"`
	QueryContext *QueryContext       `json:"queryContext,omitempty"`
	Origin       string              `json:"origin,omitempty"`
	// contains filtered or unexported fields
}

func (*PeopleNode) Error

func (ppl *PeopleNode) Error() error

func (*PeopleNode) Next

func (ppl *PeopleNode) Next() bool

func (*PeopleNode) SetLinkedin

func (ppl *PeopleNode) SetLinkedin(ln *Linkedin)

type PeopleSearchFilter

type PeopleSearchFilter struct {
	CurrentCompany  []int    `q:"currentCompany" json:"currentCompany,omitempty"`
	PastCompany     []int    `q:"pastCompany" json:"pastCompany,omitempty"`
	GeoURN          []int    `q:"geoUrn" json:"geoUrn,omitempty"`
	Industry        []int    `q:"industry" json:"industry,omitempty"`
	Network         []string `q:"network" json:"network,omitempty"`
	ProfileLanguage []string `q:"profileLanguage" json:"profileLanguage,omitempty"`
	School          []int    `q:"school" json:"school,omitempty"`
	ServiceCategory []string `q:"serviceCategory" json:"serviceCategory,omitempty"`
	// Profile ID
	ConnectionOf    string   `q:"connectionOf" json:"connectionOf,omitempty"`
	ContactInterest []string `q:"contactInterest" json:"contactInterest,omitempty"`
	FirstName       string   `q:"firstName" json:"firstName,omitempty"`
	LastName        string   `q:"lastName" json:"lastName,omitempty"`
	Title           string   `q:"title" json:"title,omitempty"`
	Company         string   `q:"company" json:"company,omitempty"`
	// It will be still 'school', but with string value, i don't know why Linkedin have such ambiguous parameter.
	// So you will have 'school' param with array of int, and 'school' param with string
	SchoolStr string `q:"schoolStr" json:"schoolStr,omitempty"`

	// will automaticaly set
	ResultType string `q:"resultType" json:"resultType,omitempty"`
}

PeopleSearchFilter is filter for people search.

type Permissions

type Permissions struct {
	LandingPageAdmin bool `json:"landingPageAdmin,omitempty"`
	Admin            bool `json:"admin,omitempty"`
	AdAccountHolder  bool `json:"adAccountHolder,omitempty"`
}

type Phone

type Phone struct {
	Number string `json:"number,omitempty"`
}

type PhoneNumber

type PhoneNumber struct {
	Type   string `json:"type,omitempty"`
	Number string `json:"number,omitempty"`
}

type Photo

type Photo struct {
	COMLinkedinVoyagerCommonMediaProcessorImage MediaProcessorImage `json:"com.linkedin.voyager.common.MediaProcessorImage,omitempty"`
}

type PhotoFilterEditInfo

type PhotoFilterEditInfo struct {
	BottomLeft      *Coordinate `json:"bottomLeft,omitempty"`
	Vignette        float64     `json:"vignette,omitempty"`
	BottomRight     *Coordinate `json:"bottomRight,omitempty"`
	TopRight        *Coordinate `json:"topRight,omitempty"`
	Saturation      float64     `json:"saturation,omitempty"`
	Brightness      float64     `json:"brightness,omitempty"`
	PhotoFilterType string      `json:"photoFilterType,omitempty"`
	Contrast        float64     `json:"contrast,omitempty"`
	TopLeft         *Coordinate `json:"topLeft,omitempty"`
	RecipeType      string      `json:"$recipeType,omitempty"`
}

type Picture

type Picture struct {
	COMLinkedinCommonVectorImage *VectorImage `json:"com.linkedin.common.VectorImage,omitempty"`
}

type Position

type Position struct {
	LocationName    string     `json:"locationName,omitempty"`
	EntityUrn       string     `json:"entityUrn,omitempty"`
	GeoLocationName string     `json:"geoLocationName,omitempty"`
	GeoUrn          string     `json:"geoUrn,omitempty"`
	CompanyName     string     `json:"companyName,omitempty"`
	TimePeriod      TimePeriod `json:"timePeriod,omitempty"`
	Company         Company    `json:"company,omitempty"`
	Title           string     `json:"title,omitempty"`
	Region          string     `json:"region,omitempty"`
	CompanyUrn      string     `json:"companyUrn,omitempty"`
	Recommendations []string   `json:"recommendations,omitempty"`
	Description     *string    `json:"description,omitempty"`
	Honors          []string   `json:"honors,omitempty"`
}

type PositionGroup

type PositionGroup struct {
	EntityUrn                      string             `json:"entityUrn,omitempty"`
	DateRange                      *DateRange         `json:"dateRange,omitempty"`
	MultiLocaleCompanyName         *MultiLocale       `json:"multiLocaleCompanyName,omitempty"`
	CompanyName                    string             `json:"companyName,omitempty"`
	ProfilePositionInPositionGroup *PositionGroupNode `json:"profilePositionInPositionGroup,omitempty"`
	Company                        *Company           `json:"company,omitempty"`
	RecipeType                     string             `json:"$recipeType,omitempty"`
	CompanyUrn                     string             `json:"companyUrn,omitempty"`
	Title                          string             `json:"title,omitempty"`
	EmploymentTypeUrn              string             `json:"employmentTypeUrn,omitempty"`
	MultiLocaleGeoLocationName     *MultiLocale       `json:"multiLocaleGeoLocationName,omitempty"`
	ShouldShowSourceOfHireBadge    bool               `json:"shouldShowSourceOfHireBadge,omitempty"`
	LocationName                   string             `json:"locationName,omitempty"`
	MultiLocaleTitle               *MultiLocale       `json:"multiLocaleTitle,omitempty"`
	EmploymentType                 *Industry          `json:"employmentType,omitempty"`
	GeoUrn                         string             `json:"geoUrn,omitempty"`
	ProfileTreasuryMediaPosition   *PositionGroupNode `json:"profileTreasuryMediaPosition,omitempty"`
	RegionUrn                      string             `json:"regionUrn,omitempty"`
	GeoLocationName                string             `json:"geoLocationName,omitempty"`
	MultiLocaleLocationName        *MultiLocale       `json:"multiLocaleLocationName,omitempty"`
	Description                    string             `json:"description,omitempty"`
	MultiLocaleDescription         *MultiLocale       `json:"multiLocaleDescription,omitempty"`
	MiniCompany                    *MiniCompany       `json:"miniCompany,omitempty"`
	TimePeriod                     *TimePeriod        `json:"timePeriod,omitempty"`
	Name                           string             `json:"name,omitempty"`
	Positions                      []Position         `json:"positions,omitempty"`
	Paging                         *Paging            `json:"paging,omitempty"`
}

type PositionGroupNode

type PositionGroupNode struct {
	ProfileID  string          `json:"profileId,omitempty"`
	Paging     Paging          `json:"paging,omitempty"`
	RecipeType string          `json:"$recipeType,omitempty"`
	Elements   []PositionGroup `json:"elements,omitempty"`
	// contains filtered or unexported fields
}

func (*PositionGroupNode) Error

func (post *PositionGroupNode) Error() error

func (*PositionGroupNode) Next

func (post *PositionGroupNode) Next() bool

func (*PositionGroupNode) SetLinkedin

func (post *PositionGroupNode) SetLinkedin(ln *Linkedin)

type Profile

type Profile struct {
	BirthDateOn                           *Date                          `json:"birthDateOn,omitempty"`
	ObjectUrn                             string                         `json:"objectUrn,omitempty"`
	MultiLocaleLastName                   *MultiLocale                   `json:"multiLocaleLastName,omitempty"`
	MultiLocaleFirstNamePronunciationHint *MultiLocale                   `json:"multiLocaleFirstNamePronunciationHint,omitempty"`
	ProfileOrganizations                  *OrganizationNode              `json:"profileOrganizations,omitempty"`
	MultiLocaleLastNamePronunciationHint  *MultiLocale                   `json:"multiLocaleLastNamePronunciationHint,omitempty"`
	ProfileEducations                     *EducationNode                 `json:"profileEducations,omitempty"`
	MultiLocaleFirstName                  *MultiLocale                   `json:"multiLocaleFirstName,omitempty"`
	PublicIdentifier                      string                         `json:"publicIdentifier,omitempty"`
	ProfileCertifications                 *CertificationNode             `json:"profileCertifications,omitempty"`
	TrackingID                            string                         `json:"trackingId,omitempty"`
	MultiLocaleSummary                    MultiLocale                    `json:"multiLocaleSummary,omitempty"`
	VersionTag                            string                         `json:"versionTag,omitempty"`
	ProfilePicture                        *ProfilePicture                `json:"profilePicture,omitempty"`
	FirstName                             string                         `json:"firstName,omitempty"`
	ProfileSkills                         *SkillNode                     `json:"profileSkills,omitempty"`
	RecipeType                            string                         `json:"$recipeType,omitempty"`
	MultiLocaleHeadline                   *MultiLocale                   `json:"multiLocaleHeadline,omitempty"`
	Memorialized                          bool                           `json:"memorialized,omitempty"`
	LastName                              string                         `json:"lastName,omitempty"`
	VolunteerCauses                       []string                       `json:"volunteerCauses,omitempty"`
	ShowPremiumSubscriberBadge            bool                           `json:"showPremiumSubscriberBadge,omitempty"`
	Industry                              *Industry                      `json:"industry,omitempty"`
	GeoLocationBackfilled                 bool                           `json:"geoLocationBackfilled,omitempty"`
	MultiLocaleFullNamePronunciationAudio *MultiLocalePronunciationAudio `json:"multiLocaleFullNamePronunciationAudio,omitempty"`
	Premium                               bool                           `json:"premium,omitempty"`
	Influencer                            bool                           `json:"influencer,omitempty"`
	EntityUrn                             string                         `json:"entityUrn,omitempty"`
	Headline                              string                         `json:"headline,omitempty"`
	Summary                               string                         `json:"summary,omitempty"`
	SupportedLocales                      []Locale                       `json:"supportedLocales,omitempty"`
	EducationOnProfileTopCardShown        bool                           `json:"educationOnProfileTopCardShown,omitempty"`
	IndustryUrn                           string                         `json:"industryUrn,omitempty"`
	ProfilePositionGroups                 *PositionGroupNode             `json:"profilePositionGroups,omitempty"`
	GeoLocation                           *GeoLocation                   `json:"geoLocation,omitempty"`
	Location                              *Location                      `json:"location,omitempty"`
	BackgroundPicture                     *BackgroundPicture             `json:"backgroundPicture,omitempty"`
	PrimaryLocale                         *Locale                        `json:"primaryLocale,omitempty"`
	ContactInfo                           *ContactInfo                   `json:"contactInfo,omitempty"`
}

Profile represent user profile

type ProfileNode

type ProfileNode struct {
	Elements []Profile `json:"elements,omitempty"`
	Paging   Paging    `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

ProfileNode contains user profile info

func (*ProfileNode) Activity

func (p *ProfileNode) Activity(in string) (*ActivityNode, error)

func (*ProfileNode) Certifications

func (p *ProfileNode) Certifications() *CertificationNode

Certifications prepare CertificationNode for cursoring

func (*ProfileNode) Connections

func (p *ProfileNode) Connections() (*PeopleNode, error)

Connections return profile connections. You can perform this action by calling Linkedin.SearchPeople

func (*ProfileNode) ContactInfo

func (p *ProfileNode) ContactInfo() (*ContactInfo, error)

ContactInfo get profile contact info

func (*ProfileNode) Educations

func (p *ProfileNode) Educations() *EducationNode

Educations prepare EducationNode for cursoring

func (*ProfileNode) GivenRecommendation

func (p *ProfileNode) GivenRecommendation() (*RecommendationNode, error)

GivenRecommendation get profile given recommendations

func (*ProfileNode) Interest

func (p *ProfileNode) Interest(in string) (*InterestNode, error)

Interest get profile interests

func (*ProfileNode) Organizations

func (p *ProfileNode) Organizations() *OrganizationNode

Organizations prepare OrganizarionNode for cursoring

func (*ProfileNode) PositionGroups

func (p *ProfileNode) PositionGroups() *PositionGroupNode

PositionGroups prepare PositionGroups for cursoring

func (*ProfileNode) ProfileID

func (p *ProfileNode) ProfileID() string

ProfileID return profile's ID, parsed from EntityURN

func (*ProfileNode) ReceivedRecommendation

func (p *ProfileNode) ReceivedRecommendation() (*RecommendationNode, error)

ReceivedRecommendation get profile received recommendations

func (*ProfileNode) Skills

func (p *ProfileNode) Skills() *SkillNode

Skills prepare SkillNode for cursoring

type ProfilePicture

type ProfilePicture struct {
	RecipeType            string                 `json:"$recipeType,omitempty"`
	DisplayImageReference *DisplayImageReference `json:"displayImageReference,omitempty"`
	DisplayImageUrn       string                 `json:"displayImageUrn,omitempty"`
	PhotoFilterEditInfo   *PhotoFilterEditInfo   `json:"photoFilterEditInfo,omitempty"`
}

ProfilePicture contains multiple qualities of profile picture

type ProfileTreasuryMediaEducation

type ProfileTreasuryMediaEducation struct {
	Paging     Paging        `json:"paging,omitempty"`
	RecipeType string        `json:"$recipeType,omitempty"`
	Elements   []interface{} `json:"elements,omitempty"`
}

type PronunciationAudio

type PronunciationAudio struct {
	Duration   int    `json:"duration,omitempty"`
	URN        string `json:"urn,omitempty"`
	RecipeType string `json:"$recipeType,omitempty"`
	URL        string `json:"url,omitempty"`
}

type Query

type Query struct {
	Attributes []QueryAttribute `json:"attributes,omitempty"`
	Text       string           `json:"text,omitempty"`
}

type QueryAttribute

type QueryAttribute struct {
	Start  int        `json:"start,omitempty"`
	Length int        `json:"length,omitempty"`
	Type   *TypeClass `json:"type,omitempty"`
}

type QueryContext

type QueryContext struct {
	SpellCorrectionEnabled bool     `q:"spellCorrectionEnabled" json:"spellCorrectionEnabled,omitempty"`
	RelatedSearchesEnabled bool     `q:"relatedSearchesEnabled" json:"relatedSearchesEnabled,omitempty"`
	FlagshipSearchIntent   string   `q:"flagshipSearchIntent" json:"flagshipSearchIntent,omitempty"`
	GeoVersion             int      `q:"geoVersion" json:"geoVersion,omitempty"`
	BingGeoSubTypeFilters  []string `q:"bingGeoSubTypeFilters" json:"bingGeoSubTypeFilters,omitempty"`
}

type ReactionTypeCount

type ReactionTypeCount struct {
	Count        int    `json:"count,omitempty"`
	ReactionType string `json:"reactionType,omitempty"`
}

type Recommendation

type Recommendation struct {
	EntityUrn                      string       `json:"entityUrn,omitempty"`
	Created                        int          `json:"created,omitempty"`
	Recommendee                    *MiniProfile `json:"recommendee,omitempty"`
	RecommendationText             string       `json:"recommendationText,omitempty"`
	RecommendeeEntity              string       `json:"recommendeeEntity,omitempty"`
	VisibilityOnRecommenderProfile string       `json:"visibilityOnRecommenderProfile,omitempty"`
	LastModified                   int          `json:"lastModified,omitempty"`
	Relationship                   string       `json:"relationship,omitempty"`
	Recommender                    *MiniProfile `json:"recommender,omitempty"`
	Status                         string       `json:"status,omitempty"`
}

type RecommendationNode

type RecommendationNode struct {
	ProfileID string           `json:"profileId,omitempty"`
	Q         string           `json:"q,omitempty"`
	Elements  []Recommendation `json:"elements,omitempty"`
	Paging    Paging           `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

func (*RecommendationNode) Error

func (rec *RecommendationNode) Error() error

func (*RecommendationNode) Next

func (rec *RecommendationNode) Next() bool

func (*RecommendationNode) SetLinkedin

func (rec *RecommendationNode) SetLinkedin(ln *Linkedin)

type RelatedSearch

type RelatedSearch struct {
	Query      *Query `json:"query,omitempty"`
	TrackingID string `json:"trackingId,omitempty"`
}

type SaveAction

type SaveAction struct {
	EntityUrn string `json:"entityUrn,omitempty"`
	Saved     bool   `json:"saved,omitempty"`
}

type School

type School struct {
	// Element contains schools from search school result
	Elements                                                []School                    `json:"elements,omitempty"`
	ExtendedElements                                        []interface{}               `json:"extendedElements,omitempty"`
	ObjectUrn                                               string                      `json:"objectUrn,omitempty"`
	EntityUrn                                               string                      `json:"entityUrn,omitempty"`
	Active                                                  bool                        `json:"active,omitempty"`
	SchoolName                                              string                      `json:"schoolName,omitempty"`
	TrackingID                                              string                      `json:"trackingId,omitempty"`
	Image                                                   Image                       `json:"image,omitempty"`
	Subtext                                                 Text                        `json:"subtext,omitempty"`
	TargetUrn                                               string                      `json:"targetUrn,omitempty"`
	Text                                                    Text                        `json:"text,omitempty"`
	DashTargetUrn                                           string                      `json:"dashTargetUrn,omitempty"`
	Type                                                    string                      `json:"type,omitempty"`
	TrackingUrn                                             string                      `json:"trackingUrn,omitempty"`
	Title                                                   Title                       `json:"title,omitempty"`
	AntiAbuseAnnotations                                    []AntiAbuseAnnotation       `json:"$anti_abuse_annotations"`
	Name                                                    string                      `json:"name"`
	RecipeType                                              string                      `json:"$recipeType"`
	URL                                                     string                      `json:"url"`
	Industry                                                map[string]Industry         `json:"industry,omitempty"`
	IndustryUrns                                            []string                    `json:"industryUrns,omitempty"`
	MiniCompany                                             *MiniCompany                `json:"miniCompany,omitempty"`
	EmployeeCountRange                                      *CountRange                 `json:"employeeCountRange,omitempty"`
	Industries                                              []string                    `json:"industries,omitempty"`
	UniversalName                                           string                      `json:"universalName,omitempty"`
	Showcase                                                bool                        `json:"showcase,omitempty"`
	Headline                                                *Text                       `json:"headline,omitempty"`
	Subline                                                 *Text                       `json:"subline,omitempty"`
	VideosTabVisible                                        bool                        `json:"videosTabVisible,omitempty"`
	StaffCount                                              int                         `json:"staffCount,omitempty"`
	CompanyEmployeesSearchPageURL                           string                      `json:"companyEmployeesSearchPageUrl,omitempty"`
	ViewerFollowingJobsUpdates                              bool                        `json:"viewerFollowingJobsUpdates,omitempty"`
	MyCompanyVisible                                        bool                        `json:"myCompanyVisible,omitempty"`
	Permissions                                             *Permissions                `json:"permissions,omitempty"`
	EligibleForOnlineJobPostingEntry                        bool                        `json:"eligibleForOnlineJobPostingEntry,omitempty"`
	FollowingInfo                                           *FollowingInfo              `json:"followingInfo,omitempty"`
	ViewerEmployee                                          bool                        `json:"viewerEmployee,omitempty"`
	AffiliatedCompaniesWithEmployeesRollup                  []interface{}               `json:"affiliatedCompaniesWithEmployeesRollup,omitempty"`
	AffiliatedCompaniesWithJobsRollup                       []interface{}               `json:"affiliatedCompaniesWithJobsRollup,omitempty"`
	OrganizationLixes                                       []interface{}               `json:"organizationLixes,omitempty"`
	Tagline                                                 string                      `json:"tagline,omitempty"`
	ViewerCurrentEmployee                                   bool                        `json:"viewerCurrentEmployee,omitempty"`
	MultiLocaleTaglines                                     *MultiLocaleTaglines        `json:"multiLocaleTaglines,omitempty"`
	Headquarter                                             *Location                   `json:"headquarter,omitempty"`
	PublishedProductsOwner                                  bool                        `json:"publishedProductsOwner,omitempty"`
	CompanyPageURL                                          string                      `json:"companyPageUrl,omitempty"`
	ViewerConnectedToAdministrator                          bool                        `json:"viewerConnectedToAdministrator,omitempty"`
	DataVersion                                             int                         `json:"dataVersion,omitempty"`
	AssociatedHashtags                                      []string                    `json:"associatedHashtags,omitempty"`
	ShowcasePages                                           []interface{}               `json:"showcasePages,omitempty"`
	ClaimableByViewer                                       bool                        `json:"claimableByViewer,omitempty"`
	JobSearchPageURL                                        string                      `json:"jobSearchPageUrl,omitempty"`
	AutoGenerated                                           bool                        `json:"autoGenerated,omitempty"`
	ViewerPermissions                                       *ViewerPermissions          `json:"viewerPermissions,omitempty"`
	StaffingCompany                                         bool                        `json:"staffingCompany,omitempty"`
	CompanyIndustries                                       []Industry                  `json:"companyIndustries,omitempty"`
	CallToAction                                            *CallToAction               `json:"callToAction,omitempty"`
	AdsRule                                                 string                      `json:"adsRule,omitempty"`
	StaffCountRange                                         *CountRange                 `json:"staffCountRange,omitempty"`
	Claimable                                               bool                        `json:"claimable,omitempty"`
	Specialities                                            []string                    `json:"specialities,omitempty"`
	ConfirmedLocations                                      []Location                  `json:"confirmedLocations,omitempty"`
	VersionTag                                              string                      `json:"versionTag,omitempty"`
	LcpTreatment                                            bool                        `json:"lcpTreatment,omitempty"`
	AssociatedHashtagsResolutionResults                     *json.RawMessage            `json:"associatedHashtagsResolutionResults,omitempty"`
	EmployeeExperienceSettings                              *EmployeeExperienceSettings `json:"employeeExperienceSettings,omitempty"`
	Description                                             string                      `json:"description,omitempty"`
	PaidCompany                                             bool                        `json:"paidCompany,omitempty"`
	ViewerPendingAdministrator                              bool                        `json:"viewerPendingAdministrator,omitempty"`
	AffiliatedCompanies                                     []interface{}               `json:"affiliatedCompanies,omitempty"`
	FoundedOn                                               *Date                       `json:"foundedOn,omitempty"`
	CompanyType                                             *CompanyType                `json:"companyType,omitempty"`
	Groups                                                  []interface{}               `json:"groups,omitempty"`
	EventsTabVisible                                        bool                        `json:"eventsTabVisible,omitempty"`
	BackgroundCoverImage                                    *BackgroundCoverImage       `json:"backgroundCoverImage,omitempty"`
	AffiliatedCompaniesWithEmployeesRollupResolutionResults map[string]Company          `json:"affiliatedCompaniesWithEmployeesRollupResolutionResults,omitempty"`
	Phone                                                   Phone                       `json:"phone,omitempty"`
	OverviewPhoto                                           Photo                       `json:"overviewPhoto,omitempty"`
	CoverPhoto                                              Photo                       `json:"coverPhoto,omitempty"`
	School                                                  string                      `json:"school,omitempty"`
	AffiliatedCompaniesResolutionResults                    map[string]School           `json:"affiliatedCompaniesResolutionResults,omitempty"`
	ShowcasePagesResolutionResults                          map[string]School           `json:"showcasePagesResolutionResults,omitempty"`
	GroupsResolutionResults                                 map[string]Group
}

type SchoolNode

type SchoolNode struct {
	Keywords string   `json:"keywords,omitempty"`
	Metadata Metadata `json:"metadata,omitempty"`
	Elements []School `json:"elements,omitempty"`
	Paging   Paging   `json:"paging,omitempty"`
	// contains filtered or unexported fields
}

func (*SchoolNode) Error

func (sch *SchoolNode) Error() error

func (*SchoolNode) Next

func (sch *SchoolNode) Next() bool

func (*SchoolNode) SetLinkedin

func (sch *SchoolNode) SetLinkedin(ln *Linkedin)

type Service

type Service struct {
	TargetUrn     string `json:"targetUrn,omitempty"`
	ObjectUrn     string `json:"objectUrn,omitempty"`
	Text          Text   `json:"text,omitempty"`
	DashTargetUrn string `json:"dashTargetUrn,omitempty"`
	Type          string `json:"type,omitempty"`
	TrackingID    string `json:"trackingId,omitempty"`
}

type ServiceNode

type ServiceNode struct {
	Metadata Metadata  `json:"metadata,omitempty"`
	Elements []Service `json:"elements,omitempty"`
	Paging   Paging    `json:"paging,omitempty"`
	Keywords string    `json:"keywords,omitempty"`
	// contains filtered or unexported fields
}

func (*ServiceNode) Error

func (svc *ServiceNode) Error() error

func (*ServiceNode) Next

func (svc *ServiceNode) Next() bool

func (*ServiceNode) SetLinkedin

func (svc *ServiceNode) SetLinkedin(ln *Linkedin)

type Skill

type Skill struct {
	Name            string       `json:"name,omitempty"`
	MultiLocaleName *MultiLocale `json:"multiLocaleName,omitempty"`
	RecipeType      string       `json:"$recipeType,omitempty"`
	EntityUrn       string       `json:"entityUrn,omitempty"`
}

type SkillNode

type SkillNode struct {
	ProfileID  string  `json:"profileId,omitempty"`
	Paging     Paging  `json:"paging,omitempty"`
	Elements   []Skill `json:"elements,omitempty"`
	RecipeType string  `json:"$recipeType,omitempty"`
	// contains filtered or unexported fields
}

SkillNode contains list of profile skills

func (*SkillNode) Error

func (s *SkillNode) Error() error

func (*SkillNode) Next

func (s *SkillNode) Next() bool

func (*SkillNode) SetLinkedin

func (s *SkillNode) SetLinkedin(ln *Linkedin)

type SnippetText

type SnippetText struct {
	Attributes []InsightTextAttribute `json:"attributes,omitempty"`
	Text       string                 `json:"text,omitempty"`
}

type SocialDetail

type SocialDetail struct {
	ReactionElements          []interface{}              `json:"reactionElements,omitempty"`
	Comments                  *Comments                  `json:"comments,omitempty"`
	SocialPermissions         *SocialPermissions         `json:"socialPermissions,omitempty"`
	Liked                     bool                       `json:"liked,omitempty"`
	ShowShareButton           bool                       `json:"showShareButton,omitempty"`
	TotalShares               int                        `json:"totalShares,omitempty"`
	Urn                       string                     `json:"urn,omitempty"`
	ThreadID                  string                     `json:"threadId,omitempty"`
	AllowedCommentersScope    string                     `json:"allowedCommentersScope,omitempty"`
	TotalSocialActivityCounts *TotalSocialActivityCounts `json:"totalSocialActivityCounts,omitempty"`
	EntityUrn                 string                     `json:"entityUrn,omitempty"`
	CommentingDisabled        bool                       `json:"commentingDisabled,omitempty"`
	SocialUpdateType          string                     `json:"socialUpdateType,omitempty"`
	Likes                     *ActivityNode              `json:"likes,omitempty"`
}

type SocialPermissions

type SocialPermissions struct {
	CanPostComments bool   `json:"canPostComments,omitempty"`
	EntityUrn       string `json:"entityUrn,omitempty"`
	CanShare        bool   `json:"canShare,omitempty"`
	CanReact        bool   `json:"canReact,omitempty"`
}

type SubDescription

type SubDescription struct {
	TextDirection     string      `json:"textDirection,omitempty"`
	Attributes        []Attribute `json:"attributes,omitempty"`
	Text              string      `json:"text,omitempty"`
	AccessibilityText string      `json:"accessibilityText,omitempty"`
}

type SubscribeAction

type SubscribeAction struct {
	EntityUrn       string `json:"entityUrn,omitempty"`
	Subscribed      bool   `json:"subscribed,omitempty"`
	SubscriberCount int    `json:"subscriberCount,omitempty"`
}

type Text

type Text struct {
	TextDirection string        `json:"textDirection,omitempty"`
	Text          string        `json:"text,omitempty"`
	Attributes    []interface{} `json:"attributes,omitempty"`
}

type TimePeriod

type TimePeriod struct {
	EndDate   *Date `json:"endDate,omitempty"`
	StartDate *Date `json:"startDate,omitempty"`
}

TimePeriod represent a period of time

type Title

type Title struct {
	TextDirection string `json:"textDirection,omitempty"`
	Text          string `json:"text,omitempty"`
}

type TotalSocialActivityCounts

type TotalSocialActivityCounts struct {
	SocialDetailEntityUrn string              `json:"socialDetailEntityUrn,omitempty"`
	Urn                   string              `json:"urn,omitempty"`
	NumComments           int                 `json:"numComments,omitempty"`
	ReactionTypeCounts    []ReactionTypeCount `json:"reactionTypeCounts,omitempty"`
	EntityUrn             string              `json:"entityUrn,omitempty"`
	NumShares             int                 `json:"numShares,omitempty"`
	NumLikes              int                 `json:"numLikes,omitempty"`
	Liked                 bool                `json:"liked,omitempty"`
}

type TrackingData

type TrackingData struct {
	TrackingID string `json:"trackingId,omitempty"`
}

type Type

type Type struct {
	COMLinkedinVoyagerIdentityProfileCustomWebsite COMLinkedinVoyagerIdentityProfileCustomWebsite `json:"com.linkedin.voyager.identity.profile.CustomWebsite,omitempty"`
}

type TypeClass

type TypeClass struct {
	COMLinkedinPemberlyTextBold COMLinkedinPemberlyTextBold `json:"com.linkedin.pemberly.text.Bold,omitempty"`
}

type VectorImage

type VectorImage struct {
	RecipeType string `json:"$recipeType,omitempty"`
	// use RootURL + Artifact.FileIdentifyingURLPathSegment for creating url to an image
	RootURL   string     `json:"rootUrl,omitempty"`
	Artifacts []Artifact `json:"artifacts,omitempty"`
}

VectorImage store images of multiple qualities

type ViewerPermissions

type ViewerPermissions struct {
	CanReadPipelineBuilderAdminPage      bool   `json:"canReadPipelineBuilderAdminPage,omitempty"`
	CanCreateOrganicShare                bool   `json:"canCreateOrganicShare,omitempty"`
	CanUntagFromMention                  bool   `json:"canUntagFromMention,omitempty"`
	CanReadOrganizationVisitorAnalytics  bool   `json:"canReadOrganizationVisitorAnalytics,omitempty"`
	CanCreateComment                     bool   `json:"canCreateComment,omitempty"`
	CanDeleteShare                       bool   `json:"canDeleteShare,omitempty"`
	CanCreateReaction                    bool   `json:"canCreateReaction,omitempty"`
	CanEnableCommentsShare               bool   `json:"canEnableCommentsShare,omitempty"`
	CanDisableCommentsShare              bool   `json:"canDisableCommentsShare,omitempty"`
	CanDeleteDarkShare                   bool   `json:"canDeleteDarkShare,omitempty"`
	RecipeType                           string `json:"$recipeType,omitempty"`
	CanSeeOrganizationAdministrativePage bool   `json:"canSeeOrganizationAdministrativePage,omitempty"`
}

type Website

type Website struct {
	Type Type   `json:"type,omitempty"`
	URL  string `json:"url,omitempty"`
}

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL