Documentation
¶
Overview ¶
Package jobspipe is the official Go SDK for the JobsPipe API (https://jobspipe.dev): search live job postings from 30+ ATS feeds and job boards, and detect the technology stack behind any company domain.
Index ¶
Constants ¶
const DefaultBaseURL = "https://api.jobspipe.dev"
DefaultBaseURL is the production JobsPipe API host.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// APIKey is the JobsPipe secret key (prefix jp_live_).
APIKey string
// BaseURL overrides DefaultBaseURL when set.
BaseURL string
// HTTPClient overrides the default 30s-timeout client when set.
HTTPClient *http.Client
}
Client calls the JobsPipe API. Create one with NewClient.
func NewClient ¶
NewClient returns a Client authenticated with apiKey. If apiKey is empty, the JOBSPIPE_API_KEY environment variable is used.
func (*Client) ScanStack ¶
func (c *Client) ScanStack(ctx context.Context, req ScanStackRequest) (*ScanStackResponse, error)
ScanStack detects the technology stack running on a domain.
func (*Client) SearchJobs ¶
func (c *Client) SearchJobs(ctx context.Context, req SearchJobsRequest) (*SearchJobsResponse, error)
SearchJobs searches live, normalized job postings.
type Job ¶
type Job struct {
ID string `json:"id"`
JobTitle string `json:"job_title"`
Company string `json:"company"`
Location *string `json:"location"`
CountryCode *string `json:"country_code"`
Remote *bool `json:"remote"`
Seniority *string `json:"seniority"`
DatePosted *string `json:"date_posted"`
FinalURL *string `json:"final_url"`
}
Job is one normalized job posting.
type ScanStackRequest ¶
ScanStackRequest is the body for POST /v1/stack/scan.
type ScanStackResponse ¶
type ScanStackResponse struct {
Domain string `json:"domain"`
ScannedAt string `json:"scanned_at"`
HTTPStatus int `json:"http_status"`
RenderPath string `json:"render_path"`
Detected []map[string]any `json:"detected"`
}
ScanStackResponse is the response of POST /v1/stack/scan. Detected entries are loosely typed; see https://docs.jobspipe.dev for the current shape.
type SearchJobsMetadata ¶
type SearchJobsMetadata struct {
TotalResults *int `json:"total_results"`
TruncatedResults *int `json:"truncated_results"`
NextCursor *string `json:"next_cursor"`
}
SearchJobsMetadata describes the result set.
type SearchJobsRequest ¶
type SearchJobsRequest struct {
JobTitleOr []string `json:"job_title_or,omitempty"`
JobTitleNot []string `json:"job_title_not,omitempty"`
DescriptionOr []string `json:"description_or,omitempty"`
DescriptionNot []string `json:"description_not,omitempty"`
JobCountryCodeOr []string `json:"job_country_code_or,omitempty"`
JobCountryCodeNot []string `json:"job_country_code_not,omitempty"`
JobLocationOr []string `json:"job_location_or,omitempty"`
JobSeniorityOr []string `json:"job_seniority_or,omitempty"`
EmploymentTypeOr []string `json:"employment_type_or,omitempty"`
SourceOr []string `json:"source_or,omitempty"`
CompanyNamePartialMatchOr []string `json:"company_name_partial_match_or,omitempty"`
Remote *bool `json:"remote,omitempty"`
PostedAtMaxAgeDays int `json:"posted_at_max_age_days,omitempty"`
PostedAtGte string `json:"posted_at_gte,omitempty"`
PostedAtLte string `json:"posted_at_lte,omitempty"`
Limit int `json:"limit,omitempty"`
IncludeTotalResults bool `json:"include_total_results,omitempty"`
}
SearchJobsRequest is the filter body for POST /v1/jobs/search. Zero-value fields are omitted from the request.
type SearchJobsResponse ¶
type SearchJobsResponse struct {
Metadata SearchJobsMetadata `json:"metadata"`
Data []Job `json:"data"`
}
SearchJobsResponse is the response of POST /v1/jobs/search.