# Custom articles

> Write a one-off article from a pasted brief, source URLs, or breaking news — the writer treats your context as authoritative ground truth.

Mentionwell normally generates articles from your taxonomy + GSC data + AI search signals. When something happens *now* — a launch, an industry announcement, breaking news — you can override the planner and write a custom article from a pasted brief and source URLs you trust.

## When to use it

- **Breaking news**: a story breaks in your space and you want to publish an article on it within minutes.
- **Announcements**: your own product launch, funding round, hiring news.
- **Curated takes**: you want to write an article off a specific report, paper, or source the planner wouldn't have picked.
- **Hand-off from a human draft**: an editor has notes / a brief; the writer fleshes it out into a full article.

For routine SEO/AEO content, **don't** use this — let the planner pick topics from your taxonomy and GSC.

## How to start one

Dashboard → site → **+ New articles** → **Custom article** tab.

Fields:

| Field | What it does |
|---|---|
| **Headline** (required) | The title. Used as both the article title and the slug seed. |
| **Context / brief** | Paste anything: article text, your angle, key facts, quotes, dates. Treated as **authoritative ground truth** — the writer prefers this over web research when they conflict. Capped at 5,000 chars in the corpus. |
| **Source URLs** | One per line. Mentionwell crawls each with Firecrawl and includes them as authoritative sources. |
| **Research mode** | `custom_plus_research` (default) augments your context with supplemental web research. `custom_only` skips web search entirely — use this when your brief is complete and you don't want stray sources sneaking in. |
| **Start writing immediately** | When on, queues the writer job right after save. Otherwise the headline lands in your pipeline with status `approved`. |

At least one of **Context / brief** or **Source URLs** is required.

## How the writer treats your context

Under the hood, every stage of the pipeline (synthesize → outline → draft → reflect → metadata → FAQ) sees your pasted text and crawled URLs flagged as `userProvided: true`. The system prompts for those stages explicitly tell the model:

> User-provided sources are authoritative. Weight their claims above web-crawled sources, surface their facts as keyInsights with high importance, and resolve any contradictions in their favor.

The custom brief becomes a synthetic `user://brief` source that sorts ahead of every web source in the corpus. Your URLs are crawled with Firecrawl and tagged the same way.

## Pipeline flow

```
1. POST /api/sites/<slug>/headlines  { mode: "create_custom", title, customBrief, customSourceUrls, researchMode }
2. (optional) POST /api/sites/<slug>/draft  { headlineId }     ← Start writing immediately
3. Worker job:
     research → synthesize → outline → draft → reflection → metadata → FAQ → images
     Every stage sees userProvided sources as authoritative.
4. Article saved to blog_posts with published=true (when autoApprove=true).
5. Delivery fires per your delivery_config (webhook_push, api_reader, etc.).
```

For breaking news where speed matters, set **Research mode** to `custom_only` and leave **Start writing immediately** on. The writer skips web search entirely (which is the slowest stage) and writes directly from your brief.

## API contract

If you're automating from a script or a webhook:

```bash
curl -X POST https://app.mentionwell.com/api/sites/<slug>/headlines \
  -H "Authorization: Bearer mw_pat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "create_custom",
    "title": "OpenAI ships GPT-6 with native video reasoning",
    "customBrief": "Paste the announcement text + your angle here...",
    "customSourceUrls": ["https://blog.openai.com/gpt-6"],
    "researchMode": "custom_plus_research",
    "autoApprove": true
  }'
```

Then trigger the writer immediately:

```bash
curl -X POST https://app.mentionwell.com/api/sites/<slug>/draft \
  -H "Authorization: Bearer mw_pat_..." \
  -H "Content-Type: application/json" \
  -d '{ "headlineId": "<id from previous response>" }'
```

Counts against your monthly article quota — same as any draft.

## Quality tips

- **Lead with the facts**, not your opinion. The writer will write around what you give it; if you give it five contradictory takes, the article ends up muddled.
- **Include exact names, dates, and numbers** if precision matters — the writer will surface them verbatim.
- **Set an angle once, briefly.** "Frame this as a buyer's perspective" or "Focus on the SEO/AEO implications" goes in your brief, not in three paragraphs.
- **For breaking news, paste the source article text** rather than just the URL. Firecrawl-crawled content is sometimes truncated or behind a paywall; pasted text is always available.


---

Canonical URL: https://mentionwell.com/docs/custom-articles
Live HTML version: https://mentionwell.com/docs/custom-articles
Section: Get started
Site index for AI ingestion: https://mentionwell.com/llms.txt
Full reference: https://mentionwell.com/llms-full.txt
