Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .agents/skills/1-topic-research/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ description: "Phase 1 of the SEO article pipeline: Topic Research & Validation.
- The user asks "should I write about X?" or "is this keyword worth targeting?"
- Before ANY blog article is drafted — this phase is mandatory

## Context: Applirank & The Content Strategy
## Context: Reqcore & The Content Strategy

**Applirank** is an open-source applicant tracking system (ATS). We are executing a topical authority SEO strategy with ~132 planned articles across 9 clusters (see `TOPICAL-AUTHORITY-MAP.md`). We publish one AI-assisted article per day on `applirank.com/blog`. Content lives in `content/blog/*.md` files using `@nuxt/content` v3.
**Reqcore** is an open-source applicant tracking system (ATS). We are executing a topical authority SEO strategy with ~132 planned articles across 9 clusters (see `TOPICAL-AUTHORITY-MAP.md`). We publish one AI-assisted article per day on `reqcore.com/blog`. Content lives in `content/blog/*.md` files using `@nuxt/content` v3.

**Primary audiences:**
1. Technical recruiters & hiring managers evaluating ATS tools
Expand All @@ -44,7 +44,7 @@ description: "Phase 1 of the SEO article pipeline: Topic Research & Validation.
Take the topic from the topical authority map and determine the best **primary keyword** to target. The primary keyword should be:

- The most natural, commonly-searched phrasing of this topic
- Relevant to Applirank's audience (recruiters, HR teams, developers, founders)
- Relevant to Reqcore's audience (recruiters, HR teams, developers, founders)
- Specific enough to have clear search intent (avoid overly broad terms)

**How to validate:** Use `fetch_webpage` to search Google for the candidate keyword. Analyze the top 10 results:
Expand Down Expand Up @@ -95,7 +95,7 @@ Long-tail pivot (if needed): [alternative keyword]

Search the primary keyword and classify intent based on what **dominates page 1**:

| Intent | SERP Signals | Applirank Action |
| Intent | SERP Signals | Reqcore Action |
|--------|-------------|------------------|
| **Informational** | Guides, explainers, how-tos, Wikipedia, blog posts | Write a blog article (guide, explainer, how-to) |
| **Commercial Investigation** | "Best X", comparison posts, review roundups, listicles | Write a blog article (comparison, roundup, listicle) |
Expand Down Expand Up @@ -224,7 +224,7 @@ Competitor weaknesses: [bulleted list]

| Source | How to Use It | Example |
|--------|--------------|---------|
| **Builder experience** | Reference real decisions, trade-offs, and code from building Applirank | "When we built our pipeline Kanban board, we found that..." |
| **Builder experience** | Reference real decisions, trade-offs, and code from building Reqcore | "When we built our pipeline Kanban board, we found that..." |
| **Review data analysis** | Analyze G2/Capterra review patterns to surface real user pain points | "Across 200+ G2 reviews of [Competitor], 34% mention data export frustration" |
| **Contrarian opinion** | Challenge conventional wisdom with evidence | "Most 'best ATS' lists rank by feature count — but features you'll never use are anti-features" |
| **Original data / cost analysis** | Calculate real numbers nobody else has published | "We calculated the 3-year total cost for self-hosted vs cloud ATS for a 20-person team" |
Expand Down Expand Up @@ -305,15 +305,15 @@ Incoming links (existing → new article, for Phase 6):

### Step 7: Business Potential Scoring

**Goal:** Score the topic's alignment with Applirank's business goals.
**Goal:** Score the topic's alignment with Reqcore's business goals.

#### 7.1 Scoring Rubric

| Score | Criteria | Examples |
|-------|----------|---------|
| **3 — High** | Applirank is a natural, irreplaceable solution to the searcher's problem. The article can organically feature Applirank as a recommendation. | ATS comparisons ("Best open-source ATS"), ATS selection guides, deployment tutorials, data ownership articles, self-hosting guides |
| **2 — Medium** | Applirank can be mentioned naturally as one relevant example, but the article isn't *about* Applirank. Brand mention feels authentic but not central. | AI in hiring, recruiting metrics, compliance guides, hiring workflow best practices, vendor lock-in discussions |
| **1 — Low** | Applirank mention would feel forced or tangential. The topic doesn't naturally connect to ATS software. | Generic remote work trends, general career advice, HR leadership philosophy, interview tips for candidates |
| **3 — High** | Reqcore is a natural, irreplaceable solution to the searcher's problem. The article can organically feature Reqcore as a recommendation. | ATS comparisons ("Best open-source ATS"), ATS selection guides, deployment tutorials, data ownership articles, self-hosting guides |
| **2 — Medium** | Reqcore can be mentioned naturally as one relevant example, but the article isn't *about* Reqcore. Brand mention feels authentic but not central. | AI in hiring, recruiting metrics, compliance guides, hiring workflow best practices, vendor lock-in discussions |
| **1 — Low** | Reqcore mention would feel forced or tangential. The topic doesn't naturally connect to ATS software. | Generic remote work trends, general career advice, HR leadership philosophy, interview tips for candidates |

#### 7.2 Decision Gate

Expand All @@ -326,8 +326,8 @@ Incoming links (existing → new article, for Phase 6):
**Output for this step:**
```
Business potential: 3 / 2 / 1
Justification: [How Applirank connects to this topic]
CTA recommendation: [What Applirank CTA fits naturally — e.g., "Try the live demo", "See our transparent AI scoring", "Deploy with Docker in 5 minutes"]
Justification: [How Reqcore connects to this topic]
CTA recommendation: [What Reqcore CTA fits naturally — e.g., "Try the live demo", "See our transparent AI scoring", "Deploy with Docker in 5 minutes"]
```

---
Expand Down Expand Up @@ -427,7 +427,7 @@ After completing all 7 steps, compile the results into this structured brief. Th
| Field | Value |
|-------|-------|
| Score | 3 / 2 / 1 |
| Justification | [How Applirank connects] |
| Justification | [How Reqcore connects] |
| CTA recommendation | [Natural CTA for this article] |

## 8. Recommended Article Specifications
Expand Down Expand Up @@ -500,7 +500,7 @@ For original angles based on review data:

**Do NOT proceed to Phase 2 if any of these are true:**

1. **Business potential = 1** — The topic has no natural connection to Applirank. Recommend a different topic.
1. **Business potential = 1** — The topic has no natural connection to Reqcore. Recommend a different topic.
2. **High cannibalization with no resolution** — An existing article already targets this keyword and intent, and there's no way to differentiate. Recommend expanding the existing article instead.
3. **No original angles found** — If all top-10 results already cover the topic comprehensively and you cannot identify at least 2 unique angles, the article will be a "me too" post. Recommend a long-tail pivot or different topic.
4. **Transactional intent** — The keyword triggers product/pricing pages, not blog content. Flag for the product team as a landing page opportunity.
Expand Down
8 changes: 4 additions & 4 deletions .agents/skills/2-source-gathering/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ Never use full names unless publicly attributed. Use: platform, role, and compan

### Step 3: Builder Experience Notes

**When:** The topic relates to something built or decided in Applirank.
**Skip if:** The topic has no connection to Applirank's technical implementation.
**When:** The topic relates to something built or decided in Reqcore.
**Skip if:** The topic has no connection to Reqcore's technical implementation.

Prompt the human with these specific questions:

1. **"What's one technical decision you made related to this topic, and why?"** (e.g., "I chose Drizzle ORM over Prisma because...")
2. **"What problem did you encounter building this, and how did you solve it?"**
3. **"Do you have a number or data point from Applirank's development?"** (processing time, architecture choice, lines of code, deployment metric)
3. **"Do you have a number or data point from Reqcore's development?"** (processing time, architecture choice, lines of code, deployment metric)
4. **"What's one thing you learned building this that most people get wrong?"**
5. **"Do you hold an opinion based on building experience that goes against conventional wisdom?"**

Expand Down Expand Up @@ -156,7 +156,7 @@ Compile all gathered materials into this structured format.

---

## 3. Builder Experience (Applirank)
## 3. Builder Experience (Reqcore)

- [specific experience, decision, or insight relevant to this topic]
- [technical detail or data point from development]
Expand Down
8 changes: 4 additions & 4 deletions .agents/skills/4-technical-seo/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Run each check sequentially. Record ✅ (pass), ❌ (fail), or ⚠️ (acceptabl

| # | Check | Rule |
|---|-------|------|
| 1.1 | Character count | 50–60 chars (account for ` — Applirank` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix markdownlint MD038 violation on Line 42.

The code span includes a leading space inside backticks, which triggers no-space-in-code.

Suggested fix
-| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
+| 1.1 | Character count | 50–60 chars (account for `— Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| 1.1 | Character count | 50–60 chars (account for ` — Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
| 1.1 | Character count | 50–60 chars (account for `— Reqcore` suffix = ~12 extra chars, so frontmatter title should be 50–60 chars) |
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 42-42: Spaces inside code span elements

(MD038, no-space-in-code)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.agents/skills/4-technical-seo/SKILL.md at line 42, The markdown table cell
contains a code span with a leading space inside the backticks (` — Reqcore`)
which triggers markdownlint MD038; edit the SKILL.md table entry so the code
span has no leading space (e.g., change ` — Reqcore` to `— Reqcore` or move the
space outside the backticks like ` — `— Reqcore` -> ` — ` + `— Reqcore`)
ensuring the visible text remains the same but the code span has no internal
leading space.

| 1.2 | Keyword position | Primary keyword within the first 5 words |
| 1.3 | Modifier present | Includes a compelling modifier: guide, comparison, number, year, checklist, breakdown, etc. |
| 1.4 | Differentiation | Does NOT duplicate the phrasing of likely competitor titles found in the Phase 1 brief |
Expand Down Expand Up @@ -144,13 +144,13 @@ useSchemaOrg([
author: {
'@type': 'Person',
name: 'Joachim',
url: 'https://applirank.com',
url: 'https://reqcore.com',
},
image: post.value.image || '/og-image.png',
publisher: {
'@type': 'Organization',
name: 'Applirank',
url: 'https://applirank.com',
name: 'Reqcore',
url: 'https://reqcore.com',
},
}),
])
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/5-review-quality/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Read the intro aloud. If it sounds like a language model, rewrite it.

Identify **2–3 specific locations** (by section heading) where the human must add:

- [ ] A sentence grounded in **builder experience** (building Applirank — architecture decision, tradeoff, lesson learned)
- [ ] A sentence grounded in **builder experience** (building Reqcore — architecture decision, tradeoff, lesson learned)
- [ ] A **specific detail only the author would know** (user feedback, support conversation, metric, failed experiment)
- [ ] A **genuine opinion** the AI could not have generated (a recommendation, a warning, a preference with reasoning)

Expand Down
Loading