본문으로 건너뛰기
cccskills
무료GitHub에 공개

curviate-jobs

Manage LinkedIn job postings with Curviate CLI, a command-line tool. Covers drafting, updating, checking publication costs, publishing, closing listings, and retrieving applicants and résumés, with guidance on subscription requirements and delayed update visibility.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Create, publish and manage classic LinkedIn job postings with the Curviate CLI, and read their applicants. Covers `job` (get, list, create, update, budget, publish, close) and `job applicants` / `job applicant get|resume`, the draft-then-publish flow, the subscription gate that stops a publish even on the free mode, and the read-back delay after an update. Use when drafting or updating a posting, pricing or publishing one, closing one, or pulling applicants and résumés.

연동 도구LinkedIn
설치 방법 보기

이럴 때 유용합니다

  • Draft or update a LinkedIn job posting
  • Check publication costs and subscription requirements
  • Prepare to close a job posting
  • Retrieve applicant details and résumés

포함된 파일(1)

  • SKILL.md10.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Curviate: job postings and applicants

Every posting starts as a draft. Drafts are free and reversible; publishing is neither. The two things that surprise agents here are that a free publish is still subscription-gated and that an update's read-back lags the write.

Command surface established against CLI 0.33.0.

Before any command

npm install -g @curviate/cli && curviate --version    # needs Node 18 or newer
curviate login --api-key <key>                        # or export CURVIATE_API_KEY
curviate account list --json                          # the acc_id for --account
  • Credentials resolve flag > environment > stored profile (CURVIATE_API_KEY, CURVIATE_BASE_URL, CURVIATE_ACCOUNT).
  • --profile <name> picks the stored credential set; --account <acc_id> picks which connected LinkedIn account owns the posting.
  • --preview before every write, and especially before a publish. On a read command it is refused with exit 2.
  • --json on anything you parse; --fields a,b,c to project; --verbose when a slim response looks suspiciously empty.
  • Put global flags at the end of the command.
  • Branch on the exit code, never on prose. See the table at the end.
  • These are not retrieval-mode commands: --mode/--max-age are refused here with unknown flag, exit 2. job publish --mode is a different flag with the same name: it selects a publishing publishing mode and can spend real money. See curviate-profile for retrieval mode.

The commands

CommandWhat it doesConfidence
curviate job get <id>One public posting's full detail. Takes a job URL or a bare numeric id. No seat needed.proven
curviate job list --state <DRAFT|OPEN|CLOSED|REVIEW|SUSPENDED>Your own postings by state. --state is required.proven
curviate job create …Create a draft. Never publishes, never spends.proven
curviate job update <id> …Partial update to a posting you own; same flags as create.proven
curviate job budget <id>Price a publish before committing any money.proven
curviate job publish <id> --mode FREE|PROMOTED|PROMOTED_PLUSPublish a draft. PROMOTED and PROMOTED_PLUS spend real money and additionally require --budget-currency (ISO-4217), --budget-amount and --budget-scope (DAILY or TOTAL).wired, never live-fired
curviate job close <id>Stop a posting accepting applications. Irreversible once listed.wired, never live-fired
curviate job applicants <id>Applicants to a posting you own.proven (shape only, exercised on a draft with no applicants)
curviate job applicant get <id> <applicant_id>One applicant's full detail, including contact information.proven (shape only)
curviate job applicant resume <id> <applicant_id>Download an applicant's résumé. Binary, write it with -o <file>.proven (shape only)

job create: the required set

--description (minimum 200 characters, enforced server-side), --workplace-type (ON_SITE|HYBRID|REMOTE), --location (a LOCATION parameter id, resolved via curviate search parameters --type LOCATION), --employment-status (FULL_TIME|PART_TIME|CONTRACT|TEMPORARY|OTHER|VOLUNTEER|INTERNSHIP), --apply-method (linkedin or external), plus a title and a company.

  • Title: --job-title as free text, or --job-title-id for an existing LinkedIn title.
  • Company: --company as free text, or --company-id.
  • --apply-method linkedin requires --notification-email; --apply-method external requires --website-url.
  • --skills takes comma-separated skill parameter ids and is optional.

Run curviate job create --help for the current required set before building a call.

Traps

  • A publish is subscription-gated in practice, not just on the paid modes. --mode FREE (the money-free mode) still returns LINKEDIN_FEATURE_NOT_SUBSCRIBED, exit 5, on an account with no LinkedIn job-posting subscription. On that error nothing goes public and the draft stays a draft. Expect exit 5 unless you have confirmed the subscription; do not read it as a malformed request.
  • publish and close are wired, never live-fired. Every test account run against this surface hit the subscription gate above before a posting ever went public, so a live 200 from either command has not been observed; close's happy path is unreachable the same way, since nothing gets published to close. The response shapes are cross-checked against the substrate's own types rather than an observed call. The read and draft surface above publish (list/get/budget/create/update, plus the three applicant reads) does not depend on that subscription and is proven.
  • An update lands before the read-back reflects it. job update returning exit 0 was applied, but its own response and an immediate job get can both still show the old value, while job list (the owner view, checked minutes later) shows the update did land. Do not conclude a silent no-op from a stale-looking immediate read.
  • job list --state filters client-side and says so on stderr. LinkedIn's own state filter is best-effort, so the CLI re-fetches the unfiltered page walk and drops non-matching items itself, logging what it dropped. Read stdout for data and stderr for what was dropped, and note that --all may walk far more upstream pages than the filtered item count suggests.
  • job close is irreversible once the posting is listed. Preview it, and be sure.
  • Price before you publish. job budget <id> costs nothing and is the only way to know what a promoted publish will spend.

A safe posting flow

curviate job create --job-title "…" --company "…" --workplace-type REMOTE \
  --location <loc_id> --employment-status FULL_TIME --description "$(cat jd.md)" \
  --apply-method linkedin --notification-email <email> --account <acc_id> --preview --json
# re-run without --preview to create the draft, then:
curviate job get <id> --account <acc_id> --json          # confirm the draft
curviate job budget <id> --account <acc_id> --json       # price it
curviate job publish <id> --mode FREE --account <acc_id> --preview --json

Full command surface

<!-- generated: command surface, CLI 0.33.0 -->

Read from the CLI's own --help at version 0.33.0. Descriptions, traps and confidence tags elsewhere in this skill are hand-written and carry the version they were established against.

Every command below that takes flags at all also accepts --account, --api-key, --base-url, --beta, --fields, --json, --preview, --profile, --timeout, --verbose.

CommandArgumentsFlags
curviate job getID(none)
curviate job list(none)--limit, --cursor, --all, --max-pages, --page-delay, --state (required)
curviate job create(none)--job-title, --job-title-id, --company, --company-id, --workplace-type, --location, --employment-status, --description, --apply-method, --notification-email, --website-url, --skills
curviate job updateID--job-title, --job-title-id, --company, --company-id, --workplace-type, --location, --employment-status, --description, --apply-method, --notification-email, --website-url, --skills
curviate job budgetID(none)
curviate job publishID--mode (required), --budget-currency, --budget-amount, --budget-scope
curviate job closeID(none)
curviate job applicantsID--limit, --cursor, --all, --max-pages, --page-delay, --ratings
curviate job applicant getID APPLICANTID(none)
curviate job applicant resumeID APPLICANTID-o, --output
<!-- /generated -->

Exit codes to branch on here

CodeMeaningWhat to do
1INTERNAL from the server itself: a genuine bug on the platform side.Worth one retry; if it repeats it is a bug to report, not a state to work around.
2Usage or invalid input, often raised before any network call: a missing required flag, a description under 200 characters, a location passed as a name rather than an id.Fix the invocation. Never retry unchanged.
4Not found: the posting does not exist, or is not yours.Re-check the id and the acting account.
5Three causes, one code: read error.code. NO_ACTIVE_SEAT: the account is on no active seat. LINKEDIN_FEATURE_NOT_SUBSCRIBED: LinkedIn itself lacks the feature. BETA_NOT_ENABLED: the operation is beta-gated and this workspace has not opted in.Branch on error.code: the three fixes have nothing in common, and none is fixed by retrying unchanged.
6PLATFORM_RATE_LIMIT and its siblings. Carries retry_after in whole seconds. A response naming budgetRow means only that row is paused; every other row on the account keeps working.Back off and retry after that many seconds. On a named budgetRow, switch to other work on the account rather than backing off across the board.
7Transient platform fault: a request that got no response at all (network error, DNS failure, timeout) or one that came back as something other than a valid API answer. Carries retryLikelyToSucceed: true.Retry with backoff.
11Billing: payment, a cancelled seat, or a subscription lock. SUBSCRIPTION_BUSY is retry-likely; check the envelope.Resolve it in the dashboard.
13BUDGET_EXHAUSTED: a safety rule of your own refused the action, not LinkedIn. Read error.safetyReason: ceiling means the row named in error.budgetRow hit its configured limit; activity_window means the account is outside the hours it works in (no budgetRow on that one). Nothing reached LinkedIn and nothing was spent. reset_at can be weeks out, and may be null where no clock frees it.Do not back off and retry. error.safetyHint.parameter names the exact setting to change. Read quotas[] via curviate account get <acc_id> --json, then wait for the named reset or change that setting.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Create interactive 3D scenes for websites, including product views and scroll-driven animations. Covers choosing Three.js, React Three Fiber, or Spline, preparing lightweight models, showing loading progress, and adapting experiences for mobile devices.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Building an interactive 3D product configurator
  • Adding 3D scenes to a portfolio
  • Animating models and cameras as visitors scroll
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

Plan A/B tests that compare page or product changes, with clear hypotheses, sample sizes, success metrics, and traffic allocation. Get a structured test plan and guidance for interpreting results and deciding what to try next.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Comparing signup button copy
  • Planning a pricing page experiment
  • Estimating sample size and test duration
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

Prepare an academic CV for faculty, postdoctoral, or research applications. Organize publications, grants, teaching, and research experience, with section order and formatting adapted to the role and academic field.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Preparing a CV for faculty applications
  • Updating a CV for postdoctoral applications
  • Organizing publications and research funding
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

Audit and improve web accessibility using WCAG 2.1 guidelines. Covers image descriptions, color contrast, keyboard controls, forms, and screen reader support, with code examples and automated and manual checks to guide fixes.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Auditing accessibility before a website launch
  • Improving keyboard navigation
  • Fixing form labels and error announcements
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

Audit websites for accessibility barriers and improve image descriptions, color contrast, forms, keyboard navigation, and screen reader support. Provides code examples and automated and manual testing guidance for work toward WCAG 2.1 AA or AAA accessibility standards.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Auditing a website for accessibility issues
  • Fixing form labels and error announcements
  • Checking keyboard navigation and dialog focus
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

Design autonomous agents for Claude Code plugins, including when they should run, what tools they may use, and how they should respond. Provides configuration templates, prompt guidance, and validation steps for creating agent files.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Create a code review agent
  • Refine examples that trigger an agent
  • Limit the tools an agent can use
davila7/claude-code-templates3.3만2026년 10월 22일 업데이트

davila7의 스킬 모두 보기

이 스킬의 문제 신고