Resume Builder - CV Engineer 图标

CV Engineer 数据 API:简历导入、职位与托管简历

Matt Callery · 招聘求职

《Resume Builder - CV Engineer》是 Matt Callery 的 Android 简历制作应用,对外品牌为 CV Engineer(cvengineer.com)。求职者选择模板、重排章节、设定简历语言与页面尺寸,填写联系方式、经历、教育、项目、技能、兴趣与推荐人;AI 助手可改写条目并提供示例,扫描器可导入 PDF、DOCX、DOC、RTF 或 TXT。登录(Google、Facebook 或邮箱,经 FirebaseUI)后可发布托管简历、按职位名/城市/半径搜索 Talent 空缺、起草辞职信,并通过 RevenueCat 解锁 Plus;免费用户会看到广告。它面向全球以英语为主的求职者,与 Resume.io、Kickresume、Rezi 以及 Indeed、LinkedIn 内的简历工具并列,而不是单一国家的招聘板。

导入简历会落成结构化的 resumeData:联系块上的 phone_number、career_sections 里的 employer 与 job_title,以及按 school 组织的 education_sections。

Talent 信息流卡片再给每条空缺附上 applyUrl、postedDate 与 brandfetchUrl;托管 PDF 保存 hosted_cv_file_name,印刷报价返回 order_price、delivery_price 与 total_price。

猎头 CRM、职位提醒路由和简历托管组件会消费这些记录;openData Studio 把它们变成可调用的开放数据。

应用截图

  • Resume Builder - CV Engineer 应用截图 1
  • Resume Builder - CV Engineer 应用截图 2
  • Resume Builder - CV Engineer 应用截图 3
  • Resume Builder - CV Engineer 应用截图 4
  • Resume Builder - CV Engineer 应用截图 5
  • Resume Builder - CV Engineer 应用截图 6
  • Resume Builder - CV Engineer 应用截图 7
  • Resume Builder - CV Engineer 应用截图 8

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 导入简历并解析为结构化字段

    POST /v1/resumes/import opendata

    把粘贴或扫描的简历文本(PDF、DOCX、DOC、RTF、TXT)解析为 resumeData:联系字段、career_sections、education_sections、projects、key_skills、interests 与 references。

    认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。

    • status
    • resumeData
    • name
    • email
    • phone_number
    • address
    • personal_statement
    • career_sections
    • employer
    • job_title
    • details
    • start_date
    • end_date
    • education_sections
    • school
    • qualification
    • grade
    • key_skills
    • projects
    • project_title
    • project_details
    • interests
    • references
    • full_name
    • cvLanguage
    • resumeText
    POST /v1/resumes/import HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "resumeText": "Jane Doe\nProduct Manager\nAcme Corp 2020-2024",
      "cvLanguage": "ENGLISH"
    }
    {
      "status": "success",
      "resumeData": {
        "name": "Jane Doe",
        "email": "[email protected]",
        "phone_number": "+1 415 555 0100",
        "address": "San Francisco, CA",
        "personal_statement": "Product manager focused on marketplace growth.",
        "career_sections": [{
          "employer": "Acme Corp",
          "job_title": "Product Manager",
          "details": "Shipped the applicant tracking workflow.",
          "start_date": "2020-01",
          "end_date": "2024-06"
        }],
        "education_sections": [{
          "school": "Example University",
          "qualification": "BSc Computer Science",
          "grade": "2:1",
          "details": "HCI elective",
          "start_date": "2016",
          "end_date": "2019"
        }],
        "key_skills": "Roadmapping, SQL, stakeholder comms",
        "projects": [{
          "project_title": "Internal jobs board",
          "project_details": "Matched roles to CVs by title and city."
        }],
        "interests": "Trail running",
        "references": [{
          "full_name": "Alex Rivera",
          "email": "[email protected]",
          "phone_number": "+1 415 555 0199",
          "job_title": "Engineering Manager",
          "employer": "Acme Corp"
        }]
      }
    }
  • 获取职位推荐

    POST /v1/cv/job-cards opendata

    按 jobTitle、city、countryCode 返回职位卡。status 为 success、empty、error、disabled 或 missing_criteria;每条职位需有 id、title 与 applyUrl。

    认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。

    • status
    • jobs
    • id
    • title
    • applyUrl
    • company
    • source
    • location
    • description
    • logoUrl
    • salary
    • postedDate
    • cvEngLogoUrl
    • brandfetchUrl
    • jobTitle
    • city
    • countryCode
    • language
    • userAgent
    • platform
    • radius
    POST /v1/cv/job-cards HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "jobTitle": "Product Manager",
      "city": "San Francisco",
      "countryCode": "US",
      "language": "en",
      "userAgent": "CvEngineer/18.01.94 (Android)",
      "platform": "android",
      "radius": 25
    }
    {
      "status": "success",
      "jobs": [{
        "id": "t-88421",
        "title": "Staff Product Manager",
        "applyUrl": "https://example.com/apply/t-88421",
        "company": "Example Labs",
        "source": "partner",
        "location": "San Francisco, CA",
        "description": "Own the candidate home feed.",
        "logoUrl": "https://example.com/logo.png",
        "salary": "$160k–$190k",
        "postedDate": "2026-09-18",
        "cvEngLogoUrl": "https://example.com/cveng-logo.png",
        "brandfetchUrl": "https://example.com/brand/example-labs"
      }]
    }
  • 用 AI 助手改写简历文本

    POST /v1/assistant/rewrite opendata

    把 prompt 与 appLanguage 发给改写助手,返回用于替换简历条目或 personal_statement 的 status 与 text。

    认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。

    • prompt
    • appLanguage
    • status
    • text
    POST /v1/assistant/rewrite HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "prompt": "Rewrite this bullet for a product manager CV.",
      "appLanguage": "en"
    }
    {
      "status": "success",
      "text": "Led a cross-functional squad that cut time-to-offer by 18%."
    }
  • 生成简历章节示例

    POST /v1/assistant/examples opendata

    按 prompt 向示例助手索取简历范文,返回填入空白经历或教育章节的 status 与 text。

    认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。

    • prompt
    • status
    • text
    POST /v1/assistant/examples HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "prompt": "Example bullets for a product manager at a marketplace."
    }
    {
      "status": "success",
      "text": "Owned discovery for the jobs feed; shipped ranking experiments."
    }
  • 把地址拆成城市与国家

    POST /v1/geo/address-components osint

    把自由文本地址归一成 components.city、components.country 与 components.countryCode,供职位搜索的城市/国家选择器使用。

    认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。

    • address
    • status
    • components
    • city
    • country
    • countryCode
    POST /v1/geo/address-components HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "address": "500 Market St, San Francisco, CA"
    }
    {
      "status": "success",
      "components": {
        "city": "San Francisco",
        "country": "United States",
        "countryCode": "US"
      }
    }
  • 把客户端 IP 解析到城市

    GET /v1/geo/lookup/{ip} osint

    按 IP 查询 country_code 与可选 city,供职位信息流预填国家与城市。

    认证方式: 无鉴权。公开地理查询,用于预填职位搜索的城市与 country_code。

    • country_code
    • city
    GET /v1/geo/lookup/8.8.8.8 HTTP/1.1
    Accept: application/json
    {
      "country_code": "US",
      "city": "Mountain View"
    }
  • 读取公网客户端 IP

    GET /v1/geo/client-ip osint

    返回设备公网 ip,用作职位提醒登记的 ip 字段以及地理查询的入参。

    认证方式: 无鉴权。公开 IP 查询,用作职位提醒登记的 ip 字段以及地理查询的入参。

    • ip
    GET /v1/geo/client-ip HTTP/1.1
    Accept: application/json
    {
      "ip": "203.0.113.10"
    }
  • 预检职位提醒线索

    GET /v1/alerts/leads/verify opendata

    在 register 之前检查邮箱是否可订阅职位提醒。解析 response、warning、email_valid/emailValid、reason 与 ip。

    认证方式: 无鉴权。查询参数为 email 与 source。

    • email
    • source
    • response
    • warning
    • email_valid
    • emailValid
    • reason
    • ip
    GET /v1/alerts/leads/verify?email=jane%40example.com&source=cvengineer HTTP/1.1
    Accept: application/json
    {
      "response": "ok",
      "warning": null,
      "email": "[email protected]",
      "email_valid": "true",
      "reason": null,
      "ip": "203.0.113.10"
    }
  • 登记职位提醒线索

    POST /v1/alerts/leads opendata

    预检成功后登记职位提醒线索。response 为 registered、duplicate 或 invalid;emailValid 为 false 视为无效。

    认证方式: 无鉴权。application/x-www-form-urlencoded 字段表。

    • email
    • source
    • ip
    • country
    • language
    • search
    • location
    • subid
    • firstname
    • first_name
    • response
    • warning
    • email_valid
    • reason
    POST /v1/alerts/leads HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    email=jane%40example.com&source=cvengineer&ip=203.0.113.10&country=US&language=en&search=Product+Manager&location=San+Francisco&subid=android&firstname=Jane&first_name=Jane
    {
      "response": "registered",
      "warning": null,
      "email": "[email protected]",
      "email_valid": "true",
      "reason": null,
      "ip": "203.0.113.10"
    }
  • 鉴权打印订单会话

    POST /v1/print/session opendata

    打开打印合作方会话。鉴权响应的线字段为 status 与 token。

    认证方式: 返回 token,后续打印目录与下单以 Bearer 携带。请求体为 JSON RequestBody;请求字段名未恢复。

    • status
    • token
    POST /v1/print/session HTTP/1.1
    Content-Type: application/json
    
    {}
    {
      "status": "ok",
      "token": "<session-token>"
    }
  • 列出打印纸张品类

    GET /v1/print/papers opendata

    列出打印合作方可生产的纸张:id、name、thickness 以及 runlists.paper_id 用到的正反面处理类型。

    认证方式: 打印会话登录返回的 Bearer token。

    • id
    • name
    • description
    • thickness
    • predefined_front_treatment_type
    • predefined_back_treatment_type
    GET /v1/print/papers HTTP/1.1
    Authorization: Bearer <session-token>
    Accept: application/json
    [{
      "id": 12,
      "name": "Silk 170 gsm",
      "description": "Coated silk for CVs",
      "thickness": 0.17,
      "predefined_front_treatment_type": 1,
      "predefined_back_treatment_type": 0
    }]
  • 计算纸质简历订单价格

    POST /v1/print/orders/quote opendata

    为纸质简历报价:配送地址加上 products/runlists(size_id、paper_id、sides),返回 order_price、delivery_price 与 total_price。

    认证方式: 打印会话登录返回的 Bearer token。

    • payment_type_id
    • delivery
    • courier
    • iso_code
    • name
    • phone
    • email
    • street
    • city
    • zip
    • products
    • product_type_id
    • pdf
    • amount
    • production_speed
    • runlists
    • sides
    • size_id
    • paper_id
    • order_price
    • delivery_price
    • total_price
    POST /v1/print/orders/quote HTTP/1.1
    Authorization: Bearer <session-token>
    Content-Type: application/json
    
    {
      "payment_type_id": 1,
      "delivery": {
        "courier": "dhl",
        "iso_code": "US",
        "name": "Jane Doe",
        "phone": "+1 415 555 0100",
        "email": "[email protected]",
        "street": "500 Market St",
        "city": "San Francisco",
        "zip": "94105"
      },
      "products": [{
        "product_type_id": 4,
        "pdf": "<base64-cv>",
        "amount": 20,
        "production_speed": "standard",
        "runlists": [{
          "sides": 2,
          "size_id": 3,
          "paper_id": 12
        }]
      }]
    }
    {
      "order_price": 24.5,
      "delivery_price": 6.0,
      "total_price": 30.5
    }
  • 下载托管简历 PDF

    GET /v1/hosted-cvs/{slug} opendata

    按公开 slug 读取托管简历对象。存储保存 hosted_cv_file_name、hosted_cv_screen_type 以及按字段的联系可见性。

    认证方式: 上传需要 Firebase Auth。已托管 slug 可公开下载;联系字段受 hosted_cv_contact_visibilities 控制。

    • hosted_cv_file_name
    • hosted_cv_screen_type
    • hosted_cv_contact_visibilities
    • hosted_cv_contact_visibilities_email
    • hosted_cv_contact_visibilities_mobile
    • hosted_cv_contact_visibilities_address
    GET /v1/hosted-cvs/jane-doe HTTP/1.1
    Accept: application/pdf
    {
      "hosted_cv_file_name": "jane-doe",
      "contentType": "application/pdf",
      "hosted_cv_screen_type": "full",
      "hosted_cv_contact_visibilities": {
        "hosted_cv_contact_visibilities_email": true,
        "hosted_cv_contact_visibilities_mobile": false,
        "hosted_cv_contact_visibilities_address": false
      }
    }

数据类别

  • 简历
  • 职位列表
  • 地理位置
  • 打印订单

数据使用场景与案例

  • ATS 简历入库

    猎头 CRM 拉取导入简历中的 career_sections 与 education_sections,免去重录 employer、job_title、school 与日期。

  • 职位提醒匹配

    提醒路由按 jobTitle、city、countryCode 匹配 Talent 卡片并打开 applyUrl,无需抓取 HTML 职位页。

  • 公开简历托管

    作品集站点嵌入托管 PDF 的 slug,并遵守 hosted_cv_contact_visibilities 对邮箱、手机与地址的开关。

  • 印刷报价

    印刷厂在求职者确认纸质简历订单前,用 order_price 与 delivery_price 给 paper_id、size_id 的印次报价。

常见问题

简历导入会返回哪些字段?

成功时返回 resumeData,含 name、email、phone_number、address、personal_statement、career_sections(employer、job_title、details、日期)、education_sections(school、qualification、grade)、key_skills、projects、interests 与 references。

推荐职位如何标识?

每张 Talent 卡片需要 id、title 与 applyUrl。可选字段包括 company、source、location、description、salary、postedDate、logoUrl、cvEngLogoUrl 与 brandfetchUrl。status 可能为 success、empty、error、disabled 或 missing_criteria。

托管简历存了什么?

托管 PDF 按公开 slug 读取。Firestore 保存 hosted_cv_file_name、hosted_cv_screen_type,以及邮箱、手机与地址的 hosted_cv_contact_visibilities。

如何登录?

Google、Facebook 或邮箱经 FirebaseUI 签发 ID 令牌,以 Bearer 调用简历、职位、改写、示例与地址函数。打印目录另用打印会话登录返回的 token。

与 Resume Builder - CV Engineer 相似的应用

  • Resume.io — Resume.io 是在线简历制作工具,提供面向 ATS 的模板、AI 辅助撰写、PDF 与 DOCX 导出,以及可根据职位链接起草求职信的生成器。
  • Kickresume — Kickresume 是在线简历与求职信工具,提供 AI 撰写、面向招聘方的模板、LinkedIn 导入,以及把简历做成个人网站的建站功能。
  • Rezi — Rezi 是 AI 简历工具,按章节给 ATS 适配打分、根据职位描述补关键词,并生成求职信和辞职信。
  • Novorésumé — Novorésumé 是浏览器端简历制作工具,提供面向 ATS 的模板、AI 助手、求职信生成器和免费 PDF 下载。
  • Enhancv — Enhancv 是拖放式简历编辑器,可导入 LinkedIn 或已有文件,按粘贴的职位广告改写条目,并导出 PDF 或 TXT。
  • Indeed Job Search — Indeed 是 Recruit Holdings 旗下的职位聚合平台,求职者可在关键词搜索之外发布并保存简历。
  • LinkedIn: Community & Network — LinkedIn 是职业社交网络,会员资料(经历、教育与技能)当作数字简历使用,也可直接投递平台上的职位。

相关主题

  • CV Engineer API
  • 简历导入
  • resumeData
  • career_sections
  • Talent 职位
  • applyUrl
  • 托管简历
  • order_price
  • phone_number
  • Matt Callery

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价