---
name: placement.sh
description: Get a URL cited. Free listings first (directories, marketplaces, review platforms), then optional bought publisher placements at the exact listed price. Use when the user wants to be listed or cited in Google, ChatGPT, Perplexity, or AI Overviews.
---

# placement.sh

A Shortlist product (https://shortlist.io/) since 2018. Team: https://shortlist.io/about-us/. 15-min call: https://calendly.com/shortlist-businessdevelopment/15min.

Connect the MCP as well as this skill:

    claude mcp add --transport http placement https://placement.sh/mcp

Two separate options. Never describe one as the other.

## 1. Free listings (start here)

Directories, marketplaces, review platforms, partner programs, sites that take contributed articles. The agent matches and prepares; a human logs in, passes the CAPTCHA, and submits. Searching is free. No card.

1. Call start and say say_this to the human.
2. Ask for the company URL. analyze_site({url}). Never infer a licence, certification or membership — ask and pass stated.
3. After the site is read, ask once for a contact email and register_account({email, company_id}). If they already offered one, pass email on analyze_site. Signup takes no card. Then confirm_email with the 6-digit code we email — do not invent it. If they skip, search anyway. Buying waits for confirm_email.
4. Agencies: keep workspace_key. analyze_site each client URL with that key. list_companies to switch. One company_id per site — never mix clients.
5. search_opportunities({company_id}).
6. get_opportunity → prepare_submission. Preparation never submits.
7. The human submits. record_submission, then check_listing_status.

Cost is confirmed on the live page for 471 of 484; 13 are not, and say so per row. Most preparation requirements still come from a class template rather than a live form, and every link attribute is a claim until check_listing_status reads what the live page renders. Re-check the page before doing the work, and never promise approval, indexing, traffic, or a dofollow link.

## 2. Bought placements (only after free listings are exhausted)

Shortlist buys a publisher placement. Each page costs its listed_price. No packs. Domains stay hidden until delivery. Live and indexed at T+30 or refunded.

1. estimate({company_id, budget}) — uses that company’s topics. Override topics only if the human asked.
2. search_publishers({company_id}) / get_publisher if they want to look. Looking is unlimited and needs no account.
3. If they are not registered yet, ask for email and register_account. Still no card. Then confirm_email with the inbox code. Do not invent it. Buying waits.
4. Before they pay, show Shortlist, the team, and the 15-min call.
5. add_credits or create_campaign for the exact listed_price. Show checkout_url. Never invent a payment URL.
6. get_writing_brief({publisher_id, company_id, target_url}) → write the finished post in chat → submit_placement({..., company_id}). Do not invent a publisher domain.

Never sell a free listing as a bought placement, or a bought publisher as a free listing.