Documentation
¶
Index ¶
- type AddCostCenterRequest
- type AddEmployerCandidacyCommentRequest
- type AddInterviewRequest
- type AddInterviewResponse
- type AddInterviewerRequest
- type AddLocationRequest
- type AddOpeningWatchersRequest
- type AddOrgUserRequest
- type Application
- type ApplicationColorTag
- type Assessment
- type Candidacy
- type ChangeOpeningStateRequest
- type CostCenter
- type CostCenterName
- type CostCenterState
- type CreateOpeningRequest
- type CreateOpeningResponse
- type DefunctCostCenterRequest
- type DefunctLocationRequest
- type DisableOrgUserRequest
- type EmployerInterview
- type EmployerSignInRequest
- type EmployerSignInResponse
- type EmployerTFARequest
- type EmployerTFAResponse
- type EmployerViewBio
- type EmployerWorkHistory
- type EnableOrgUserRequest
- type Endorser
- type FilterCandidacyInfosRequest
- type FilterOpeningsRequest
- type FilterOrgUsersRequest
- type GetApplicationsRequest
- type GetAssessmentRequest
- type GetCostCenterRequest
- type GetCostCentersRequest
- type GetEmployerInterviewsByCandidacyRequest
- type GetEmployerInterviewsByOpeningRequest
- type GetHubUserBioRequest
- type GetInterviewDetailsRequest
- type GetLocationRequest
- type GetLocationsRequest
- type GetOnboardStatusRequest
- type GetOnboardStatusResponse
- type GetOpeningRequest
- type GetOpeningWatchersRequest
- type GetResumeRequest
- type Interviewer
- type Location
- type LocationState
- type OfferToCandidateRequest
- type OnboardStatus
- type Opening
- type OpeningID
- type OpeningInfo
- type OrgUser
- type OrgUserShort
- type OrgUserState
- type OrgUserTiny
- type PutAssessmentRequest
- type RejectApplicationRequest
- type RemoveApplicationColorTagRequest
- type RemoveInterviewerRequest
- type RemoveOpeningWatcherRequest
- type RenameCostCenterRequest
- type RenameLocationRequest
- type SetApplicationColorTagRequest
- type SetOnboardPasswordRequest
- type ShortlistApplicationRequest
- type SignupOrgUserRequest
- type UpdateCostCenterRequest
- type UpdateLocationRequest
- type UpdateOpeningRequest
- type UpdateOrgUserRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddCostCenterRequest ¶
type AddCostCenterRequest struct { Name CostCenterName `json:"name" validate:"required,min=3,max=64"` Notes string `json:"notes,omitempty" validate:"max=1024"` }
type AddInterviewRequest ¶
type AddInterviewRequest struct { CandidacyID string `json:"candidacy_id" validate:"required"` StartTime time.Time `json:"start_time" validate:"required"` EndTime time.Time `json:"end_time" validate:"required"` InterviewType common.InterviewType `json:"interview_type" validate:"required,validate_interview_type"` Description string `json:"description" validate:"omitempty,max=2048"` InterviewerEmails []string `json:"interviewer_emails" validate:"omitempty,dive,email"` }
type AddInterviewResponse ¶
type AddInterviewResponse struct {
InterviewID string `json:"interview_id"`
}
type AddInterviewerRequest ¶
type AddLocationRequest ¶
type AddLocationRequest struct { Title string `json:"title" validate:"required,min=3,max=32"` CountryCode string `json:"country_code" validate:"required,len=3,validate_country_code"` PostalAddress string `json:"postal_address" validate:"required,min=3,max=1024"` PostalCode string `json:"postal_code" validate:"required,min=3,max=16"` OpenStreetMapURL string `json:"openstreetmap_url" validate:"omitempty,url,max=255"` CityAka []string `json:"city_aka" validate:"omitempty,validate_city_aka"` }
type AddOpeningWatchersRequest ¶
type AddOpeningWatchersRequest struct { OpeningID string `json:"opening_id" validate:"required"` Emails []common.EmailAddress `json:"emails" validate:"required"` }
type AddOrgUserRequest ¶
type AddOrgUserRequest struct { Name string `json:"name" validate:"required,min=3,max=255"` Email string `json:"email" validate:"required,email,min=3,max=255"` Roles common.OrgUserRoles `json:"roles" validate:"required,validate_org_user_roles"` }
type Application ¶
type Application struct { ID string `json:"id"` CoverLetter *string `json:"cover_letter,omitempty"` CreatedAt time.Time `json:"created_at"` HubUserHandle string `json:"hub_user_handle"` HubUserName string `json:"hub_user_name"` HubUserShortBio string `json:"hub_user_short_bio"` HubUserLastEmployerDomains []string `json:"hub_user_last_employer_domains,omitempty"` State common.ApplicationState `json:"state"` ColorTag *ApplicationColorTag `json:"color_tag,omitempty"` Endorsers []Endorser `json:"endorsers"` }
type ApplicationColorTag ¶
type ApplicationColorTag string
const ( // Any change here should reflect in the IsValid() method too GreenApplicationColorTag ApplicationColorTag = "GREEN" YellowApplicationColorTag ApplicationColorTag = "YELLOW" RedApplicationColorTag ApplicationColorTag = "RED" )
func (ApplicationColorTag) IsValid ¶
func (c ApplicationColorTag) IsValid() bool
type Assessment ¶
type Assessment struct { InterviewID string `json:"interview_id" validate:"required"` Decision common.InterviewersDecision `json:"decision" validate:"required"` Positives string `json:"positives" validate:"omitempty,max=4096"` Negatives string `json:"negatives" validate:"omitempty,max=4096"` OverallAssessment string `json:"overall_assessment" validate:"omitempty,max=4096"` FeedbackToCandidate string `json:"feedback_to_candidate" validate:"omitempty,max=4096"` FeedbackSubmittedBy string `json:"feedback_submitted_by" validate:"omitempty,email"` FeedbackSubmittedAt time.Time `json:"feedback_submitted_at" validate:"omitempty"` }
type Candidacy ¶
type Candidacy struct { CandidacyID string `json:"candidacy_id"` OpeningID string `json:"opening_id"` OpeningTitle string `json:"opening_title"` OpeningDescription string `json:"opening_description"` CandidacyState common.CandidacyState `json:"candidacy_state"` ApplicantName string `json:"applicant_name"` ApplicantHandle string `json:"applicant_handle"` }
type ChangeOpeningStateRequest ¶
type ChangeOpeningStateRequest struct { OpeningID string `json:"opening_id" validate:"required"` FromState common.OpeningState `json:"from_state" validate:"required"` ToState common.OpeningState `json:"to_state" validate:"required"` }
type CostCenter ¶
type CostCenter struct { Name CostCenterName `json:"name" validate:"required,min=3,max=64" db:"cost_center_name"` Notes string `json:"notes,omitempty" validate:"max=1024" db:"notes"` State CostCenterState `json:"state" db:"cost_center_state"` }
type CostCenterName ¶
type CostCenterName string
type CostCenterState ¶
type CostCenterState string
const ( ActiveCC CostCenterState = "ACTIVE_CC" DefunctCC CostCenterState = "DEFUNCT_CC" )
type CreateOpeningRequest ¶
type CreateOpeningRequest struct { Title string `json:"title" validate:"required,min=3,max=32"` Positions int `json:"positions" validate:"required,min=1,max=20"` JD string `json:"jd" validate:"required,min=10,max=1024"` Recruiter common.EmailAddress `json:"recruiter" validate:"required"` HiringManager common.EmailAddress `json:"hiring_manager" validate:"required"` HiringTeam []common.EmailAddress `json:"hiring_team,omitempty" validate:"omitempty,max=10"` CostCenterName CostCenterName `json:"cost_center_name" validate:"required"` LocationTitles []string `json:"location_titles,omitempty" validate:"omitempty,max=10"` // TODO: Add validation for remote_country_codes and remote_timezones RemoteCountryCodes []common.CountryCode `json:"remote_country_codes,omitempty" validate:"omitempty,dive,validate_country_code,max=100"` RemoteTimezones []common.TimeZone `json:"remote_timezones,omitempty" validate:"omitempty,max=200"` OpeningType common.OpeningType `json:"opening_type" validate:"required,validate_opening_type"` YoeMin int `json:"yoe_min" validate:"min=0,max=100"` YoeMax int `json:"yoe_max" validate:"min=1,max=100"` // Optional fields EmployerNotes *string `json:"employer_notes,omitempty" validate:"omitempty,max=1024"` MinEducationLevel common.EducationLevel `json:"min_education_level" validate:"required,validate_education_level"` Salary *common.Salary `json:"salary,omitempty" validate:"omitempty"` // Optional fields Tags []common.OpeningTagID `json:"tags,omitempty" validate:"omitempty,max=3"` NewTags []string `json:"new_tags,omitempty" validate:"omitempty,max=3"` }
type CreateOpeningResponse ¶
type CreateOpeningResponse struct {
OpeningID string `json:"opening_id"`
}
type DefunctCostCenterRequest ¶
type DefunctCostCenterRequest struct {
Name CostCenterName `json:"name" validate:"required,min=3,max=64"`
}
type DefunctLocationRequest ¶
type DefunctLocationRequest struct {
Title string `json:"title" validate:"required,min=3,max=32"`
}
type DisableOrgUserRequest ¶
type DisableOrgUserRequest struct {
Email string `json:"email" validate:"required,email"`
}
type EmployerInterview ¶
type EmployerInterview struct { InterviewID string `json:"interview_id"` InterviewState common.InterviewState `json:"interview_state"` StartTime time.Time `json:"start_time"` EndTime time.Time `json:"end_time"` InterviewType common.InterviewType `json:"interview_type"` Description *string `json:"description"` CandidateName string `json:"candidate_name"` CandidateHandle string `json:"candidate_handle"` CandidateRSVPStatus common.RSVPStatus `json:"candidate_rsvp_status"` Interviewers []Interviewer `json:"interviewers"` InterviewersDecision *common.InterviewersDecision `json:"interviewers_decision"` Positives *string `json:"positives" validate:"omitempty,max=4096"` Negatives *string `json:"negatives" validate:"omitempty,max=4096"` OverallAssessment *string `json:"overall_assessment" validate:"omitempty,max=4096"` FeedbackToCandidate *string `json:"feedback_to_candidate" validate:"omitempty,max=4096"` FeedbackSubmittedBy *OrgUserTiny `json:"feedback_submitted_by"` FeedbackSubmittedAt *time.Time `json:"feedback_submitted_at"` CreatedAt time.Time `json:"created_at"` }
type EmployerSignInRequest ¶
type EmployerSignInRequest struct { ClientID string `json:"client_id" validate:"required,client_id"` Email common.EmailAddress `json:"email" validate:"required,email"` Password common.Password `json:"password" validate:"required,password"` }
type EmployerSignInResponse ¶
type EmployerSignInResponse struct {
Token string `json:"token"`
}
type EmployerTFARequest ¶
type EmployerTFAResponse ¶
type EmployerTFAResponse struct {
SessionToken string `json:"session_token"`
}
type EmployerViewBio ¶
type EmployerWorkHistory ¶
type EnableOrgUserRequest ¶
type EnableOrgUserRequest struct {
Email string `json:"email" validate:"required,email"`
}
type FilterCandidacyInfosRequest ¶
type FilterCandidacyInfosRequest struct { OpeningID *string `json:"opening_id" validate:"omitempty"` RecruiterEmail *string `json:"recruiter_email" validate:"omitempty"` State *string `json:"state" validate:"omitempty"` PaginationKey *string `json:"pagination_key" validate:"omitempty"` Limit int64 `json:"limit" validate:"required,min=0,max=40"` }
type FilterOpeningsRequest ¶
type FilterOpeningsRequest struct { State []common.OpeningState `json:"state,omitempty" validate:"omitempty,validate_opening_states"` FromDate *time.Time `json:"from_date,omitempty" validate:"omitempty,validate_opening_filter_start_date"` ToDate *time.Time `json:"to_date,omitempty" validate:"omitempty,validate_opening_filter_end_date"` PaginationKey string `json:"pagination_key,omitempty"` Limit int `json:"limit" validate:"max=40"` }
func (FilterOpeningsRequest) StatesAsStrings ¶
func (filterOpeningsReq FilterOpeningsRequest) StatesAsStrings() []string
type FilterOrgUsersRequest ¶
type FilterOrgUsersRequest struct { Prefix string `json:"prefix" validate:"omitempty,min=1,max=255"` State []OrgUserState `json:"state" validate:"omitempty,validate_org_user_state"` PaginationKey string `json:"pagination_key" validate:"omitempty,email"` Limit int `json:"limit" validate:"omitempty,min=0,max=40"` }
Should we graphqlize this for auto-completion ?
func (*FilterOrgUsersRequest) StatesAsStrings ¶
func (filterOrgUsersReq *FilterOrgUsersRequest) StatesAsStrings() []string
type GetApplicationsRequest ¶
type GetApplicationsRequest struct { State common.ApplicationState `json:"state" validate:"validate_application_state"` SearchQuery *string `json:"search_query" validate:"omitempty,max=25"` ColorTagFilter *ApplicationColorTag `json:"color_tag_filter" validate:"omitempty"` OpeningID string `json:"opening_id" validate:"required"` PaginationKey *string `json:"pagination_key" validate:"omitempty"` Limit int64 `json:"limit" validate:"required,min=0,max=40"` }
type GetAssessmentRequest ¶
type GetAssessmentRequest struct {
InterviewID string `json:"interview_id" validate:"required"`
}
type GetCostCenterRequest ¶
type GetCostCenterRequest struct {
Name CostCenterName `json:"name" validate:"required,min=3,max=64"`
}
type GetCostCentersRequest ¶
type GetCostCentersRequest struct { Limit int `json:"limit,omitempty" validate:"max=100"` PaginationKey CostCenterName `json:"pagination_key,omitempty"` States []CostCenterState `json:"states,omitempty" validate:"validate_cc_states"` }
func (*GetCostCentersRequest) StatesAsStrings ¶
func (g *GetCostCentersRequest) StatesAsStrings() []string
type GetEmployerInterviewsByCandidacyRequest ¶
type GetEmployerInterviewsByCandidacyRequest struct { CandidacyID string `json:"candidacy_id" validate:"required"` States []common.InterviewState `json:"states" validate:"omitempty"` }
type GetEmployerInterviewsByOpeningRequest ¶
type GetEmployerInterviewsByOpeningRequest struct { OpeningID string `json:"opening_id" validate:"required"` States []common.InterviewState `json:"states" validate:"omitempty"` PaginationKey string `json:"pagination_key" validate:"omitempty"` Limit int64 `json:"limit" validate:"required,min=0,max=100"` }
type GetHubUserBioRequest ¶
type GetHubUserBioRequest struct {
Handle string `json:"handle" validate:"required"`
}
type GetInterviewDetailsRequest ¶
type GetInterviewDetailsRequest struct {
InterviewID string `json:"interview_id" validate:"required"`
}
type GetLocationRequest ¶
type GetLocationRequest struct {
Title string `json:"title" validate:"required,min=3,max=32"`
}
type GetLocationsRequest ¶
type GetLocationsRequest struct { States []LocationState `json:"states" validate:"omitempty,validate_location_state"` PaginationKey string `json:"pagination_key"` Limit int `json:"limit,omitempty" validate:"omitempty,min=0,max=100"` }
func (*GetLocationsRequest) StatesAsStrings ¶
func (r *GetLocationsRequest) StatesAsStrings() []string
type GetOnboardStatusRequest ¶
type GetOnboardStatusRequest struct {
ClientID string `json:"client_id" validate:"required,client_id"`
}
type GetOnboardStatusResponse ¶
type GetOnboardStatusResponse struct {
Status OnboardStatus `json:"status"`
}
type GetOpeningRequest ¶
type GetOpeningRequest struct {
ID string `json:"id" validate:"required"`
}
type GetOpeningWatchersRequest ¶
type GetOpeningWatchersRequest struct {
OpeningID string `json:"opening_id" validate:"required"`
}
type GetResumeRequest ¶
type GetResumeRequest struct {
ApplicationID string `json:"application_id" validate:"required"`
}
type Interviewer ¶
type Interviewer struct { Name string `json:"name"` Email string `json:"email"` RSVPStatus common.RSVPStatus `json:"rsvp_status"` }
type Location ¶
type Location struct { Title string `json:"title" db:"title"` CountryCode string `json:"country_code" db:"country_code"` PostalAddress string `json:"postal_address" db:"postal_address"` PostalCode string `json:"postal_code" db:"postal_code"` OpenStreetMapURL string `json:"openstreetmap_url" db:"openstreetmap_url"` CityAka []string `json:"city_aka" db:"city_aka"` State LocationState `json:"state" db:"location_state"` }
type LocationState ¶
type LocationState string
const ( ActiveLocation LocationState = "ACTIVE_LOCATION" DefunctLocation LocationState = "DEFUNCT_LOCATION" )
type OfferToCandidateRequest ¶
type OnboardStatus ¶
type OnboardStatus string
const ( DomainNotVerified OnboardStatus = "DOMAIN_NOT_VERIFIED" DomainVerifiedOnboardPending OnboardStatus = "DOMAIN_VERIFIED_ONBOARD_PENDING" DomainOnboarded OnboardStatus = "DOMAIN_ONBOARDED" )
type Opening ¶
type Opening struct { ID string `json:"id"` Title string `json:"title"` Positions int `json:"positions"` FilledPositions int `json:"filled_positions"` JD string `json:"jd"` Recruiter OrgUserShort `json:"recruiter"` HiringManager OrgUserShort `json:"hiring_manager"` HiringTeam []OrgUserShort `json:"hiring_team,omitempty"` CostCenterName CostCenterName `json:"cost_center_name"` LocationTitles []string `json:"location_titles,omitempty"` RemoteCountryCodes []common.CountryCode `json:"remote_country_codes,omitempty"` RemoteTimezones []common.TimeZone `json:"remote_timezones,omitempty"` OpeningType common.OpeningType `json:"opening_type"` YoeMin int `json:"yoe_min"` YoeMax int `json:"yoe_max"` State common.OpeningState `json:"state"` CreatedAt time.Time `json:"created_at"` LastUpdatedAt time.Time `json:"last_updated_at"` // Optional fields EmployerNotes *string `json:"employer_notes,omitempty"` MinEducationLevel common.EducationLevel `json:"min_education_level"` Salary *common.Salary `json:"salary,omitempty"` Tags []common.OpeningTag `json:"tags,omitempty"` }
type OpeningInfo ¶
type OpeningInfo struct { ID string `json:"id" db:"id"` Title string `json:"title" db:"title"` Positions int `json:"positions" db:"positions"` FilledPositions int `json:"filled_positions" db:"filled_positions"` Recruiter OrgUserShort `json:"recruiter" db:"recruiter"` HiringManager OrgUserShort `json:"hiring_manager" db:"hiring_manager"` CostCenterName CostCenterName `json:"cost_center_name" db:"cost_center_name"` OpeningType common.OpeningType `json:"opening_type" db:"opening_type"` State common.OpeningState `json:"state" db:"state"` CreatedAt time.Time `json:"created_at" db:"created_at"` LastUpdatedAt time.Time `json:"last_updated_at" db:"last_updated_at"` }
type OrgUser ¶
type OrgUser struct { Name string `json:"name" db:"name"` Email string `json:"email" db:"email"` Roles common.OrgUserRoles `json:"roles" db:"org_user_roles"` State OrgUserState `json:"state" db:"org_user_state"` }
type OrgUserShort ¶
type OrgUserShort struct { Name string `json:"name" db:"name"` Email string `json:"email" db:"email"` // If there is a HubUser (hub_users table in the db) who has the above email // as one of the VERIFIED emails in hub_users_official_emails table, // then this field will contain the handle of that HubUser. VetchiHandle *string `json:"vetchi_handle,omitempty" db:"vetchi_handle"` }
OrgUserShort is intended to be used in rendering of OrgUsers within the Employer UI, Autocompletion on Employer UI, etc. Not to be used on the Hub UI or even exposed on Hub APIs.
type OrgUserState ¶
type OrgUserState string
const ( // The user is active in the organization ActiveOrgUserState OrgUserState = "ACTIVE_ORG_USER" // The user has been added to the organization but not yet signed up AddedOrgUserState OrgUserState = "ADDED_ORG_USER" // The user is no longer active in the organization DisabledOrgUserState OrgUserState = "DISABLED_ORG_USER" // The user is replicated from a different directory service (e.g. LDAP, Google, Microsoft Active Directory, etc.) ReplicatedOrgUserState OrgUserState = "REPLICATED_ORG_USER" )
type OrgUserTiny ¶
type OrgUserTiny struct { Name string `json:"name" db:"name"` Email string `json:"email" db:"email"` }
OrgUserTiny is intended to be used in any details page within the Employer UI This does not contain the VetchiHandle field and so may be a little faster
type PutAssessmentRequest ¶
type PutAssessmentRequest struct { InterviewID string `json:"interview_id" validate:"required"` Decision common.InterviewersDecision `json:"decision" validate:"omitempty,validate_interviewers_decision"` Positives string `json:"positives" validate:"omitempty,max=4096"` Negatives string `json:"negatives" validate:"omitempty,max=4096"` OverallAssessment string `json:"overall_assessment" validate:"omitempty,max=4096"` FeedbackToCandidate string `json:"feedback_to_candidate" validate:"omitempty,max=4096"` MarkInterviewCompleted bool `json:"mark_interview_completed" validate:"omitempty"` }
type RejectApplicationRequest ¶
type RejectApplicationRequest struct {
ApplicationID string `json:"application_id" validate:"required"`
}
type RemoveApplicationColorTagRequest ¶
type RemoveApplicationColorTagRequest struct {
ApplicationID string `json:"application_id" validate:"required"`
}
type RemoveOpeningWatcherRequest ¶
type RemoveOpeningWatcherRequest struct { OpeningID string `json:"opening_id" validate:"required"` Email common.EmailAddress `json:"email" validate:"required"` }
type RenameCostCenterRequest ¶
type RenameCostCenterRequest struct { OldName CostCenterName `json:"old_name" validate:"required,min=3,max=64"` NewName CostCenterName `json:"new_name" validate:"required,min=3,max=64"` }
type RenameLocationRequest ¶
type SetApplicationColorTagRequest ¶
type SetApplicationColorTagRequest struct { ApplicationID string `json:"application_id" validate:"required"` ColorTag ApplicationColorTag `json:"color_tag" validate:"required,validate_application_color_tag"` }
type ShortlistApplicationRequest ¶
type ShortlistApplicationRequest struct {
ApplicationID string `json:"application_id" validate:"required"`
}
type SignupOrgUserRequest ¶
type UpdateCostCenterRequest ¶
type UpdateCostCenterRequest struct { Name CostCenterName `json:"name" validate:"required,min=3,max=64"` Notes string `json:"notes" validate:"required,max=1024"` }
type UpdateLocationRequest ¶
type UpdateLocationRequest struct { Title string `json:"title" validate:"required,min=3,max=32"` CountryCode string `json:"country_code" validate:"required,len=3,validate_country_code"` PostalAddress string `json:"postal_address" validate:"required,min=3,max=1024"` PostalCode string `json:"postal_code" validate:"required,min=3,max=16"` OpenStreetMapURL string `json:"openstreetmap_url" validate:"omitempty,url,max=255"` CityAka []string `json:"city_aka" validate:"omitempty,validate_city_aka"` }
type UpdateOpeningRequest ¶
type UpdateOpeningRequest struct {
OpeningID string `json:"opening_id" validate:"required"`
}
type UpdateOrgUserRequest ¶
type UpdateOrgUserRequest struct { Email string `json:"email" validate:"required,email,min=3,max=255"` Name string `json:"name" validate:"required,min=3,max=255"` Roles common.OrgUserRoles `json:"roles" validate:"required,validate_org_user_roles"` }
Click to show internal directories.
Click to hide internal directories.