model

package
v0.0.0-...-9b12781 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2024 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Application

type Application struct {
	// Application UID
	ID string `json:"id,omitempty"`

	// Opportunity profile associated with an application.
	OpportunityID string `json:"opportunityId,omitempty"`

	// Datestamp when application was created in Lever.
	CreatedAt *int64 `json:"createdAt,omitempty"`

	// An application can be of type referral, user, or posting. Applications of type referral are
	// created when a user refers a candidate for a job posting. Applications have type user when
	// they are applied manually to a posting in Lever. Applications have type posting when a
	// candidate applies to a job posting through your company's jobs page.
	Type string `json:"type,omitempty"`

	// Job posting to apply to candidate.
	PostingID string `json:"posting,omitempty"`

	// Job posting to apply to candidate. Returned if expand=posting is specified.
	Posting *Posting `json:"-"`

	// The owner of the job posting at the time when the candidate applies to that job.
	PostingOwnerID string `json:"postingOwner,omitempty"`

	// The owner of the job posting at the time when the candidate applies to that job. Returned if
	// expand=postingOwner is specified.
	PostingOwner *User `json:"-"`

	// The hiring manager of the job posting at the time when the candidate applies to that job.
	PostingHiringManagerID string `json:"postingHiringManager,omitempty"`

	// The hiring manager of the job posting at the time when the candidate applies to that job.
	// Returned if expand=postingHiringManager is specified.
	PostingHiringManager *User `json:"-"`

	// If the application is of type referral, this is the user who made the referral.
	UserID string `json:"user,omitempty"`

	// If the application is of type referral, this is the user who made the referral. Returned if
	// expand=user is specified.
	User *User `json:"-"`

	// Name of candidate who applied.
	Name string `json:"name,omitempty"`

	// Candidate email
	Email string `json:"email,omitempty"`

	// Candidate phone number
	Phone *Phone `json:"phone,omitempty"`

	// Candidate's current company or organization
	Company string `json:"company,omitempty"`

	// List of candidate links (e.g. personal website, LinkedIn profile, etc.)
	Links []string `json:"links,omitempty"`

	// Any additional comments from candidate included in job application
	Comments string `json:"comments,omitempty"`

	// An array of customized forms. If the application is of type referral, the custom questions
	// will include a referral form. If the application is type posting, the custom questions
	// include customized posting forms.
	CustomQuestions []any `json:"customQuestions,omitempty"`

	// Application archived status
	Archived *Archived `json:"archived,omitempty"`

	// If the application was archived as hired against a requisition, this is the data related to
	// the requisition.
	RequisitionForHire *ApplicationRequisitionForHire `json:"requisitionForHire,omitempty"`
}

When a candidate applies to a job posting, an application is created.

Lever is candidate-centric, meaning that candidates can exist in the system without being applied to a specific job posting. However, almost all candidates are applied to job postings, and thus almost all candidates have one or more applications.

There are three different ways that applications can be created in Lever:

* Through a posting: An application is created when a candidate applies to a job posting through your company's public or internal job site, or is submitted by an agency.

* By a user: A team member at your company manually adds a job posting to a specific candidate in Lever.

* As a referral: A team member at your company refers the candidate into Lever for a specific job posting.

Candidates can be applied to multiple job postings, meaning that candidates can have multiple applications. A candidate or contact may have multiple applications, each of which will be on a unique Opportunity. An Opportunity will have no more than one Application.

type ApplicationRequisitionForHire

type ApplicationRequisitionForHire struct {
	// The Lever id of the requisition against which the application was hired
	ID string `json:"id,omitempty"`

	// The requisitionCode field from the requisition.
	RequisitionCode string `json:"requisitionCode,omitempty"`

	// The Lever user id of the hiring manager specified on the requisition, if any.
	HiringManagerIdOnHire string `json:"hiringManagerOnHire,omitempty"`
}

Data related to an application requisition.

TODO: Determine whether this struct should be shared with other models.

type ArchiveReason

type ArchiveReason struct {
	// Archive reason UID
	ID string `json:"id,omitempty"`

	// The name of the archive reason as shown in the Lever interface.
	Text string `json:"text,omitempty"`

	// The status of the archive reason. Can be either active or inactive.
	Status string `json:"status,omitempty"`

	// The type of the archive reason. Can be either hired or non-hired.
	Type string `json:"type,omitempty"`
}

Archive reasons provide granularity behind to candidates who have exited your active hiring pipeline.

Candidates exit your active pipeline either due to being hired at your company or due to being rejected for a specific reason. These dispositions allow you to track each and every candidate who is no longer active within your pipeline.

type Archived

type Archived struct {
	// Datetime when application was last archived in Lever
	ArchivedAt *int64 `json:"archivedAt,omitempty"`

	// Reason why application was last archived
	ReasonID string `json:"reason,omitempty"`
}

Archived status.

type Contact

type Contact struct {
	// Contact UID
	ID string `json:"id,omitempty"`

	// Name of the contact
	Name string `json:"name,omitempty"`

	// Contact headline, typically a list of previous companies where the contact has worked or
	// schools that the contact has attended
	Headline string `json:"headline,omitempty"`

	// The current location of the contact
	Location *ContactLocation `json:"location,omitempty"`

	// Emails that the contact can be reached at
	Emails []string `json:"emails,omitempty"`

	// Indicates whether a contact has been anonymized. Anonymized contacts have their personal
	// information removed. Non-personal metadata may remain for accurate reporting purposes.
	IsAnonymized bool `json:"isAnonymized,omitempty"`

	// Phone numbers
	Phones []Phone `json:"phones,omitempty"`
}

A contact represents the person associated with one or more opportunities and the various methods to contact them.

type ContactLocation

type ContactLocation struct {
	// A single line description of the location
	Name string `json:"name,omitempty"`
}

The current location of the contact.

TODO: Determine whether this struct should be shared with other models.

type FeedbackForm

type FeedbackForm struct {
	// Form UID.
	ID string

	// Form type. Feedback forms are of type interview.
	Type string

	// Form title. This can be edited in Feedback and Form Settings.
	Text string

	// Form instructions.
	Instructions string

	// Form template UID. This form represents a completed form template.
	BaseTemplateID string

	// An array of form fields. Feedback forms support the follow field types:
	//     - code - for programming questions
	//     - date - special field for dates
	//     - dropdown - a dropdown menu
	//     - multiple choice - choose only one
	//     - multiple select - choose 1 or more
	//     - score system - overall candidate rating
	//     - score - thumbs up / thumbs down format
	//     - scorecard - customized evaluation for multiple skills
	//     - text - single line answer
	//     - textarea - longer form answer
	//     - yes/no - a yes or no question
	Forms []any

	// The user ID who completed and submitted the feedback.
	UserID string

	// The user who completed and submitted the feedback. Returned if expand=user is specified.
	User *User

	// The interview panel that the feedback is associated with, if the feedback is associated with
	// an interview.
	PanelID string

	// The interview for which the feedback was submitted. Manually added feedback forms will not
	// be associated with an interview.
	InterviewID string

	// Datetime when form was created.
	CreatedAt *int64

	// This value is null when the updatedAt property has not been previously set. This is likely
	// to occur for feedback that were created prior to the introduction of this property, and have
	// not since been updated.
	UpdatedAt *int64

	// Datetime when form was completed.
	CompletedAt *int64

	// Datetime when form was deleted.
	DeletedAt *int64
}

Feedback forms are added to Opportunities as they are completed after interviews by interviewers or they can be manually added directly to the profile.

type Interview

type Interview struct {
	// Interview UID
	ID string

	// Interview Panel UID
	PanelID string

	// Interview subject
	Subject string

	// Interview note
	Note string

	// Array of interviewers
	Interviewers []Interviewer

	// Name of timezone in which interview was scheduled to occur.
	Timezone string

	// Datetime when interview was created.
	CreatedAt *int64

	// Datetime when interview is scheduled to occur.
	Date *int64

	// Interview duration in minutes
	Duration int

	// Interview location. Usually the name of a booked conference room but can also be a phone
	// number to call.
	Location string

	// The feedback form template selected for this interview.
	FeedbackTemplateID string

	// The feedback forms IDs associated with this interview.
	FeedbackFormIDs []string

	// The feedback forms associated with this interview. Returned if expand=feedbackForms is
	// specified.
	FeedbackForms []FeedbackForm

	// Frequency of feedback reminders (i.e. once, daily, frequently, none). Defaults to
	// 'frequently' which is every 6 hours.
	FeedbackReminder string

	// The user ID who created the interview.
	UserID string

	// The user who created the interview. Returned if expand=user is specified.
	User *User

	// The stage ID in which the candidate resided when this interview was scheduled.
	StageID string

	// The stage in which the candidate resided when this interview was scheduled. Returned if
	// expand=stage is specified.
	Stage *Stage

	// Datetime when interview was canceled. Value is nil if interview was never canceled.
	CanceledAt *int64

	// List of job posting IDs that the interview is associated with
	PostingIDs []string

	// List of job postings that the interview is associated with. Returned if expand=postings is
	// specified.
	Postings []Posting
}

Individual interviews can be returned on this endpoint. Interviews are also contained in interview panels, and can be updated via the Panels endpoint.

type Interviewer

type Interviewer struct {
	// User UID
	ID string `json:"id,omitempty"`

	// User's name
	Name string `json:"name,omitempty"`

	// User's email
	Email string `json:"email,omitempty"`
}

Interviewer is a user who is scheduled to conduct an interview.

type LeverError

type LeverError struct {
	HTTPResponse *http.Response `json:"-"`
	Code         string         `json:"code"`
	Message      string         `json:"message"`
}

Lever error response

func (*LeverError) Error

func (e *LeverError) Error() string

type Opportunity

type Opportunity struct {
	// Opportunity UID
	ID string

	// Contact full name
	Name string

	// Contact headline, typically a list of previous companies where the contact has worked or
	// schools that the contact has attended
	Headline string

	// Contact UID
	ContactID string

	// The stage ID of this Opportunity's current stage
	StageID string

	// The stage of this Opportunity's current stage. Returned if expand=stage is specified.
	Stage *Stage

	// An array of historical stage changes for this Opportunity
	StageChanges []StageChange

	// The confidentiality of the opportunity. An opportunity can only be confidential if it is
	// associated with a confidential job posting. Learn more about confidential data in the API.
	// Can be one of the following values: non-confidential, confidential.
	Confidentiality string

	// Contact current location
	Location string

	// Contact phone number(s)
	Phones []Phone

	// Contact emails
	Emails []string

	// List of Contact links (e.g. personal website, LinkedIn profile, etc.)
	Links []string

	// Opportunity archived status
	Archived *Archived

	// An array containing a list of tags for this Opportunity. Tags are specified as strings,
	// identical to the ones displayed in the Lever interface.
	Tags []string

	// An array of source strings for this Opportunity.
	Sources []string

	// The user ID of the user who created the opportunity.
	SourcedByID string

	// The user who created the opportunity. Returned if expand=sourcedBy is specified.
	SourcedBy *User

	// The way this Opportunity was added to Lever. Can be one of the following values: "agency",
	// "applied", "internal", "referred", "sourced", "university"
	Origin string

	// The user ID of the owner of this Opportunity.
	OwnerID string

	// The owner of this Opportunity. Returned if expand=owner is specified.
	Owner *User

	// An array of user IDs of the followers of this Opportunity.
	FollowerIDs []string

	// An array of users who are following this Opportunity. Returned if expand=followers is
	// specified.
	Followers []User

	// An array, containing up to one Application ID (can be either an active or archived
	// Application). Each Opportunity can only have up to one application.
	ApplicationIDs []string

	// Datetime when this Opportunity was created in Lever. For candidates who applied to a job
	// posting on your website, the date and time when the Opportunity was created in Lever is the
	// moment when the candidate clicked the "Apply" button on their application.
	CreatedAt *int64

	// Datetime when this Opportunity was updated in Lever. This property is updated when the
	// following fields are modified: applications, archived, confidentiality, contact,
	// dataProtection, emails, followers, headline, isAnonymized, lastAdvancedAt,
	// lastInteractionAt, links, location, name, origin, owner, phones, snoozedUntil, sourcedBy,
	// sources, stage, stageChanges, tags. It is also updated when the following fields on the
	// expanded applications object are modified: archived, candidateId, comments, company,
	// customQuestions, email, links, name, opportunityId, phone, postingId, postingHiringManager,
	// postingOwner, primarySource, requisitionForHire, secondarySources, type, user.
	//
	// WARNING: The dataProtection status is based on candidate-provided consent and applicable
	// data policy regulations which can change according to many factors. The updatedAt field is
	// only updated when the candidate-provided consent changes.
	//
	// This value is null when the updatedAt property has not been previously set. This is likely
	// to occur for opportunities that were created prior to the introduction of this property,
	// and have not since been updated.
	UpdatedAt *int64

	// Datetime when the last interaction with this Opportunity profile occurred.
	LastInteractionAt *int64

	// Datetime when the candidate advanced to the pipeline stage where they are currently located
	// in your hiring process for this Opportunity
	LastAdvancedAt *int64

	// If this Opportunity is snoozed, the timestamp will reflect the datetime when the snooze
	// period ends
	SnoozedUntil *int64

	// An object containing the list and show urls for this Opportunity.
	URLs *OpportunityURLs

	// An object containing a candidate's data protection status based on candidate-provided
	// consent and applicable data policy regulations. If there is no policy in place or if no
	// policies apply to the candidate, value is null. (shared by contact)
	DataProtection *OpportunityDataProtection

	// Indicates whether an Opportunity has been anonymized. When all of a contact’s Opportunities
	// have been anonymized, the contact is fully anonymized and their personal information is
	// removed. Non-personal metadata may remain for accurate reporting purposes.
	IsAnonymized bool

	// User ID of the user who deleted the Opportunity. Note that this attribute only appears for
	// deleted Opportunities.
	DeletedByID string

	// Timestamp for when the Opportunity was deleted. Note that this attribute only appears for
	// deleted Opportunities.
	DeletedAt *int64

	// The posting location associated with the opportunity. Can be “unspecified” if not selected,
	// or absent for opportunities not associated with a posting, or for a posting that currently
	// has no location.
	OpportunityLocation string
}

Opportunities

"Candidates" are individuals who have been added to your Lever account as potential fits for your open job positions. "Opportunities" represent each of an individual’s unique candidacies or journeys through your pipeline for a given job position, meaning a single Candidate can be associated with multiple Opportunities. A “Contact” is a unique individual who may or may not have multiple candidacies or Opportunities.

Candidates enter your pipeline for a new Opportunity by:

* Applying to a posting on your jobs site

* Being added by an external recruiting agency

* Being referred by an employee

* Being manually added by a Lever user, or

* Being sourced from an online profile.

Each Opportunity can have their own notes, feedback, interview schedules, and additional forms. An opportunity may be “confidential” if it is moving through your pipeline for a job posting that has been created as confidential. Opportunities exit your pipeline by being archived for one of two reasons: (1) The candidate was rejected for the opportunity, or (2) The candidate was hired for the opportunity.

A "Contact" is an object that our application uses internally to identify an individual person and their personal or contact information, even though they may have multiple opportunities. From this API, the "Contact" is exposed via the contact field, which returns the unique ID for a Contact across your account. Contact information will be shared and consistent across an individual person's opportunities, and will continue to be aggregated onto individual opportunities in the responses to all GET and POST requests to /opportunities.

WARNING: These Opportunities endpoints should be used instead of the now deprecated Candidates endpoints. Prior to the migration, for any given Candidate, the candidateId you would use for a request to a Candidates endpoint can be used as the opportunityId in a request to the corresponding Opportunities endpoint.

Going forward, the contact field is the unique identifier for a Contact or an individual person in Lever, so all integrations should be built and updated using the contact as the unique person identifier and opportunityId as a specific opportunity or candidacy moving through the pipeline.

type OpportunityDataProtection

type OpportunityDataProtection struct {
	// The candidate's consent status for contacting them.
	Contact *OpportunityDataProtectionConsent `json:"contact,omitempty"`

	// The candidate's consent status for storing their data
	Store *OpportunityDataProtectionConsent `json:"store,omitempty"`
}

An object containing a candidate's data protection status based on candidate-provided consent and applicable data policy regulations.

TODO: Determine whether this struct should be shared with other models.

type OpportunityDataProtectionConsent

type OpportunityDataProtectionConsent struct {
	// True if the applicable data policy regulation allows for storage of this record.
	Allowed bool `json:"allowed,omitempty"`

	// Timestamp of when this permission expires.
	ExpiresAt *int64 `json:"expiresAt,omitempty"`
}

An object representing the consent status for a processing activity

TODO: Determine whether this struct should be shared with other models.

type OpportunityURLs

type OpportunityURLs struct {
	// URL that points to the account's list of candidates
	List string `json:"list,omitempty"`

	// URL that points to the candidate's profile page for this Opportunity
	Show string `json:"show,omitempty"`
}

An object containing the list and show urls for this Opportunity.

TODO: Determine whether this struct should be shared with other models.

type Phone

type Phone struct {
	// One of 'other', 'home', 'mobile', 'work', 'skype'
	Type string `json:"type,omitempty"`

	// The phone number.
	Value string `json:"value,omitempty"`
}

Phone number.

type Posting

type Posting struct {
	// Posting UID
	ID string `json:"id,omitempty"`

	// Title of the job posting
	Text string `json:"text,omitempty"`

	// Datetime when posting was created in Lever
	CreatedAt *int64 `json:"createdAt,omitempty"`

	// Datetime when posting was last updated
	UpdatedAt *int64 `json:"updatedAt,omitempty"`

	// Posting's current status
	State string `json:"state,omitempty"`

	// Array of job sites that a published posting appears on.
	DistributionChannels []string `json:"distributionChannels,omitempty"`

	// The confidentiality of the posting. It is not possible to update a posting’s
	// confidentiality. Can be one of the following values: non-confidential, confidential.
	Confidentiality string `json:"confidentiality,omitempty"`

	// The user ID of the user who created the posting.
	UserID string `json:"user,omitempty"`

	// The user who created the posting. Returned if expand=user is specified.
	User *User `json:"-"`

	// The user ID of the posting owner. The posting owner is the individual who is directly
	// responsible for managing all candidates who are applied to that role.
	OwnerID string `json:"owner,omitempty"`

	// The posting owner. Returned if expand=owner is specified.
	Owner *User `json:"-"`

	// The user ID of the hiring manager for the job posting.
	HiringManagerID string `json:"hiringManager,omitempty"`

	// The hiring manager for the job posting. Returned if expand=hiringManager is specified.
	HiringManager *User `json:"-"`

	// An object containing the tags of various categories.
	Categories *PostingCategories `json:"categories,omitempty"`

	// An array of additional posting tags.
	Tags []string `json:"tags,omitempty"`

	// Content of the job posting including any custom questions that you've built into the job
	// application.
	Content *PostingContent `json:"content,omitempty"`

	// An ISO 3166-1 alpha-2 code for a country / territory
	Country string `json:"country,omitempty"`

	// An array of user IDs of the followers of this posting.
	FollowerIds []string `json:"followers,omitempty"`

	// An array of users who are following this posting. Returned if expand=followers is specified.
	Followers []User `json:"-"`

	// Requisition code associated with this posting.
	// WARNING: This field is deprecated but maintained for backwards compatibility.
	RequisitionCode string `json:"requisitionCode,omitempty"`

	// Array of requisition codes associated with this posting.
	RequisitionCodes []string `json:"requisitionCodes,omitempty"`

	// An object containing the list, show and apply URLs for the job posting.
	URLs *PostingURLs `json:"urls,omitempty"`

	// Workplace type of this posting. Defaults to 'unspecified'. Can be one of the following
	// values: onsite, remote, hybrid
	WorkplaceType string `json:"workplaceType,omitempty"`
}

Job postings organize candidates based on the specific roles that they may fit into on your growing team.

There are four different states of job postings: published, internal, closed, and draft. NOTE: In the Lever app, we refer to internal postings as “unlisted” postings. For organizations that have enabled job posting approvals, there are two additional states: pending and rejected.

* published job postings are postings that appear on your public job site, internal job site, or both, depending on which distribution channels you have configured. You'll want to mark a job posting as published when you would like the posting to appear on one or more of your job sites.

* internal job postings are postings that will NOT appear on your public or internal job sites. In the Lever app, internal postings are referred to as “unlisted” postings. You can, however, apply candidates to these internal postings. In addition, anyone with the link to an internal posting can apply, and people can refer candidates to any internal postings.

* closed job postings are postings that will NOT appear on your public or internal job sites, likely because they are roles that you've already filled! You'll want to keep a job posting in the closed state instead of deleting it so that you can easily build reports on this specific job posting. If you and your team re-open the role, you can always move a closed posting back to published or internal.

* draft job postings are postings that you are still in the process of finalizing. draft postings will NOT appear on your public or internal job sites. Once you've finalized a draft job posting, you'll want to change the state of the posting to published or internal.

* pending job postings are postings that are awaiting approval. This state is applicable for organizations that are using the job posting approval workflows in Lever.

* rejected job postings are postings that were submitted for approval and rejected. This state is applicable for organizations that are using the job posting approval workflows in Lever.

type PostingCategories

type PostingCategories struct {
	// Tag for the team to which the job posting belongs (e.g. Sales, Engineering)
	Team string `json:"team,omitempty"`

	// Tag for the department to which the job posting's team belongs, if present
	Department string `json:"department,omitempty"`

	// Tag for job position location
	Location string `json:"location,omitempty"`

	// An array of strings containing all the locations associated with the posting.
	AllLocations []string `json:"allLocations,omitempty"`

	// Tag for job position work type (e.g. Full-time, Part-time, Internship)
	Commitment string `json:"commitment,omitempty"`

	// Tag for job posting level (e.g. Senior, Junior).
	// Deprecated but currently maintained for backward compatibility.
	Level string `json:"level,omitempty"`
}

An object containing the tags of various categories.

type PostingContent

type PostingContent struct {
	// Job posting description that is shown at the top of the jobs pagem, as plaintext.
	Description string `json:"description,omitempty"`

	// Job posting description that is shown at the top of the jobs page.
	DescriptionHtml string `json:"descriptionHtml,omitempty"`

	// Lists of requirements, responsibilities, etc. that have been added to this posting
	Lists []struct {
		// Title of the list.
		Title string `json:"title,omitempty"`

		// Content of the list, as styled HTML.
		Content string `json:"content,omitempty"`
	} `json:"lists,omitempty"`

	// Closing statement on job posting, as plaintext.
	Closing string `json:"closing,omitempty"`

	// Closing statement on job posting, as styled HTML.
	ClosingHtml string `json:"closingHtml,omitempty"`
}

Content of the job posting including any custom questions that you've built into the job application.

TODO: Determine whether this struct should be shared with other models.

type PostingURLs

type PostingURLs struct {
	// URL that points to the account's list of job postings
	List string `json:"list,omitempty"`

	// URL that points to the posting's information page
	Show string `json:"show,omitempty"`

	// URL that points to the posting's apply page
	Apply string `json:"apply,omitempty"`
}

An object containing the list, show and apply urls for the job posting.

TODO: Determine whether this struct should be shared with other models.

type Reader

type Reader struct {
	// The file name
	Name string

	// The file contents
	Contents io.ReadCloser

	// The MIME type for the file.
	MIMEType string
}

Reader provides the contents and the name of a file.

type Resume

type Resume struct {
	// Resume UID
	ID string `json:"id,omitempty"`

	// Datetime when resume was created in Lever. For candidates who applied to a job posting on
	// your website, the date and time when the candidate's resume was created in Lever is the
	// moment when the candidate clicked the "Attach Resume/CV" button on their application.
	CreatedAt *int64 `json:"createdAt,omitempty"`

	// An object containing resume file metadata and download url.
	File *ResumeFile `json:"file,omitempty"`

	// The candidate's parsed resume, usually extracted from an attached PDF/Word document or
	// online profile (LinkedIn, GitHub, AngelList, etc.).
	ParsedData ResumeParsedData `json:"parsedData,omitempty"`
}

Resumes are data about a candidate's work history and/or education. Some resumes may have files associated with them. Resumes can be added to an Opportunity in a number of ways. For example, when (1) the candidate applies to a job posting and uploads a resume (usually this will have a file associated with it), (2) when a recruiter uses the Chrome extension tool via Linkedin, Github, Twitter, etc., (3) the candidate is manually added by a recruiter or (4) a resume file is added directly to an Opportunity from within Lever.

type ResumeFile

type ResumeFile struct {
	// Resume file download URL
	DownloadURL string `json:"downloadUrl,omitempty"`

	// Resume file extension
	Ext string `json:"ext,omitempty"`

	// Resume file name
	Name string `json:"name,omitempty"`

	// Datetime when file was uploaded in Lever
	UploadedAt *int64 `json:"uploadedAt,omitempty"`

	// The status of processing the file. Can be one of the following values: processing,
	// processed, unsupported, error, or null.
	Status string `json:"status,omitempty"`

	// The size of the file in bytes.
	Size *int64 `json:"size,omitempty"`
}

An object containing resume file metadata and download url.

type ResumeParsedData

type ResumeParsedData struct {
	// An array of objects containing various information about positions the candidate has held.
	// This includes company name, location, job title, job summary, and start and end date. This
	// information can be parsed from the candidate's resume, LinkedIn profile, or entered
	// manually.
	Positions []map[string]any `json:"positions,omitempty"`

	// An array of objects containing various information about schools the candidate has attended.
	// This includes the school name, degree, field of study, school summary, and start and end
	// date. This information can be parsed from the candidate's resume, LinkedIn profile, or
	// entered manually.
	Schools []map[string]any `json:"school,omitempty"`
}

The candidate's parsed resume, usually extracted from an attached PDF/Word document or online profile (LinkedIn, GitHub, AngelList, etc.).

type Source

type Source struct {
	// Source text
	Text string `json:"text,omitempty"`

	// Number of candidates tagged with this source
	Count int64 `json:"count,omitempty"`
}

A source is the way that a candidate entered into your Lever account. The most common sources in your Lever account are:

* Posting - Candidate applied to a posting on your careers page.

* Referral - Candidate was referred by an employee at your company.

* Add New - Candidate was added manually into your Lever account in the app.

* Email Applicant - Candidate was added via applicant@hire.lever.co email address.

* Email Lead - Candidate was added via lead@hire.lever.co email address.

* LinkedIn - Candidate was added from LinkedIn using the Lever Chrome Extension.

* GitHub - Candidate was added from GitHub using the Lever Chrome Extension.

* AngelList - Candidate was added from AngelList using the Lever Chrome Extension.

type Stage

type Stage struct {
	// Stage UID
	ID string `json:"id,omitempty"`

	// Title of the stage
	Text string `json:"text,omitempty"`
}

Stages are steps in the recruiting workflow of your hiring pipeline. All candidates belong to a stage and change stages as they progress through the recruiting pipeline, typically in a linear fashion.

type StageChange

type StageChange struct {
	// Stage UID of the stage the candidate entered
	ToStageID string `json:"toStageId,omitempty"`

	// The index of the stage in the pipeline at the time the stage change occurred
	ToStageIndex int `json:"toStageIndex,omitempty"`

	// Time at which stage change occurred
	UpdatedAt *int64 `json:"updatedAt,omitempty"`

	// User UID
	UserID string `json:"userId,omitempty"`
}

Stage change for an opportunity

type Tag

type Tag struct {
	// Tag text
	Text string `json:"text,omitempty"`

	// Number of candidates tagged
	Count int64 `json:"count,omitempty"`
}

Tags provide additional information or context to a candidate within your pipeline. Tags serve as a way of grouping candidates for easy viewing of individuals with specific attributes.

type User

type User struct {
	// User UID
	ID string `json:"id,omitempty"`

	// User's preferred name
	Name string `json:"name,omitempty"`

	// Username, extracted from user's email address
	Username string `json:"username,omitempty"`

	// User's email address
	Email string `json:"email,omitempty"`

	// Datetime when user was created
	CreatedAt *int64 `json:"createdAt,omitempty"`

	// Datetime when user was deactivated, null for an active user
	DeactivatedAt *int64 `json:"deactivatedAt,omitempty"`

	// User's access role. One of: 'super admin', 'admin', 'team member', 'limited team member',
	// 'interviewer'
	AccessRole string `json:"accessRole,omitempty"`

	// URL for user's gravatar, if enabled
	Photo string `json:"photo,omitempty"`

	// Unique id for user in external HR directory
	ExternalDirectoryID string `json:"externalDirectoryId,omitempty"`

	// An array of contact IDs which helps identify all contacts associated with a User. This can
	// be used to control User access to any Opportunities linked to a User.
	LinkedContactIds []string `json:"linkedContactIds,omitempty"`

	// User's job title
	JobTitle string `json:"jobTitle,omitempty"`

	// User's manager ID
	ManagerID string `json:"manager,omitempty"`
}

Users in Lever include anyone who has been invited to join in on recruiting efforts. There are five different access roles in Lever. From most to least access, these roles are Super admin, Admin, Team member, Limited team member, and Interviewer.

Jump to

Keyboard shortcuts

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