Parse Cfp logo

Parse Cfp

Community
ShaishavMaisuria
parse-cfp

Parses a conference Call for Papers (CFP) URL into a machine-checkable requirements card - deadlines with timezone (AoE vs local), per-track page limits including/excluding references, single/double/triple-blind level, exact LaTeX template invocation, LLM/AI-use policy, rebuttal format, and submission system (OpenReview, CMT, EasyChair, HotCRP, PCS) - emitted as a year-versioned venue-profile YAML conforming to venues/schema.yml. Use when the user shares a CFP or author-instructions URL, asks what a venue's submission requirements, deadlines, page limits, or anonymity rules are, or wants a venue profile under venues/conferences/ created or refreshed for a new submission cycle.

Overview

PublisherShaishavMaisuria
Repositoryresearch-paper-lifecycle-skills
Skill nameparse-cfp
Stars
59
Forks
22
Bundled files
3
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by ShaishavMaisuria on GitHub. Read the source before you install it.

Installation

Install the Parse Cfp AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills/tree/main/skills/parse-cfp
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills.git /tmp/research-paper-lifecycle-skills
mkdir -p .claude/skills
cp -r /tmp/research-paper-lifecycle-skills/skills/parse-cfp .claude/skills/parse-cfp
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Parse Cfp in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Parse Cfp on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Parse Cfp is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Parse CFP

Turn a live Call for Papers into the machine-readable venue profile that the rest of this repo runs on. Output is a venues/conferences/<venue>-<year>.yml file conforming to venues/schema.yml, plus a human-readable requirements card. Downstream consumers: preflight-check, tailor-to-venue, write-rebuttal, prepare-camera-ready, select-venue.

When to use

  • The user pastes a CFP, author-guidelines, or submission-instructions URL.
  • "What are the requirements / deadlines / page limits for VENUE YEAR?"
  • A profile in venues/conferences/ is missing or a year out of date.

Inputs

  • A CFP URL. If the user only names a venue, check venues/conferences/<venue>-<year>.yml for a cfp_url first; an older year's profile usually links the venue website where the new CFP lives.
  • venues/schema.yml — read it before writing the profile; it defines every field and the mandatory verified: provenance block.
  • The matching venues/families/<family>.yml for family-level defaults.
  • CONTACT_EMAIL env var (used in the polite fetch User-Agent; the script prompts if unset).

Process

  1. Scope one venue + one year. Read venues/schema.yml. If a profile for this venue-year already exists, treat it as hints to re-verify, never as ground truth.

  2. Fetch the CFP page. Run:

    python3 scripts/fetch_cfp.py "<cfp-url>"

    The script fetches ONE page per invocation, rate-limits to 1 request/second per host, backs off exponentially on HTTP 429, caches under .cache/ (gitignored) for 24h, and prints readable text with link targets as [url]. It exits nonzero with a clear message on failure. Then fetch the handful of follow-up pages you actually need — per-track submission pages, the deadlines page, the camera-ready/author-kit page — one invocation each, never a site crawl.

    • Exit code 3 = non-HTML content (a PDF CFP, a JSON API response); the body is saved under .cache/ — read that file directly.
    • "very little text extracted" warning = JavaScript-rendered page; ask the user to paste the page text and mark the profile needs-verification. Never fill gaps from memory.
  3. Verify the year. Confirm the page heading and dates match the requested year before extracting — stale CFPs survive at near-identical URLs. Wrong year: tell the user and locate the current page.

  4. Extract every schema field following references/extraction-guide.md. The non-negotiables:

    • Numbers (page limits, char limits, dates) only from fetched text; missing fact = null + an explanatory note. Never infer, never recall.
    • Page limits must capture what is EXCLUDED (references? appendix? checklist?) with the CFP's sentence quoted verbatim in the track notes.
    • Deadlines: record the stated timezone — AoE is common, not universal (SIGSPATIAL uses Pacific Time). Abstract registration is a separate, earlier deadline at most venues.
    • llm_policy and dual_submission: verbatim quotes, never paraphrased.
  5. Normalize the template invocation, submission system, rebuttal format, and camera-ready rail using references/templates-and-systems.md. Derive \documentclass options from the family table (add review,anonymous only for double/triple-blind venues) and comment when an invocation is family-derived rather than printed in the CFP.

  6. Emit the YAML to venues/conferences/<venue>-<year>.yml:

    • id equals the filename stem; family references an existing family file.
    • Fill the mandatory verified: block — today's date, every URL fetched (with a comment on which facts each supplied), and an honest confidence: (verified-live only if all critical facts came off live pages today).
  7. Validate. Run python3 tools/validate_venues.py from the repo root (needs PyYAML; if unavailable, check the file manually against venues/schema.yml field by field).

  8. Present the requirements card to the user: a short table of deadlines (with timezone), per-track limits with their exclusions, blind level, template invocation, submission URL, rebuttal format, and LLM policy. End with the verification notice: "Profile extracted from <cfp_url> on . Re-verify deadlines and page limits against the live CFP before submitting — CFPs change mid-cycle and a stale limit can cause a desk reject."

Worked mini-example

User pastes https://sigspatial2026.sigspatial.org/research-submission.html. After fetching, the Research-track section reads: "papers are limited to 10 pages (excluding references), with up to 2 additional pages after the references to be used for appendices", deadlines are stated as "11:59 PM Pacific Time", and the submission link points at easychair.org/conferences/?conf=acmsigspatial2026. That extracts to:

yaml
id: sigspatial-2026
deadlines:
  abstract: 2026-05-29
  paper: 2026-06-05
  timezone: PT          # CFP says "Pacific Time", NOT AoE — recorded verbatim
tracks:
  - name: Research
    page_limit: 10
    page_limit_excludes: [references, appendix]
    notes: >
      CFP verbatim: "papers are limited to 10 pages (excluding references),
      with up to 2 additional pages after the references ... for appendices."
review:
  blind: single         # CFP lists author names — single, not double
  submission_system: easychair
verified:
  date: 2026-06-21
  source_urls:
    - https://sigspatial2026.sigspatial.org/research-submission.html  # limits, deadlines, blind
  confidence: verified-live

Two traps this example surfaces and the guide handles: the timezone is Pacific, not the AoE default, and the page limit excludes both references AND the appendix — encoded explicitly so preflight-check can enforce it. The page heading is confirmed to say 2026 before any of this is extracted.

Output

  • venues/conferences/<venue>-<year>.yml — schema-conformant, year-versioned, with provenance.
  • An inline requirements-card summary with the re-verify warning.

Guardrails

  • Never fabricate a deadline, limit, or policy. null + note beats a guess.
  • Quote LLM-use and dual-submission policies verbatim; paraphrase can invert compliance meaning.
  • GET-only. Never log in to, register with, or submit to any submission system on the user's behalf.
  • Never fabricate citations. This skill emits venue metadata only; if a paper reference is ever needed downstream, route it through verify-citations.
  • One page per script invocation; no bulk crawling. The cache lives under .cache/ and stays out of git — do not commit fetched CFP text to the repo.
  • Always include the re-verify-against-live-CFP notice in the final answer.

Source verification (mandatory)

This skill originates venue facts, so source verification is mandatory without exception:

  • The venue is the user's choice; build its rules on demand, never from memory or a prior year.
  • Search the web for the live CFP / author-instructions page and read the primary source — never state a fact from a search snippet you didn't open, and never from a deadline aggregator without confirming on the official site.
  • Double-check every desk-reject-class fact (deadline, page limit + exclusions, blind level, template, submission system) against a second source; if sources disagree, surface the conflict — do not pick silently.
  • Record a clickable reference link and the date for every fact in the profile's verified.source_urls; set confidence to verified-live/corroborated only when sourced, else needs-verification. A fact with no link is emitted as unverified, never asserted.

Bundled files

  • references/extraction-guide.md — field-by-field extraction rules, cue phrases, and the trap list.
  • references/templates-and-systems.md — template invocations by family, submission-system URL patterns, rebuttal taxonomy, camera-ready rails.
  • scripts/fetch_cfp.py — polite single-page fetcher (run it; do not reimplement fetching by hand).

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Parse Cfp AI skill do?

Parses a conference Call for Papers (CFP) URL into a machine-checkable requirements card - deadlines with timezone (AoE vs local), per-track page limits including/excluding references, single/double/triple-blind level, exact LaTeX template invocation, LLM/AI-use policy, rebuttal format, and submission system (OpenReview, CMT, EasyChair, HotCRP, PCS) - emitted as a year-versioned venue-profile YAML conforming to venues/schema.yml. Use when the user shares a CFP or author-instructions URL, asks what a venue's submission requirements, deadlines, page limits, or anonymity rules are, or wants a...

Why use Parse Cfp on TypingMind?

Because you install it once and use it with any model. Parse Cfp is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Parse Cfp in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ShaishavMaisuria/research-paper-lifecycle-skills/tree/main/skills/parse-cfp. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Parse Cfp?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Parse Cfp?

As many as you like. As long as a model supports skills, you can use Parse Cfp with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Parse Cfp AI skill free?

Yes. It is published on GitHub by ShaishavMaisuria under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇