get_notifications_api_notifications_get
Get Notifications Fetch notifications for the current user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ {} ] ```
limitis_readin.hopehirePublished by hopehire.inOfficial publisherv1.0.0Updated Oct 27, 2026
Tailor resumes, score ATS fit, find hiring leads, and send cold outreach, from your agent.
HopeHire lets an assistant tailor resumes, score ATS fit, match jobs, and run cold-email outreach from a HopeHire account.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/in.hopehire%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"hopehire": {
"type": "http",
"url": "https://hopehire.in/mcp",
"headers": {
"Authorization": "Bearer <YOUR_TOKEN>"
}
}
}
}Get Notifications Fetch notifications for the current user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ {} ] ```
limitis_readMark All Notifications As Read Mark every unread notification as read (not just the page the client loaded). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Mark Notification As Read Mark a notification as read. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
notification_idrequiredDelete Notification Delete a notification. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
notification_idrequiredGet Ats Score Return the most recently calculated ATS score for the user's resume. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Refresh Ats Score Recalculate the ATS score from the current resume and persist it. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Resume Ai Chat Stream an AI response that helps the user interactively improve their resume. Body: user_id (str) — authenticated user's ID message (str) — latest user message conversation_history (list) — [{role: "user"|"assistant", content: str}] ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Mark Improvement Suggestions Invalid Replace improvement suggestions with the provided valid_suggestions list. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredvalid_suggestionsrequiredGenerate Yaml Version Generate YAML version and RenderCV PDF for existing resume ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Apply Suggestions Apply improvement suggestions to YAML and regenerate PDF ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Yaml Suggestions Generate YAML-based improvement suggestions ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Generate Complete Resume Generate a complete, enhanced resume with additional relevant content using AI. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredresume_textrequiredRender Raw Yaml Hot-reload: Generate PDF from raw YAML content ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Save Resume Yaml Save raw YAML content to the user's resume. YAML is treated as the source of truth: the structured resume fields (personalInfo, experience, education, projects, skills, certifications) are parsed from the YAML and written back to the database so that every other part of the application (resume overview, AI chat, job matching …) always reflects the latest YAML edits. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Create Resume From Linkedin Create a resume from LinkedIn profile URL using Apify API. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
Takes no parameters.
Get Rendercv Pdf Get RenderCV PDF download URL for the user's resume. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGet Rendercv Pdf Download Return a presigned URL with Content-Disposition: attachment so the browser downloads the resume PDF instead of opening it inline. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredTest Pdf Generation Test PDF generation to debug PDF issues. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Debug Pdf Get debugging information about a PDF file. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
file_pathrequiredDownload Resume Download the user's resume. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
s3PathrequiredPublic Resume Resume link embedded in cold emails: no login, but only links we signed will open. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
sigrequireds3PathrequiredShow Resume Show the resume via redirect to presigned S3 URL. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
s3PathrequiredGet Resume Get the user's resume. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idUpload Resume Upload and process a resume file. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
fileuser_idUpdate Resume Manual Update a user's resume manually and trigger PDF generation. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
idrequireds3PathskillsrequiredsourceuserIdrequiredfileNamefileSizefileTypeprojectscreatedAtrequirededucationrequiredlanguages+16 moreDelete Resume Delete the user's resume and cleanup associated resources. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
s3Pathuser_idSet Cold Email Resume Source Set which resume file cold outreach should use: the originally uploaded file ("uploaded", the default) or HopeHire's RenderCV-generated PDF ("generated"). A lightweight sibling to the full manual-edit PUT above — this only flips one field and doesn't trigger PDF/YAML regeneration. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
Takes no parameters.
Get Preferences Get the user's job preferences Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idCreate Preferences Create the user's job preferences Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
iduserIdjobTypesisFresherlocationstechStackupdatedAtindustriesexpectedCtctargetRolesfunctionAreaslocationTypes+4 moreUpdate Preferences Update the user's job preferences Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
iduserIdjobTypesisFresherlocationstechStackupdatedAtindustriesexpectedCtctargetRolesfunctionAreaslocationTypes+4 moreDelete Preferences Delete the user's job preferences Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idStart Job Matching Start an asynchronous job matching process Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idresume_iduse_preferencesGet Filtered Jobs Get filtered job matches for a user Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
limitoffsetsort_byuser_idjob_typekeywordslocationresume_idmin_salarysort_orderlocation_typemin_match_score+1 moreClear Job Matches Clear all job matches for a user Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idStart Conversation Start a new conversation using the shared auto-apply service logic. ### Responses: **201**: Successful Response (Success Response) Content-Type: application/json
job_idrequireduser_idrequiredresume_iduser_profileStart auto-apply process Launches an automated job application process that finds contacts, generates personalized messages, and sends emails with resume attachments. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "task_id": "Task Id", "status": "AutoApplyStatus" } ```
job_idrequireduser_idrequireduser_profilerequiredGet all auto-apply tasks for a user Get all auto-apply tasks for a given user. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idCheck auto-apply status Retrieves the current status and results of an auto-apply task. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "task_id": "Task Id", "status": "AutoApplyStatus" } ```
task_idrequiredGet Auto Apply Status By Task Id Get status of an auto-apply task by task_id (conversationId). Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "task_id": "Task Id", "status": "AutoApplyStatus" } ```
task_idrequiredStart Conversation Start a new email conversation. ### Responses: **201**: Successful Response (Success Response) Content-Type: application/json
intentrequiredjob_idcontact_namecontext_datainitial_bodysubject_linerequiredcontact_emailrequiredGet Conversations Get all conversations for the authenticated user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ { "id": "Id", "contact_email": "Contact Email", "status": "ConversationStatus", "intent": "ConversationIntent", "subject_line": "Subject Line", "message_count": 1, "last_updated": "2023-01-01T00:00:00Z" } ] ```
skiplimitGet Conversation Details Get details of a specific conversation. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "id": "Id", "contact_email": "Contact Email", "status": "ConversationStatus", "intent": "ConversationIntent", "subject_line": "Subject Line", "message_count": 1, "last_updated": "2023-01-01T00:00:00Z", "messages": [ {} ], "context_data": {} } ```
conversation_idrequiredPause Conversation Pause an ongoing conversation to stop automatic follow-ups. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
conversation_idrequiredResume Conversation Resume a paused conversation. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
conversation_idrequiredSend Manual Message Send a manual message in the conversation, overriding the AI. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
conversation_idrequiredmessage_contentrequiredResolve Protocol Resolve a human-intervention protocol by sending a manual reply and marking the associated notification as read. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
conversation_idrequiredmessage_contentrequirednotification_idrequiredGet System Stats Get overall system statistics ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "workers": [ {} ], "total_active_users": 1, "system_status": "System Status" } ```
Takes no parameters.
Get Active Users Get list of active users with email monitoring enabled ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ {} ] ```
skiplimitEnable User Monitoring Enable email monitoring for a specific user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredDisable User Monitoring Disable email monitoring for a specific user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredUpdate User Monitoring Config Update email monitoring configuration for a user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredprioritymonitoring_frequencyemail_monitoring_enabledTrigger User Discovery Manually trigger user discovery process ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get User Monitoring Status Get monitoring status for a specific user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGet Email Analytics Report Get email analytics report for a user over a specific duration. Duration options: - 7d: Last 7 days - 30d: Last 30 days - 90d: Last 90 days - 1y: Last year - all: All time ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequireddurationrequiredGet Email Analytics Summary Get a quick summary of email analytics for the last 30 days. This is a lightweight endpoint for dashboard widgets. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGet User Memory Get user memory by user ID ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequiredCreate User Memory Create new user memory ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequiredcompensationnotice_periodcareer_contextjob_preferencesai_context_notessafety_guardrailsscreening_profileauto_apply_preferencescommunication_preferencesUpdate User Memory Update existing user memory ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequiredcompensationnotice_periodcareer_contextjob_preferencesai_context_notessafety_guardrailsscreening_profileauto_apply_preferencescommunication_preferencesDelete User Memory Delete (deactivate) user memory ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequiredGet User Memory History Get user memory history (all versions) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true, "total": 1, "page": 1, "limit": 1 } ```
pagelimituser_idrequiredAdd Ai Interaction Context Add AI interaction context to user memory ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequiredUpdate Remembered Field Answer Edit one remembered application-field answer from the memory-bank UI. Same durable store the extension writes to (interaction_history, keyed by normalized label) - this just lets the user correct it directly instead of waiting to be asked the question again on some future form. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
labelrequiredvaluerequireduser_idrequiredDelete Remembered Field Answer Forgets one remembered application-field answer (memory-bank UI delete action). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
user_idrequirednormalized_labelrequiredApply Memory Suggestion Apply a specific memory update suggested by the AI. Body: { user_id, suggestion } ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
User Memory Ai Chat ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Available Senders Get all available email senders (admin only — exposes other senders' PII and quotas) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
Takes no parameters.
Get Least Used Sender Get the least used email sender for load balancing, considering company contact history (admin only) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
company_idcompany_nameGet Fallback Sender Get a fallback email sender, excluding the specified user (admin only) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
exclude_user_idSend Email Via Pool Send an email using the email sender pool (admin only) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
torequiredsubjectrequiredthread_idreferencesin_reply_tomessage_textrequiredsender_user_ids3_attachment_keyattachment_filenameGet My Footer Get the footer for the currently authenticated user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Update My Footer Update the footer for the currently authenticated user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
nameemailphonetitlegithubcompanylinkedinlocationportfolioproject_linksGet Email Footer Get email footer for a user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredUpdate Email Footer Update email footer for a user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
nameemailphonetitlegithubcompanyuser_idrequiredlinkedinlocationportfolioproject_linksGet Formatted Footer Get formatted footer string for a user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGenerate Footer From Resume Generate email footer from user's resume data. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGet User Config Get configuration for a specific user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredUpdate User Config Update configuration for a specific user ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredReset User Config Reset user configuration to defaults ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredGet Campaign Config Get configuration for a specific campaign ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
campaign_idrequiredUpdate Campaign Config Update configuration for a specific campaign ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
campaign_idrequiredReset Campaign Config Reset campaign configuration to defaults ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
campaign_idrequiredGet Effective Config Get effective configuration combining user and campaign settings ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredcampaign_idGet Default Config Get default configuration values ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get All User Configs Get all user configurations (admin only) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get All Campaign Configs Get all campaign configurations (admin only) ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Available Leads Return leads for the authenticated user, filtered by outreach status. status=fresh — leads not yet contacted (default); AI-ranked status=queued — leads the user has queued for outreach status=contacted — leads the user has already emailed ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
limitoffsetstatusemail_onlymin_qualityGet All Leads Admin Admin view: return all leads regardless of outreach status. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
limitoffsetemail_onlymin_qualityGet Lead Stats Return summary statistics for the lead database. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
List Accounts List all LinkedIn scraper accounts in the pool (passwords masked). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Add Account Add a LinkedIn scraper account to the pool. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
emailrequiredproxypasswordrequiredassigned_queriesmax_requests_per_dayUpdate Account Status Update the status of a LinkedIn account (active / cooldown / banned). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
statusrequiredaccount_idrequiredList Scrape Runs List recent scrape run records for audit / dashboard (admin only: they hold platform-wide queries and volumes). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
limitGet Lead Outreach History Return the outreach thread for this lead for the current user. Returns a chronological list of events: - type=sent — initial cold email - type=follow_up — follow-up email - type=reply — recruiter reply ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
lead_idrequiredGet Lead Fetch a single lead by its ID. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
lead_idrequiredUpdate Outreach Status Update the current user's outreach status for a given lead. Use this after sending a cold email so the lead is marked as contacted. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
notesstatusrequiredlead_idrequiredcold_email_idSend Outreach From Lead Generate and send a cold outreach email directly from a LinkedIn lead. Flow: 1. Fetch the lead — must have an email address. 2. Load the authenticated user's resume/profile from MongoDB. 3. Call send_and_track_cold_email() to generate (or use custom_message) and send the email via the user's connected Gmail. 4. Record the outreach status on the lead (status='sent') with a back- reference to the cold_email_id. 5. Sync the company HR contact (idempotent — already done on scrape, but update lastContactedAt now). Returns the cold_email_id so the frontend can link to the email thread. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
lead_idrequiredjob_linkcustom_messageGenerate Linkedin Message Generate a short LinkedIn outreach message (≤280 chars) personalised to this lead. The frontend copies it to clipboard and opens the recruiter's LinkedIn profile so the user can paste-and-send in one step. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
lead_idrequiredBulk Send Outreach Send outreach emails to multiple leads in one call. Each lead must have an email address. Leads without emails are skipped. Returns per-lead results so the frontend can show success/fail per contact. Rate-limited to 20 leads per request to protect Gmail sending quotas. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
lead_idsrequiredTrigger Scrape Manually kick off a LinkedIn scrape run. Admin only: each run spends metered Apify credits and accepts arbitrary search queries. Strategy (tried in order): 1. Publish to the linkedin_scrape_queue via RabbitMQ (if running). 2. If RabbitMQ is unavailable or times out, run the scrape directly as a FastAPI BackgroundTask so this endpoint always returns fast. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
queriesmax_posts_per_queryApify Webhook Receives push notifications from Apify when a scraper run completes. No authentication required (Apify calls this endpoint). Apify includes a secret token in the URL for verification in production. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
List Templates Return the user's email templates, generating them if none exist yet. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ { "id": "Id", "name": "Name", "subject": "Subject", "body": "Body", "usage_count": 1, "reply_count": 1, "reply_rate": 1.0 } ] ```
Takes no parameters.
Update Template Edit a template's subject, body, or name. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "id": "Id", "name": "Name", "subject": "Subject", "body": "Body", "usage_count": 1, "reply_count": 1, "reply_rate": 1.0 } ```
bodynamesubjecttemplate_idrequiredRegenerate Templates Delete all existing templates and generate a fresh one via AI. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ { "id": "Id", "name": "Name", "subject": "Subject", "body": "Body", "usage_count": 1, "reply_count": 1, "reply_rate": 1.0 } ] ```
Takes no parameters.
Get Tools Schema Returns the JSON schema for all available tools. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
use_composioExecute Tool Executes a tool by name with provided arguments. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Connection Url Get the authorization URL for a specific Composio app. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
app_namerequiredDisconnect App Revoke the user's Composio connection for a specific app. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
app_namerequiredList Connections List all active connections for the user in Composio. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Integration Status Get the connection status for key integrations across all providers. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get User Credits Return the current user's credit balance, referral code, and total referrals. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Referral Code Return the user's referral code, generating one if it doesn't exist yet. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Claim Referral Code Claim a referral code. Awards 10 credits to both the claimer and the referrer. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
referral_coderequiredGet Outreach Queue Get pending outreach queue items for the current user. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ {} ] ```
Takes no parameters.
Approve Outreach Item Approve a queue item and send the cold email. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
item_idrequiredDismiss Outreach Item Dismiss an outreach queue item. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
item_idrequiredGet Autopilot Settings ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "daily_outreach_enabled": true, "outreach_timezone": "Outreach Timezone", "daily_outreach_batch_size": 1, "credit_balance": 1, "autopilot_enabled": true, "outreach_paused": true } ```
Takes no parameters.
Update Daily Outreach Settings ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "daily_outreach_enabled": true, "outreach_timezone": "Outreach Timezone", "daily_outreach_batch_size": 1, "credit_balance": 1, "autopilot_enabled": true, "outreach_paused": true } ```
outreach_timezonedaily_outreach_enabledrequireddaily_outreach_batch_sizeResume Outreach Endpoint User-initiated: clear the bounce circuit breaker's paused state. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "daily_outreach_enabled": true, "outreach_timezone": "Outreach Timezone", "daily_outreach_batch_size": 1, "credit_balance": 1, "autopilot_enabled": true, "outreach_paused": true } ```
Takes no parameters.
Update Legacy Autopilot Settings Legacy job-board autopilot — not available when daily outreach is enabled. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "autopilot_enabled": true, "autopilot_min_match_score": 1.0 } ```
autopilot_enabledrequiredautopilot_min_match_scorerequiredGet Active Outreach Batch ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Get Outreach Batch ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
batch_idrequiredCreate Outreach Batch ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
limititem_idsbatch_typerequiredmin_qualityCancel Outreach Batch ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
batch_idrequiredGet Pending Auto Replies List pending auto-replies the user can still cancel. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ {} ] ```
Takes no parameters.
Cancel Pending Auto Reply Cancel a pending auto-reply before it fires. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
reply_idrequiredCreate Application Track a newly-submitted job application (called by the extension after a user submits). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "user_id": "User Id", "company_name": "Company Name", "job_title": "Job Title", "job_url": "Job Url", "platform": "Platform", "status": "ApplicationStatus", "applied_at": "2023-01-01T00:00:00Z", "status_history": [ { "status": "ApplicationStatus", "changed_at": "2023-01-01T00:00:00Z" } ], "source": "Source" } ```
job_urlrequiredplatformjob_titlerequiredcompany_namerequiredList Applications List the current user's tracked applications, most recent first. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ { "user_id": "User Id", "company_name": "Company Name", "job_title": "Job Title", "job_url": "Job Url", "platform": "Platform", "status": "ApplicationStatus", "applied_at": "2023-01-01T00:00:00Z", "status_history": [ { "status": "ApplicationStatus", "changed_at": "2023-01-01T00:00:00Z" } ], "source": "Source" } ] ```
limitoffsetUpdate Application Status Manually update an application's status (e.g. marking Interview/Offer/Rejected). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "user_id": "User Id", "company_name": "Company Name", "job_title": "Job Title", "job_url": "Job Url", "platform": "Platform", "status": "ApplicationStatus", "applied_at": "2023-01-01T00:00:00Z", "status_history": [ { "status": "ApplicationStatus", "changed_at": "2023-01-01T00:00:00Z" } ], "source": "Source" } ```
statusrequiredapplication_idrequiredAnswer Fields AI fallback for job-application form fields the extension's coded/heuristic fill pass could not confidently answer. Batched per application (not per field) to control latency and cost. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "answers": [ { "field_id": "Field Id", "confidence": "Confidence", "source": "Source" } ] } ```
fieldsrequiredjob_contextrequiredAgent Step Tier 4: one step of an agentic fallback loop for pages where tiers 1-3 (coded adapters, universal field matcher, batched AI field-answering) found nothing to work with. The extension sends a snapshot of every visible interactive element on the page; this returns exactly one action to take next. Never raises on a bad/failed model response - degrades to "blocked" so the client loop just stops rather than crashing the fill. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "action": "Action" } ```
steprequiredhistoryelementsrequiredjob_contextrequiredRemember Field Answer Durable, cross-device, cross-site memory of one field answer the extension learned - either a confirmed AI answer or a user's correction, fired on every blur/selection of a field the extension filled. Grounds future /answer-fields calls (see get_remembered_field_answers above) so the same question doesn't need asking again on the next application, anywhere. Requires extension_field_memory_consent - the extension's own UI should already gate whether it ever sends this request, but a consent decision this sensitive (can include EEO/self-identification answers the user typed themselves) shouldn't rely on client-side gating alone. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
labelrequiredvaluerequiredTailor Resume Generates a one-off resume PDF reworded toward a specific job description, for the extension to swap into a file-upload field before submitting that one application. Never persisted to the user's profile/canonical resume. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "pdf_base64": "Pdf Base64", "file_name": "File Name" } ```
job_descriptionrequiredMatch Score Ad-hoc resume<->job-description match score for a posting the extension is looking at, which isn't (and doesn't need to be) a job stored in the DB. Uses the pure heuristic matcher (no embeddings/DB lookups needed). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "match_score": 1.0, "summary": "Summary", "missing_skills": [ "string" ] } ```
job_descriptionrequiredGet Extension Settings ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "recruiter_comms_consent": true, "field_memory_consent": true, "credit_balance": 1 } ```
Takes no parameters.
Update Extension Settings ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "recruiter_comms_consent": true, "field_memory_consent": true, "credit_balance": 1 } ```
field_memory_consentrecruiter_comms_consentExtension Apply Orchestrator called by the extension right after a user submits a job application: tracks the application, then immediately attempts the same credit-gated cold-outreach send the daily cron would eventually do, triggered on-demand instead. Outreach is best-effort: if there is no known contact for the company or the user is out of credits, the application is still tracked and the response says why outreach was skipped rather than failing the request. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
job_urlrequiredplatformjob_titlerequiredcompany_namerequiredjob_descriptionSend Product Update Broadcast Manually trigger a one-off product-update broadcast to all subscribed users. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
subjectrequiredhtml_bodyrequiredUnsubscribe Public link clicked from a newsletter email - no auth, verified by HMAC signature. ### Responses: **200**: Successful Response (Success Response) Content-Type: text/html **Example Response:** ```json "string" ```
sigrequireduidrequiredSubmit Feedback ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
action_typerequiredfeedback_textList Keys ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
Create Key Create a new API key. The raw key is only ever returned here -- store it now. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
namerequiredDelete Key ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
key_idrequiredInvite Info Public (pre-login) details for the join page. Unknown, used and expired all look the same. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
tokenrequiredMy Org ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
My Org Summary ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
Takes no parameters.
My Students ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
qskiplimitcohort_idRemove Student ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredCreate Invites ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
invitesrequiredList Invites ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
statusRevoke Invite ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
invite_idrequiredGet Least Contacted Hr Get the least contacted HR email for a specific company. This endpoint uses the same logic as the unified email flow to select the best HR contact. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true, "hr_email": "Hr Email", "company_name": "Company Name", "total_contacts": 1 } ```
company_namerequiredGet Cold Email Get cold emails for a user with pagination. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "cold_emails": [ { "user_id": "User Id", "recruiter_email": "Recruiter Email", "company_name": "Company Name", "sent_at": "2023-01-01T00:00:00Z", "status": "Status", "followup_interval_hours": 1, "followup_count": 1, "replied": true, "message": "Message", "opened": true, "open_count": 1, "auto_draft_generated": true } ], "offset": 1, "pagination": 1, "has_more": true } ```
offsetrequireduser_idpaginationrequiredSend Cold Email Send a cold email with a pre-generated message. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "user_id": "User Id", "recruiter_email": "Recruiter Email", "company_name": "Company Name", "sent_at": "2023-01-01T00:00:00Z", "status": "Status", "followup_interval_hours": 1, "followup_count": 1, "replied": true, "message": "Message", "opened": true, "open_count": 1, "auto_draft_generated": true } ```
messagerequireduser_idrequiredcompany_namerequireduser_profilerequiredrecruiter_emailrequiredPreview Cold Email Generate a preview of a cold email without sending it. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "message": "Message", "subject": "Subject" } ```
user_idrequiredcompany_namerequireduser_profilerequiredrecruiter_emailrequiredSend Cold Email To Hr Send a cold email to a specific HR contact. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
user_idrequiredhr_emailrequiredcompany_idrequiredcompany_namerequireduser_profilerequiredSend Unified Cold Email Unified cold email endpoint that handles: 1. Company creation if it doesn't exist 2. HR email auto-selection if not provided 3. HR contact addition to company 4. Email sending with tracking Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true, "cold_email": { "user_id": "User Id", "recruiter_email": "Recruiter Email", "company_name": "Company Name", "sent_at": "2023-01-01T00:00:00Z", "status": "Status", "followup_interval_hours": 1, "followup_count": 1, "replied": true, "message": "Message", "opened": true, "open_count": 1, "auto_draft_generated": true }, "hr_email_used": "Hr Email Used", "company_created": true, "hr_added": true } ```
jobLinksubjectuser_idrequiredhr_emailcompany_namerequireduser_profilerequiredemail_contentis_new_companysender_user_idfallback_enabledPreview Unified Cold Email Generate a preview for unified cold email flow. Requires authentication. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "message": "Message", "subject": "Subject" } ```
jobLinksubjectuser_idrequiredhr_emailcompany_namerequireduser_profilerequiredemail_contentis_new_companysender_user_idfallback_enabledGet Cold Email Replies Get replies for a specific cold email using its ID. This checks both the cold_emails collection and email_conversations collection. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
cold_email_idrequiredGet Cold Email Replies By Message Id Get replies for a cold email using its Gmail message_id. This is useful when you have the message_id from the cold email response. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
message_idrequiredList Companies ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json [ { "hrContacts": [ { "email": "Email" } ], "hrContactCount": 1 } ] ```
Takes no parameters.
Create Company Endpoint ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "hrContacts": [ { "email": "Email" } ], "hrContactCount": 1 } ```
namerequiredhrEmailrequiredAdd Hr Contact Endpoint ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "name": "Name" } ```
company_idrequiredTracking Pixel Endpoint for the email tracking pixel. When loaded, it updates the corresponding email record as opened. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
email_idrequiredGet Job Details Get detailed job listings with advanced filters and pagination ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true, "personalized": true } ```
limitoffsetremotesearchcompanysort_byjob_typelocationsalary_maxsalary_minsort_orderexperience_levelGet Job Detail Get a detailed job listing by ID ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "success": true } ```
job_idrequired83% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.
A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.