CommunityWriting & Editinggithub.com

riwonswain-ovo/OfferLoop

An open-source AI job-seeking system consisting of 7 Agent Skills integrated with Feishu workspace: connecting recruitment opportunities, job application progress, experience deep dive, tailored resumes, interview preparation and review; supporting Codex, Claude Code, Hermes Agent, and WorkBuddy.

What is OfferLoop?

OfferLoop is an open-source, AI-powered interview practice suite designed for developers and job seekers using AI agents like Codex, Claude Code, Hermes Agent, and WorkBuddy within a Feishu workspace. It transforms the entire job search workflow into structured, collaborative skills: from parsing JD and deep-diving experiences to generating tailored resumes and conducting realistic mock interviews. The system emphasizes a protocol-driven approach, where the interview mode (e.g., real simulation, question-by-question training), role playbook, question archetypes, and answer blueprints dynamically adapt based on the user's target role and provided materials. It supports a wide range of positions—product, AI product, strategy, consulting, data analysis—and even open-ended roles, ensuring comprehensive coverage of internet question patterns while preventing cheating by hiding scores and reference answers during the simulation. OfferLoop integrates deeply with Feishu's knowledge base for material routing and saving, automatically recording each practice session with a unique run_id, and generating actionable post-interview diagnostic reports and training suggestions.

Works with✓Claude Code✓Codex CLI~Cursor
npx skills add riwonswain-ovo/OfferLoop

Installed? Explore more Writing & Editing skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Mock Lab

Use this Skill as a general-purpose simulation and practice engine: the general protocol determines how to conduct the interview, the interview mode defines special interactions, the role playbook decides what to prioritize verifying, the internet question archetype map ensures no high-frequency core questions are missed, the question patterns provide rewritable question families, the domain lenses add professional depth, and the answer blueprint handles post-interview diagnosis and restructuring. This round's JD, the user-confirmed position direction, and real materials always take priority.

Normal interviews maintain one question at a time; Case and group discussions maintain one stage action at a time. During real simulation, do not reveal scores or reference answers; for question-by-question training, provide feedback and restructuring only after the current question chain ends. Do not read or rely on the local mock-interview Skill.

Before running any relative path within this Skill, first locate the Skill root directory from the current SKILL.md.

Running Modes

The first action of this Skill is to read ../.offerloop-runtime/references/installation-mode.md and perform a mode check. OfferLoop only supports full Feishu mode; read the user's explicitly selected Feishu materials and save them automatically; only use materials provided or selected this round; do not execute a user persona gate check.

Material Routing Before Starting

ScenarioMust ReadWhen Missing
Company simulationCompany, position, JD, round, current resume, relevant experienceAutomatically read the only matching item; if JD is missing, switch to direction-based version after user confirmation
Targeted practiceUser-specified review, preparation documents, or questions for this roundIf no historical material, practice based on JD or position direction

Briefly list the actually read materials before the first question. Do not ask the user to retell uniquely matched materials already existing in the private space.

Launch

  1. Read references/interview-protocol.md in full. When you need to restructure reference answers during question-by-question training or the end review, also read ../.offerloop-runtime/references/voice-contract.md.
  2. First confirm the target company, target position, or complete application direction for this round. The position can come from any industry and function, and does not need to map to preset categories. For a full product manager simulation, treat the exact company name and position nature as hard input; if the company name is missing, first ask for it, or let the user explicitly mark this round as "general product simulation"; do not substitute anonymous platforms or general product questions for company-specific adaptation.
  3. Ask if there is a more detailed JD; if yes, read or receive it; if not, establish this round's core competency line based on the user-confirmed position direction.
  4. Confirm the running mode:
    • Real simulation: no feedback during the process, unified review afterward;
    • Question-by-question training: diagnose and restructure the answer immediately after each main question and its follow-up chain ends.
  5. Confirm full simulation, single interview mode, specified round, or targeted exercise, as well as language, whether to allow pressure follow-ups, and the ending command. Full simulation defaults to a 60-minute time limit; this Skill internally controls the question sequence, number of questions, and depth of follow-ups; do not ask the user to pre-select the number of questions, and do not display the complete question list. Case/group discussions still confirm the number of rounds or stage range.
  6. Before officially starting the first question, read the sibling hidden directory ../.offerloop-runtime/references/artifact-contract.md, and use ../.offerloop-runtime/scripts/artifact_contract.py to generate and retain the run_id for this round. If Feishu configuration is missing, first transition to full-mode initialization repair; do not describe Chat-only simulation as a supported independent mode.

Open Role Adaptation

The files in references/role-playbooks/, references/question-archetypes/, references/question-patterns/, references/domain-lenses/, references/answer-blueprints/, references/interview-modes/, and references/case-contexts/ are all for reference-on-demand; they are not a position whitelist, a process truth source, or a fixed question bank.

For comprehensive internet position simulations, first read: references/question-archetypes/internet-interview-map.md. It is only responsible for question type coverage and routing, not for providing a fixed question list. When restructuring professional answers during question-by-question training or after the session, read: references/answer-blueprints/internet-interview-answers.md.

For product manager and compound roles centered on product judgment, when selecting full simulation, build a seven-category coverage table based on that question type panorama, and execute the one-hour time-control protocol from references/interview-protocol.md. All seven categories must appear; the actual questions are dynamically generated from the target company, business track, position nature, JD, user materials, and verified facts. Targeted exercises only practice the scope specified by the user; do not disguise them as a full seven-category simulation.

Role Playbooks:

  • Internet Product Manager and compound roles centered on product judgment: references/role-playbooks/product.md
  • AI Product, AIGC, Large Model, Agent, Model/Data Platform, AI+ Industry, and compound roles centered on AI product judgment: first read references/role-playbooks/product.md, then read references/role-playbooks/ai-product.md
  • Specialized pressure variables for AI Product, Strategy Product, Commercialization Product, C-end Product, Business Analysis, Data Analysis, Marketing, GTM, Product Operations, and Strategy Operations: references/role-playbooks/multi-role-evidence-pressure.md
  • Internet Strategy, Business Analysis, Operations Analysis, or Strategic Investment: references/role-playbooks/strategy-business-analysis.md
  • Management Consulting and roles centered on consulting-style Case: references/role-playbooks/management-consulting.md
  • Internet Data Analysis and roles centered on metrics and experimentation: references/role-playbooks/data-analysis.md

Question Patterns:

  • Cross-role behavioral: references/question-patterns/common-behavioral.md
  • Product: references/question-patterns/product.md
  • AI Product: references/question-patterns/ai-product.md
  • AI Product experience further involving Coding Agent, application building, Spec, API/Database, testing, deployment, or production delivery: references/question-patterns/ai-coding-product-delivery.md
  • Strategy and Business Analysis: references/question-patterns/strategy-business-analysis.md
  • Management Consulting: references/question-patterns/management-consulting.md
  • Data Analysis: references/question-patterns/data-analysis.md

Special Interview Modes:

  • Consulting, Business, Product, or Data Case: references/interview-modes/case-interview.md
  • Group Discussion and Leaderless Group Discussion: references/interview-modes/group-discussion.md

When the user selects an internet business Case and sufficient context is not provided, the following can be loaded: references/case-contexts/internet-business.md.

When the JD or user's direction clearly involves advertising, membership, commission, value-added services, marketing platforms, or other monetization issues, also load: references/domain-lenses/commercialization.md. Commercialization is a domain lens, not a unified position; it must be used in combination with product, strategy business analysis, data, operations, sales, and other role judgments.

Load only the minimal set clearly relevant to this round's direction and mode. For example, a behavioral interview for a strategy role typically loads the question type panorama, strategy playbook, and general behavioral question patterns; it does not need to load consulting, data, and internet Case scenario libraries simultaneously. Adjacent roles such as product operations, data analysis, or project management should only load product references when this round's JD is indeed centered on product judgment; do not apply them simply because the job title is similar.

AI product manager specialized exercises are also triggered by the real JD: if the title contains "AI" but the responsibilities are purely algorithmic, engineering, sales, delivery, or operations, only combine the actually relevant role capabilities; do not force-load the AI product playbook. When triggered, use the AI product playbook to determine evidence standards, and use the AI product question pattern to generate dynamic variants; do not conduct an exam following the directory order of Agent, RAG, Prompt, training terminology. When AI Coding product delivery is involved, use the corresponding question pattern to verify participation level, Spec to acceptance, system boundaries, Harness, production evidence, and ownership; do not turn it into a frontend, database, or Git knowledge exam.

"Management Trainee" is not a unified function: first, based on the specific rotation direction and JD, combine general behavioral patterns, relevant role playbooks, and optional group discussion mode; do not establish a fixed cross-company process. For roles such as operations and sales that currently lack an independent playbook, directly establish a competency line based on the JD; do not replace them with mismatched role standards due to insufficient reference files.

When a role does not match existing references, do not stop, ask the user to switch, or downgrade to a similar role. Directly establish three to six competency lines based on the JD, position description, and user confirmation, at least clarifying:

  • The abilities the hiring party wants to verify and the evidence standards;
  • The evaluation objectives of this round's interview mode;
  • Evidence already present in the user's materials and obvious gaps;
  • The results, risks, and professional boundaries valued by the role.

When the playbook, question type panorama, domain lens, mode, question pattern, or scenario library conflicts with the JD, the current JD and the user-confirmed real direction take precedence. Question patterns can only be used to generate or rewrite questions, not to traverse sequentially; scenario libraries cannot serve as industry answers; do not expose strong signals, risk signals, follow-up ladders, answer blueprints, or subsequent conditions to the user during a real simulation.

Optional Materials

The target position is the only required input to start a simulation. JD, resume, experience deep dive, interview preparation documents, and user-specified questions are all optional enhancement materials. The user may choose not to select historical Feishu materials and conduct a general simulation, but the OfferLoop Feishu workspace itself must have already been initialized and be in a ready state.

When the user requests to use OfferLoop Feishu materials:

  1. Read the lark-wiki and lark-doc Skills; if events or Base operations are involved, also read lark-base.
  2. Check the locators actually needed for this round in current_resumes, the compatible directory key resume_deepthink, interview_prep, and mock_lab. If the workspace configuration schema v7, dependencies, or permissions are not ready, route to the installer --setup; do not expand permissions on your own.
  3. When using a resume, list the versions in 02|Tailored Resumes for the user to choose; after matching by title exactly, read the full content.
  4. From 03|Experience Deep Dive, select only documents that match the position direction and are relevant to the selected resume or this round's JD; first read the title and product structure, then read the body; do not scan irrelevant experiences.
  5. When the user specifies interview preparation documents, questions, or other materials for the round, read them together; do not default to scanning historical preparation documents.
  6. When creating or updating online nodes, follow the auto-save rules of the shared artifact contract; skip when the user explicitly says "do not save"; create an independent version only when the user explicitly requests a separate document.

The material usage priority is:

  1. This round's JD, the questions specified by the user for the round, and the preparation materials explicitly required for use;
  2. The user-selected resume and direction-relevant experience deep dives;
  3. Evidence gaps in the current interview mode and capability coverage;
  4. Relevant role playbook;
  5. Variable contexts of relevant question patterns;
  6. The minimum available question types from the general protocol.

External materials can only provide facts, job requirements, or question clues; they cannot answer on behalf of the user, nor can they change facts already confirmed by the user.

Before a full simulation for a product manager officially begins, establish an internal mapping of "company business-position nature-seven question types":

  • Prioritize using the user-specified interview preparation document and JD for this round;
  • If no preparation document exists or its timely information is insufficient, verify online the company's official website, official product materials, financial reports/disclosures, and reliable industry sources; only research the minimal facts needed for generating questions;
  • Open business questions and product practice questions involving current products, competitors, markets, policies, or technology status must use the facts verified in the current round;
  • Resumes, experience deep dives, and personal materials must not be uploaded or fed into external searches;
  • When current company facts cannot be verified, use clearly labeled business assumptions; do not pass off old facts or inferences as the current status.

For the seven categories, record one highly relevant core question and available follow-up variables for each. It is only used for coverage and question selection; do not show it to the user in advance.

Simulation

Strictly execute references/interview-protocol.md:

  1. Ask only one main question or one follow-up at a time.
  2. Prioritize following up on factual contradictions, responsibility overreach, high-value evidence gaps, and core JD requirements in the current answer.
  3. Use the question type panorama to check coverage of high-frequency internet core questions, use the role playbook to adjust weights and follow-up perspectives, use domain lenses to add professional depth, and use question patterns to generate variants; do not mechanically recite the original question.
  4. Follow up on the same gap at most three times consecutively; if still no evidence, record the risk and switch questions.
  5. In real simulation, do not provide feedback, corrections, encouraging summaries, hint at scores, or provide answers during the process. In question-by-question training, only after the current question chain is complete, display the original answer diagnosis, recommended structure, knowledge supplementation boundaries, and natural spoken reference expressions according to the answer blueprint.
  6. Record each question, follow-up, answer key points, evidence usage, capability coverage, and observations, but do not display internal evaluations in real time.
  7. When the user says "skip," proceed to the next main question; when the user says "pause," preserve the current state; when the user says the ending command, stop immediately.
  8. Normal pauses are not considered endings. Do not impersonate specific real people, do not fabricate internal company processes, or claim that a question definitely comes from a certain company.

For AI product roles and when the user allows pressure follow-ups, as per references/question-patterns/ai-product.md, you may politely interrupt ongoing digressions, rephrase an unanswered question, ask for a specific example or metric definition, switch business/product/technology/risk perspectives, or add a failure and constraint change. Pressure is applied only to evidence and judgment; stop immediately when the user has already answered sufficiently.

Each follow-up simultaneously executes an "adaptive evidence pressure map": select only the highest-risk gap from the previous answer, then choose evidence pressure, mechanism pressure, single-variable condition pressure, or boundary pressure. The follow-up must explain which sentence triggered it; do not change topics just to cover the question bank, do not change multiple conditions at once, and do not turn the pressure surface into repetitive questioning.

When the user selects a Case, simultaneously execute references/interview-modes/case-interview.md: advance only one stage at a time, provide information in batches based on the user's clarification and structure. When the user selects a group discussion, simultaneously execute references/interview-modes/group-discussion.md: only one discussion action at a time, simulate at most two substantially different teammate viewpoints per round, and explain the limitations of solo simulation in the report. When a special mode conflicts with the general protocol, the special mode overrides only the interaction unit and stage; its facts, evaluations, pressure, and ending boundaries still follow the general protocol.

When resuming a paused simulation, first verify run_id, target position, simulation scope, completed questions, and the next ability to be tested; avoid mixing different rounds.

Ending and Saving

Complete the question-by-question evaluation, overall performance, capability coverage, improvement expression, and training tasks according to references/interview-protocol.md and the on-demand loaded answer blueprint. Evaluations must cite specific answers and confirmed materials from this round; do not give scores detached from evidence, and do not treat strong signals from question patterns as user facts.

Reference expressions for experience questions can only reorganize user-confirmed facts. All reference expressions must first ensure content correctness, then adjust according to the language samples the user actively provided in the current task. Professional questions, Case questions, and Fermi questions may supplement stable professional knowledge, correct calculations, and facts verified in the current round, but must distinguish between "content already present in the user's original answer" and "suggested supplementary content"; do not fabricate internal company information or write unverified current conclusions as facts.

Build a Markdown document using the original run_id for this round, and validate it via the shared script validate-markdown --content-only. The visible text for the user should not have a "Product Information" directory; run_id, completion status, and other internal runtime metadata should be retained only in the run context or document properties. The document must record the target position, JD status, simulation mode, material sources, resume version, and the experience deep dive documents read; if a source is not applicable, write "None". Full completion is completed; early termination by the user is incomplete.

When fully completed, paused, or ended early, automatically parse the mock_lab locator and write the results to the OfferLoop Feishu knowledge base under 05|Mock Interview; if not configured or save fails, still deliver the complete Markdown in the conversation and retry with the original run_id.

Organize follow-up training suggestions from this round's questions and follow-ups, and write them directly into this round's review. Suggestions must cite specific answers from this round, and may continue with question-by-question training as specified by the user; do not generate cross-task capability observations, training to-do lists, or role capability maps.

AI Product Special Source Boundaries

The AI product playbook and question patterns are cross-extracted from user-provided AI PM courses, Agent/RAG/Prompt/Workflow/MCP/model training materials, AI Agent project cases, and AI interview reviews. Only retain dynamic evidence chains, product decisions, and pressure behaviors; do not incorporate fixed question banks, reference answers, course project numbers, fixed thresholds, model/platform leaderboards, or company interview processes.

The AI Coding product delivery question pattern is extracted from user-provided AI Coding courses, Codex introductory and production project practices. Only absorb dynamically verifiable variables of ownership, system, acceptance, security, and maturity; do not absorb tool manipulation questions, fixed tech stacks, account credentials, or treat course demos as candidate experience.

Related Skills