Apply to YC job (human-in-loop)
yc_apply_to_jobSubmit job applications to YC startups with per-startup cover letters and email approval before sending.
Instructions
Apply to a YC job with per-startup customized cover message. Defaults to dryRun=true: sends approval email to APPROVAL_EMAIL and does NOT submit. After you reply APPROVE, re-call with dryRun=false to submit via Work at a Startup API. Resume must be in ./resumes/. API-only, no browser.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | No | WAAS job ID to apply to. Use null for direct company apply when no job opening (now auto-applies via POST /apply with job_id:null). | |
| ycUrl | No | YC company URL for approval email | |
| dryRun | No | If true (default), only send approval email to NOTIFY_TO; don't submit to WAAS. Set false after approval. | |
| jobTitle | Yes | Job title e.g. Backend Intern / SDE Intern / AI Intern — used for per-startup message | |
| companyId | No | WAAS company_id (required for actual submit, from /apply curl or /companies/fetch). | |
| resumePath | Yes | Local path in ./resumes/ e.g. resumes/Resume_Nirvan_BackendIntern.pdf | |
| companyName | Yes | Company display name | |
| companySlug | Yes | YC company slug e.g. algolia | |
| coverMessage | No | Per-startup customized cover message. If omitted, generated from templates/cover-message.txt + startup context. | |
| applicantName | No | Your name for template | |
| applicantSkills | No | Your skills for template e.g. ['Node.js','Go','Postgres'] | |
| startupOneLiner | No | Startup one_liner for personalization | |
| openToRelocation | No | open_to_relocation flag, default false | |
| startupIndustries | No | Startup industries for personalization | |
| customQuestionAnswers | No | Answers to custom questions (null if none) | |
| jobDescriptionSnippet | No | Snippet of job description for approval email context |