Pacific Companies
Pacific Companies' own physician-recruiting job board — real open roles by specialty and state, straight off the site's own WP REST API — plus its live…
Pacific Companies' own physician-recruiting job board — real open roles by specialty and state, straight off the site's own WP REST API — plus its live Gravity Forms 'Apply For This Job' schema, validated and assembled ready to submit (name/email/phone; resume upload is a real multipart field this package never fills).
Domain: pacificcompanies.com
Also known as: Pacific Companies, pacificcompanies.com
Call it directly
bowmark.providers.pacificcompanies.searchJobs(args?: { specialty?: string; state?: string; query?: string; limit?: number }): Promise<PacificCompaniesJob[]>
bowmark.providers.pacificcompanies.getJobCategories(): Promise<PacificCompaniesTerm[]>
bowmark.providers.pacificcompanies.getJob(idOrSlug: string): Promise<PacificCompaniesJob>
bowmark.providers.pacificcompanies.getApplicationSchema(idOrSlug: string): Promise<ApplicationSchema>
bowmark.providers.pacificcompanies.assembleApplication(idOrSlug: string, input: object): Promise<AssembledApplication>Functions
| Function | What it does |
|---|---|
searchJobs | Runs Pacific Companies' own job-board search — filters real open physician/APP roles by specialty (slug, e.g. "cardiovascular-surgery" — see getJobCategories) and/or US state, or free-text… |
getJobCategories | Lists every specialty Pacific Companies recruits for, with a live open-posting count — the exact slug vocabulary searchJobs's specialty argument takes. |
getJob | Reads one posting in full, by its numeric id or its URL slug (both returned by searchJobs). THROWS on an unknown id/slug. |
getApplicationSchema | Reads one posting's own live 'Apply For This Job' Gravity Forms structure — First/Last Name, Email, Phone, and the CV-upload field name. |
assembleApplication | Validates a caller's name/email/phone against the posting's live apply-form requirements and maps it onto the site's own Gravity Forms field names, ready to submit. |
Types
interface PacificCompaniesJob {
id: number;
slug: string;
title: string;
url: string;
publishedAt: string;
specialty: string[]; // job-category term ids, as strings
state: string[]; // job-state term ids, as strings
jobType: string[]; // job-type term ids, as strings
city: string | null;
stateName: string | null;
client: string | null;
salary: string | null; // "0" is normalized away to null — most roles have no published number
recruiterName: string | null;
recruiterEmail: string | null;
recruiterPhone: string | null;
summary: string; // content.rendered with HTML tags stripped, truncated
}
interface PacificCompaniesTerm {
id: number;
slug: string; // e.g. "cardiovascular-surgery" — matches the site's own /job-category/<slug>/ URLs
name: string;
count: number; // live open-posting count
}
interface ApplicationField { gfName: string; label: string; type: "text" | "email" | "tel"; required: boolean; }
interface ApplicationSchema {
entryUrl: string; // the specific job's own URL — the form posts back to itself
jobTitle: string;
fields: ApplicationField[];
cvFieldName: string; // the multipart field a resume would ride on; never filled by this package
}
interface AssembledApplication {
valid: boolean;
errors: string[];
entryUrl: string;
jobTitle: string;
formFields: Record<string, string>; // the site's own GF field names, e.g. { input_1: "Jordan" }
cvFieldName: string;
summary: string;
}Examples
const openCardiology = await bowmark.providers.pacificcompanies.searchJobs({ specialty: "cardiology-interventional" });
return openCardiology.map(j => `${j.title} — ${j.city ?? j.stateName ?? "location on request"}`);const app = await bowmark.providers.pacificcompanies.assembleApplication(
"cardiothoracic-surgery-job-in-the-oklahoma-city-metro-2m-earning-potential-16624",
{ firstName: "Jordan", lastName: "Avery", email: "jordan@example.com", phone: "423-555-0100" },
);
return { ready: app.valid, fields: app.formFields, submitAt: app.entryUrl, resumeField: app.cvFieldName };