CtrlK
BlogDocsLog inGet started
Tessl Logo

neo4j-document-import-skill

Ingests unstructured and semi-structured documents into Neo4j as a knowledge graph. Use when chunking PDFs, HTML, plain text, or Markdown; extracting entities and relationships from text with an LLM (SimpleKGPipeline, neo4j-graphrag); loading JSON via apoc.load.json; building Document→Chunk→Entity graph structures; or connecting LangChain/LlamaIndex document loaders to Neo4j. Covers neo4j-graphrag SimpleKGPipeline, LLM Graph Builder web UI, entity resolution, chunking strategies, and graph schema design for RAG pipelines. Does NOT handle structured CSV/relational import — use neo4j-import-skill. Does NOT handle GraphRAG retrieval after ingestion — use neo4j-graphrag-skill. Does NOT handle vector index creation — use neo4j-vector-search-skill.

70

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable and well-sequenced with proper validation checkpoints for batch database ingestion. Its main weakness is conciseness: duplicated GraphSchema and deprecation content, and advanced material that could live in the existing reference file.

Suggestions

Remove the duplicate GraphSchema definition: keep one canonical version (the 'GraphSchema — Current API (≥1.8.0)' section) and consolidate Step 1's Option B example into a pointer to it, eliminating the redundancy.

Consolidate the from_pdf deprecation note so it appears once (e.g., only in the Common Errors table) rather than in Step 3, Common Errors, and the GraphSchema section.

Move secondary advanced topics (Parquet export, LexicalGraphConfig, custom DocumentLoaders, SchemaFromTextExtractor) into references/kg-construction.md, leaving SKILL.md as a tighter overview with signaled one-level-deep links.

DimensionReasoningScore

Conciseness

Mostly efficient code that assumes Claude's competence, but GraphSchema is defined twice (Step 1 and the later 'GraphSchema — Current API' section) and the from_pdf deprecation is repeated across three places — duplication beyond minor trimming.

3 / 5

Actionability

Provides copy-paste-ready, fully executable Python and Cypher covering the common cases (pipeline setup, run, chunking, resolvers, constraints, APOC, LangChain) with specific class names, parameters, and a thorough common-errors table.

5 / 5

Workflow Clarity

A clearly sequenced multi-step process (schema → setup → run → chunking → resolution) with validation checkpoints: a 'run before ingestion' constraint section, an explicit 'do not start ingestion until indexes are ONLINE' gate with a poll loop, and a verification checklist — appropriate feedback for a batch/database operation.

5 / 5

Progressive Disclosure

A well-structured overview with a real, one-level-deep reference (references/kg-construction.md) clearly signaled in two places, but several advanced topics (GraphSchema current API, Parquet export, LexicalGraphConfig, custom loaders, schema auto-extraction) are inlined rather than offloaded to the reference.

4 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is specific, complete, and well-bounded, clearly stating what the skill does, when to use it, and when to defer to sibling skills. Trigger-term coverage is strong though not exhaustive of every synonym.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — chunking PDFs/HTML/text/Markdown, extracting entities and relationships via LLM (SimpleKGPipeline), loading JSON via apoc.load.json, building Document→Chunk→Entity structures, and connecting LangChain/LlamaIndex loaders — with comprehensive coverage.

5 / 5

Completeness

Explicitly answers both 'what' (ingests unstructured/semi-structured documents into Neo4j as a knowledge graph) and 'when' (explicit 'Use when chunking PDFs... extracting entities...' clause) with concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes natural user phrasings ('chunking PDFs', 'extracting entities and relationships', 'loading JSON', 'document loaders') and several file formats, but misses some common synonyms a user might say; good but not exhaustive coverage.

4 / 5

Distinctiveness Conflict Risk

A clear Neo4j document→KG ingestion niche, reinforced by three explicit 'Does NOT handle' disambiguations against sibling skills (CSV import, GraphRAG retrieval, vector search), yielding minimal conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (586 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository
neo4j-contrib/neo4j-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.