Overview
Workopia AI brings the full job search experience into ChatGPT — no extra tabs, no separate sign-ups. Key Highlights • Employer-direct, real-time jobs Listings are pulled live from company career pages and Applicant Tracking Systems (ATS), so you see roles as soon as they’re posted — not recycled from third-party job boards. • Must-have vs. nice-to-have, at a glance Each role is pre-tagged to help you scan quickly: required skills are clearly highlighted, while additional “nice-to-have” criteria are separated out. • Tailor your resume inline Open any job and click Tailor to instantly adapt your resume. A live widget highlights missing skills and lets you add supporting evidence in real time. Export an ATS-friendly PDF in one click. • Cover letter + apply Generate a role-specific cover letter from the same chat, download it as a PDF, and apply directly via the employer’s official posting. Search → Read → Tailor → Cover Letter → Apply All in one conversation, end to end.
Tools
cover_letter_tool
ChatGPT[Download PDF](url) link for the PDF letterhead version. No widget — the markdown itself is the user-facing answer. Use this tool whenever the user asks for a cover letter for a specific job: 'write me a cover letter for #1', 'cover letter for the Morgan Stanley role', 'draft an application letter for this JD: <text>'. Resolving job_id from user reference (same rules as tailor_resume_tool / job_detail_tool): prior search/refine result's structuredContent.items[N-1].card.id; company name substring match on items[].card.company; role/title phrase on items[].card.title. Supply ONE of job_id (preferred — server fetches the full JD from Mongo) OR job_description (pasted JD text). Do NOT pass both. Also pass the user's resume via resume_text / resume_content / user_profile. CONTACT CARRY-OVER (IMPORTANT): if the user already shared a resume earlier in this session (e.g. when tailoring a resume), reuse that resume's contact block — extract name, phone, email, location, and LinkedIn from the prior resume_text / user_profile and pass them in user_profile for this call. The PDF letterhead renders exactly the fields you pass; anything missing shows as 'Your Phone' / 'Your Location' placeholders. Never drop phone when the prior resume had one. OUTPUT BEHAVIOR: content[0].text is already the complete user-ready markdown — echo it VERBATIM as your final reply. Do NOT rewrite the body, do NOT replace the Download link with a placeholder, do NOT prepend your own intro. If the user is not signed in, the PDF link is omitted and the body markdown stands alone with a brief 'Sign in to download as PDF' note.dashboard_tool
ChatGPTjob_detail_tool
ChatGPTjob_tool
ChatGPTresume_tool
ChatGPTtailor_resume_tool directly; it is a separate entry tool. action=improve (DEFAULT): proofread/optimize resume content — generates a stronger Professional Summary and rewrites each employment description into impact bullets. Returns markdown text only — does NOT produce a PDF. Use when the user says 'improve my resume', 'proofread my resume', 'optimize my resume', 'make it stronger', '帮我改简历'. After showing the optimized text, offer 'If you'd like a polished PDF, say generate and I will render it.' — do NOT auto-call generate. action=generate: MANDATORY when the user asks for generate/create resume, resume template, styled/formatted resume, downloadable resume, PDF resume, or preview/shareable resume. Two sub-modes for generate: (i) User HAS a resume — accept resume_text (plain text or JSON Resume as string) and/or json_resume (jsonresume.org object with basics/work/education/skills). Generate immediately. (ii) User is building from SCRATCH (no resume, says 'help me create a resume', 'make me a resume', '帮我做简历') — do NOT call generate immediately. First interview the user CONVERSATIONALLY in this order: basic info (name, email, phone, location, desired title) → most recent work (title, company, start/end dates, 3-5 achievement bullets — offer action=boost_summary to polish each bullet list) → prior work (repeat) → education (degree, school, dates) → skills (top 6-10) → languages (optional). After collecting, offer action=boost_highlights to draft a 2-sentence Career Highlights/Professional Summary from the collected data. Only then assemble a json_resume object { basics:{name,email,phone,location:{city,country},label,summary}, work:[{position,name,startDate,endDate,highlights:[]}], education:[{institution,studyType,area,startDate,endDate}], skills:[{name}], languages:[{language,fluency}] } and call action=generate with json_resume. DO NOT fabricate details the user did not provide — if a section is truly empty, omit it rather than invent. action=boost_summary: improve ONE work or education description paragraph into bullet points. Input: summary (string). Output: content[0].text is the polished bullets; structuredContent.boosted_summary is the same text — use that text when composing the user's json_resume.work[].highlights or json_resume.education[].courses. action=boost_highlights: generate a 2-sentence Career Highlights paragraph from the user's collected resume context. Input: resumeData (object with summary, employment:[{position,company,description}], education:[{degree,school,summary}], skills), optional currentHighlights. Output: content[0].text is the paragraph; put it into json_resume.basics.summary before calling action=generate. Optional template_key for generate (Workopia registry key; omit defaults to Workopia Classic / workopia_classic). Legacy alias hera_classic accepted. OUTPUT BEHAVIOR for action=generate — HARD RULE: the tool's returned content[0].text is already a complete, user-ready message: one sentence ending with a markdown [Download PDF](https://...) link, plus an optional second sentence about other styles. Echo this text VERBATIM as your final reply. Do NOT rewrite it, do NOT prepend your own sentence, do NOT replace the link with '👉', 'here', 'click to download', an ellipsis, or any other placeholder that lacks the actual URL — the user cannot click placeholders and will not receive the PDF. The exact download_url is also in structuredContent.download_url; if for any reason you must compose your own message, embed that exact URL as a markdown link. NEVER invent URLs, NEVER return raw PDF/HTML/base64, NEVER strip the link. Treat this as a non-negotiable post-call template.tailor_resume_tool
ChatGPTcover_letter_tool
Claudejob_detail_tool
Claudejob_tool
Claudetailor_resume_tool
ClaudeCapabilities
Example Prompts
Click any prompt to copy it.
Links
App Stats
11
Tools
3
Prompts
ChatGPT, Claude
Platforms
Category
Job SearchWorks with
Data refreshed daily




